blob: 4da4ef2b0a04edd62cdfca5ae53e13d8d3008c35 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package FixMyStreet::App::Form::Field::JSON;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler::Field::Hidden';
use JSON::MaybeXS;
use MIME::Base64;
has '+inflate_method' => ( default => sub { \&inflate_json } );
has '+deflate_method' => ( default => sub { \&deflate_json } );
has '+fif_from_value' => ( default => 1 );
sub inflate_json {
my ($self, $value) = @_;
return $value unless $value;
$value = decode_json(decode_base64($value));
return $value;
}
sub deflate_json {
my ($self, $value) = @_;
return $value unless $value;
$value = encode_base64(encode_json($value), "");
return $value;
}
__PACKAGE__->meta->make_immutable;
use namespace::autoclean;
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
FixMyStreet::App::Form::Field::JSON - used to store some data in a hidden field
=cut
|