ackage Mojolicious::Plugin::WebPush;
use Mojo::Base 'Mojolicious::Plugin';
use Mojo::JSON qw(decode_json encode_json);
use Mojo::URL;
use Crypt::PK::ECC;
use MIME::Base64 qw(encode_base64url decode_ba
ata.json();
var title = msg.title;
delete msg.title;
event.waitUntil(self.registration.showNotification(title, msg));
}
EOF
sub _decode {
my ($bytes) = @_;
my $body = eval { decode_json($by
equest") if $@;
(1, $body);
}
sub _error {
my ($c, $error) = @_;
$c->render(status => 500, json => { errors => [ { message => $error } ] });
}
sub _make_route_handler {
my ($subs_session2use
mmand::webpush;
use Mojo::Base 'Mojolicious::Command';
use Mojo::JSON qw(encode_json decode_json);
use Crypt::PK::ECC;
my %COMMAND2JSON = (
create => [ 1 ],
);
my %COMMAND2CB = (
keygen => \&_key
$cmd};
$args[$_] = decode_json($args[$_]) for @{ $COMMAND2JSON{$cmd} || [] };
$cmd .= "_p";
$self->app->webpush->$cmd(@args)->then(
sub { print STDOUT encode_json(@_), "\n" },
sub { prin
SYNOPSIS
Usage: APPLICATION webpush COMMAND [OPTIONS]
./myapp.pl webpush create <USERID> <JSON>
./myapp.pl webpush read <USERID>
./myapp.pl webpush delete <USERID>
./myapp.pl webpu