From ad866e3a57ef56f40171ed163a85a8e82b9ca3c3 Mon Sep 17 00:00:00 2001 From: Mercier Pierre-Olivier Date: Fri, 18 Oct 2013 04:15:17 +0200 Subject: [PATCH] Add trace_update --- process/files/intradata_get.pl | 57 +++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/process/files/intradata_get.pl b/process/files/intradata_get.pl index c76621a..b3a9039 100644 --- a/process/files/intradata_get.pl +++ b/process/files/intradata_get.pl @@ -28,7 +28,10 @@ my %actions = ( "create" => \&update_project, "update" => \&update_project, "delete" => \&delete_project, - } + }, + "trace" => { + "update" => \&update_trace, + }, ); sub create_tree($$) @@ -322,6 +325,58 @@ sub update_project return "Ok"; } +sub update_trace +{ + my $args = shift; + + my $project_id = $args->{param}{id}; + my $year = $args->{param}{year} // LDAP::get_year; + + if (! $project_id) { + log ERROR, "No project_id given."; + return "No project_id given"; + } + + my $rendu_id = $args->{param}{rendu}; + + if (! $rendu_id) { + log ERROR, "No rendu_id given."; + return "No rendu_id given"; + } + + my $login = $args->{param}{login}; + + if (! $login) { + log ERROR, "No login given."; + return "No login given"; + } + + my $trace; + if (exists $args->{files}{"$login.xml"}) { + $trace = $args->{files}{"$login.xml"}; + } + if (! $trace) { + log ERROR, "Invalid $login.xml received!"; + return "Invalid $login.xml received!"; + } + + log INFO, "Update $year/$project_id/traces/$rendu_id/$login.xml"; + + if (! -e "$basedir/$year/$project_id/traces/") { + mkdir "$basedir/$year/$project_id/traces/"; + } + if (! -e "$basedir/$year/$project_id/traces/$rendu_id/") { + mkdir "$basedir/$year/$project_id/traces/$rendu_id/"; + chmod 0755, "$basedir/$year/$project_id/traces/$rendu_id/"; + } + + open my $out, ">", "$basedir/$year/$project_id/traces/$rendu_id/$login.xml"; + print $out $trace; + close $out; + + return "Ok"; +} + sub delete_project { log WARN, "delete_project: not implemented."