Skip to content
Extraits de code Groupes Projets
Valider 72f47240 rédigé par Alexandre Morignot's avatar Alexandre Morignot
Parcourir les fichiers

Sam::commands::edt uses the ORM

parent dd708296
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -5,13 +5,15 @@ our @ISA = qw(Exporter); ...@@ -5,13 +5,15 @@ our @ISA = qw(Exporter);
our @EXPORT_OK = qw(exec); our @EXPORT_OK = qw(exec);
use Regexp::Common qw(URI); use Regexp::Common qw(URI);
use Sam::Chan;
use Sam::Event;
our $dbh; our $dbh;
our $log; our $log;
our $irc; our $irc;
sub exec { sub exec {
my ($id, $command, $arg, $chan) = @_; my ($id, $command, $arg, $chan_name) = @_;
my $saveCommit = $dbh->{AutoCommit}; my $saveCommit = $dbh->{AutoCommit};
my $saveError = $dbh->{RaiseError}; my $saveError = $dbh->{RaiseError};
...@@ -23,23 +25,22 @@ sub exec { ...@@ -23,23 +25,22 @@ sub exec {
die "Ce n'est pas une URL valide"; die "Ce n'est pas une URL valide";
} }
else { else {
eval { my $event = Sam::Event->new(id => $id);
$sth = $dbh->prepare_cached("UPDATE sam SET link = ? WHERE id = ?"); unless ($event->load(speculative => 1)) {
$sth->execute($arg, $id); die "aucune soirée trouvée avec cet identifiant";
if ($sth->rows == 0) {
die "Aucune soirée trouvée avec cet identifiant";
} }
$dbh->commit; my $chan = Sam::Chan->new(name => $chan_name);
}; unless ($chan->load(speculative => 1)) {
die "ce chan n'est pas encore configuré";
if ($@) { }
$log->error("$@");
$dbh->rollback;
die $@; unless ($event->calendar_id == $chan->calendar_id) {
die "cette soirée ne fait pas partie du calendrier associé à ce chan";
} }
$event->link($arg);
$event->save();
} }
} }
else { else {
......
...@@ -85,7 +85,7 @@ sub exec { ...@@ -85,7 +85,7 @@ sub exec {
my $arg = $3; my $arg = $3;
eval { eval {
Sam::commands::edit::exec($id, $command, $arg, $chan); Sam::commands::edit::exec($id, $command, $arg, $chan->[0]);
}; };
if ($@) { if ($@) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter