package OpenResty::Handler::LastResponse; use strict; use warnings; use base 'OpenResty::Handler::Base'; __PACKAGE__->register('last'); sub requires_acl { undef } sub level2name { (undef, 'last_response_wo_id', 'last_response')[$_[-1]] } sub GET_last_response_wo_id { die "No last response ID specified."; } sub GET_last_response { my ($self, $openresty, $bits) = @_; die "Only /=/last/response is allowed.\n" if $bits->[1] ne 'response'; my $last_res_id = $bits->[2]; my $res = $OpenResty::Cache->get_last_res($last_res_id); if (!defined $res) { die "No last response found for ID $last_res_id"; return; } $openresty->{_bin_data} = "$res\n"; #warn "last_response: $response_from_cookie\n"; return; } sub set_last_response { my ($self, $openresty, $value) = @_; #warn "!!!!!!!!!!!!!!!!!!!!!!!!!!wdy!"; my $id = $openresty->builtin_param('_last_response'); if ($id) { $OpenResty::Cache->set_last_res($id, $value); } } 1;