mirror of
https://github.com/dani/vroom.git
synced 2024-06-18 04:09:14 +02:00
CLeanups in invitation response handling
This commit is contained in:
parent
971b114251
commit
81f1ece9ba
|
@ -3,14 +3,13 @@
|
|||
%= include 'public_toolbar'
|
||||
<div class="container-fluid">
|
||||
<div class="well publicForm">
|
||||
<form role="form" action="<%= $self->url_for('/invitation') %>" method="post">
|
||||
<form role="form" method="post">
|
||||
<legend class="text-center">
|
||||
<%=l 'INVITATION_RESPONSE' %>
|
||||
</legend>
|
||||
<p class="text-center">
|
||||
<%=l 'CANNOT_JOIN_NOW' %>
|
||||
</p>
|
||||
<input name="token" type="hidden" value="<%= $inviteId %>"/>
|
||||
<div class="form-group">
|
||||
<label for="response">
|
||||
<%=l 'WILL_YOU_JOIN' %>
|
||||
|
@ -38,7 +37,7 @@
|
|||
<%=l 'CLICK_SEND_OR_JOIN_NOW' %>
|
||||
</p>
|
||||
</div>
|
||||
<a class="btn btn-default btn-lg" role="button" href="<%= $self->get_url('/') . $room %><% if ($inviteId ne ''){ %>?token=<%= $inviteId %><% } %>">
|
||||
<a class="btn btn-default btn-lg" role="button" href="<%= $self->get_url('/') . $room . '/' . $token %>">
|
||||
<%=l 'JOIN_THIS_ROOM' %>
|
||||
</a>
|
||||
<button type="submit" class="btn btn-primary btn-lg">
|
||||
|
|
45
vroom.pl
45
vroom.pl
|
@ -684,16 +684,20 @@ helper get_invitation_list => sub {
|
|||
return $sth->fetchall_hashref('id');
|
||||
};
|
||||
|
||||
helper respond_invitation => sub {
|
||||
helper respond_to_invitation => sub {
|
||||
my $self = shift;
|
||||
my ($id,$response,$message) = @_;
|
||||
my ($token,$response,$message) = @_;
|
||||
my $sth = eval {
|
||||
$self->db->prepare('UPDATE `email_invitations`
|
||||
SET `response`=?,
|
||||
`message`=?
|
||||
WHERE `token`=?');
|
||||
} || return undef;
|
||||
$sth->execute($response,$message,$id) || return undef;
|
||||
};
|
||||
$sth->execute(
|
||||
$response,
|
||||
$message,
|
||||
$token
|
||||
);
|
||||
return 1;
|
||||
};
|
||||
|
||||
|
@ -885,12 +889,12 @@ get '/kicked/(:room)' => sub {
|
|||
} => 'kicked';
|
||||
|
||||
# Route for invitition response
|
||||
get '/invitation' => sub {
|
||||
any [qw(GET POST)] => '/invitation/:token' => { token => '' } => sub {
|
||||
my $self = shift;
|
||||
my $inviteId = $self->param('token') || '';
|
||||
my $token = $self->stash('token');
|
||||
# Delete expired invitation now
|
||||
$self->delete_invitations;
|
||||
my $invite = $self->get_invitation_by_token($inviteId);
|
||||
my $invite = $self->get_invitation_by_token($token);
|
||||
my $room = $self->get_room_by_id($invite->{room_id});
|
||||
if (!$invite || !$room){
|
||||
return $self->render('error',
|
||||
|
@ -899,21 +903,20 @@ get '/invitation' => sub {
|
|||
room => $room
|
||||
);
|
||||
}
|
||||
$self->render('invitation',
|
||||
inviteId => $inviteId,
|
||||
room => $room->{name},
|
||||
);
|
||||
};
|
||||
|
||||
post '/invitation' => sub {
|
||||
my $self = shift;
|
||||
my $id = $self->param('token') || '';
|
||||
my $response = $self->param('response') || 'decline';
|
||||
my $message = $self->param('message') || '';
|
||||
if ($response !~ m/^(later|decline)$/ || !$self->respond_invitation($id,$response,$message)){
|
||||
return $self->render('error');
|
||||
if ($self->req->method eq 'GET'){
|
||||
return $self->render('invitation',
|
||||
token => $token,
|
||||
room => $room->{name},
|
||||
);
|
||||
}
|
||||
elsif ($self->req->method eq 'POST'){
|
||||
my $response = $self->param('response') || 'decline';
|
||||
my $message = $self->param('message') || '';
|
||||
if ($response !~ m/^(later|decline)$/ || !$self->respond_to_invitation($token,$response,$message)){
|
||||
return $self->render('error');
|
||||
}
|
||||
return $self->render('invitation_thanks');
|
||||
}
|
||||
$self->render('invitation_thanks');
|
||||
};
|
||||
|
||||
# This handler creates a new room
|
||||
|
|
Loading…
Reference in New Issue
Block a user