use
Mojo::Util
qw(slurp spurt b64_decode b64_encode)
;
sub
load {
my
(
$self
,
$c
) =
@_
;
my
$session
= {};
my
$id
=
$self
->session_id(
$c
) ||
''
;
if
(
$id
) {
my
$adosession
= Ado::Model::Sessions->find(
$id
);
if
(
$adosession
->data) {
return
unless
$session
= Mojo::JSON::j(b64_decode
$adosession
->sessiondata);
}
}
return
$self
->prepare_load(
$c
,
$session
);
}
sub
store {
my
(
$self
,
$c
) =
@_
;
my
(
$id
,
$session
) =
$self
->prepare_store(
$c
);
return
unless
$id
;
my
$value
= b64_encode(Mojo::JSON::encode_json(
$session
),
''
);
my
$adosession
= Ado::Model::Sessions->find(
$id
);
if
(
$adosession
->data) {
$adosession
->sessiondata(
$value
)->update();
return
;
}
Ado::Model::Sessions->create(
id
=>
$id
,
tstamp
=>
time
(),
sessiondata
=>
$value
);
return
;
}
1;