diff --git a/ACU/API/Projects.pm b/ACU/API/Projects.pm new file mode 100644 index 0000000..105d000 --- /dev/null +++ b/ACU/API/Projects.pm @@ -0,0 +1,86 @@ +#! /usr/bin/env perl + +package API::Projects; + +use v5.10.1; +use strict; +use warnings; + +use ACU::API::Base; + +sub add($) +{ + my $project_name = shift; + + my $res = API::Base::send('ResultHandler', "projects/projects/add.xml", [ project_name => $project_name ]); + + if ($res->{result} eq '0') { + say "Projet ajouté correctement"; + } + else { + say "Ajout non ok: ".$res->{message}; + } +} + +sub get($;$) +{ + my $project_name = shift; + my $year = shift; + + my $res = API::Base::get('ProjectMemberHandler', "projects/projects/get/$project_name.xml"); + + if ($res->{result} && $res->{result} eq '0') { + say "Projet ajouté correctement"; + } + else { + say "Ajout non ok: ".$res->{message}; + } + + return $res; +} + +sub get_users($;$) +{ + my $project_name = shift; + my $year = shift; + + my $url; + if ($year) { + $url = "projects/projects/users/$project_name/$year.xml"; + } + else { + $url = "projects/projects/users/$project_name.xml"; + } + + my $res = API::Base::get('ProjectMemberHandler', $url); + + if ($res->{result} && $res->{result} eq '0') { + say "Projet ajouté correctement"; + } + else { + say "Ajout non ok: ".$res->{message}; + } + + return $res; +} + +sub add_grades($;$) +{ + my %data; + + $data{project_name} = $project_name if (my $project_name = shift); + $data{year} = $year if (my $year = shift); + + my $res = API::Base::send('ResultHandler', "projects/notes/add.xml", \%data); + + if ($res->{result} && $res->{result} eq '0') { + say "Ajout de notes effectué."; + } + else { + say "Ajout non ok: ".$res->{message}; + } + + return $res; +} + +1; diff --git a/commands/project/grades.pl b/commands/project/grades.pl new file mode 100644 index 0000000..cf1581f --- /dev/null +++ b/commands/project/grades.pl @@ -0,0 +1,24 @@ +#! /usr/bin/env perl + +use v5.10.1; +use strict; +use warnings; + +use lib "../"; + +use ACU::API::Base; +use ACU::API::Projects; + + +if ($#ARGV == 0) +{ + API::Projects::add_grades($ARGV[0]); +} +elsif ($#ARGV == 1) +{ + API::Projects::add_grades($ARGV[0], $ARGV[1]); +} +else +{ + say "$0 [project_year]"; +}