-
Andrej Ramašeuski authoredAndrej Ramašeuski authored
Invite.pm 1.21 KiB
package SeMeet::Schema::Result::Invite;
use strict;
use warnings;
use base 'DBIx::Class::Core';
use Mojo::JWT;
use constant MEET_TOKEN_LIFETIME => 3600 * 24;
our $VERSION = 1;
__PACKAGE__->table('invites');
__PACKAGE__->add_columns(
id => {
data_type => 'integer',
is_auto_increment => 1,
is_nullable => 0,
sequence => 'uid_seq'
},
qw(
token
created
expire
user_id
meet_id
email
displayname
),
);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->add_unique_constraint(
'token' => [qw(token)]
);
sub meet_token {
my $self = shift;
my $meet = shift;
my $cfg = shift;
return Mojo::JWT->new(
secret => $cfg->{jitsi_secret},
claims => {
aud => 'semeet',
iss => 'semeet',
sub => 'meet.pirati.cz',
room => $meet->uuid,
moderator => \0,
exp => time + MEET_TOKEN_LIFETIME,
context => {
user => {
name => $self->displayname . ' (HOST)',
email => $self->email,
}
},
}
)->encode;
}
1;