/[Frey]/trunk/lib/App/RoomReservation/Confirmation.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/App/RoomReservation/Confirmation.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1152 - (show annotations)
Wed Jul 1 22:25:11 2009 UTC (14 years, 9 months ago) by dpavlin
File size: 1719 byte(s)
send verification message from single place
1 package App::RoomReservation::Confirmation;
2 use Moose;
3
4 extends 'App::RoomReservation';
5
6 with 'App::RoomReservation::Email', 'App::RoomReservation::Messages';
7
8 has token => (
9 is => 'ro',
10 isa => 'Str',
11 required => 1,
12 );
13
14 sub verify_as_markup {
15 my ($self) = @_;
16
17 my $dbh = $self->dbh;
18
19 my $sth = $dbh->prepare(qq{
20 update reservation
21 set
22 _confirmed = true,
23 _seat_number = (
24 select
25 min(seat.nr)
26 from (select generate_series(1,600) as nr) as seat
27 full join reservation on reservation._seat_number = seat.nr
28 where id is null
29 group by seat.nr
30 order by seat.nr asc
31 limit 1
32 )
33 where
34 md5(id||email) = ?
35 and _confirmed is false
36 });
37
38 $sth->execute( $self->token );
39
40 if ( $sth->rows == 0 ) {
41 warn "can't confirm ", $self->token, " check if it's allready confirmed";
42 $sth = $dbh->prepare(qq{
43 select 1
44 from reservation
45 where
46 md5(id||email) = ?
47 and _confirmed is true
48 });
49 $sth->execute( $self->token );
50 }
51
52 if ( $sth->rows == 1 ) {
53
54 die "can't find account associated with ", $self->token unless $sth->rows == 1;
55
56 return $self->seat_confirmation_message( token => $self->token );
57
58 } else {
59 die "Problem with confirmation.\n";
60 }
61 }
62
63 sub cancel_as_markup {
64 my ($self) = @_;
65
66 my $dbh = $self->dbh;
67
68 my $sth = $dbh->prepare(qq{
69 update reservation
70 set
71 _confirmed = false,
72 _seat_number = null
73 where
74 md5(id||email) = ?
75 -- and _confirmed is true
76 });
77 $sth->execute( $self->token );
78
79 if ( $sth->rows == 1 ) {
80 qq|
81 Your <em>reservation is canceled</em>, thanks for your effort to provide seat to somebody else
82 |;
83 } else {
84 die "Problem with cancelation.\n";
85 }
86 }
87
88 __PACKAGE__->meta->make_immutable;
89 no Moose;
90
91 1;

  ViewVC Help
Powered by ViewVC 1.1.26