166 lines
3.0 KiB
Perl
166 lines
3.0 KiB
Perl
#! /usr/bin/env perl
|
|
|
|
package API::Projects;
|
|
|
|
use v5.10.1;
|
|
use strict;
|
|
use warnings;
|
|
use Carp;
|
|
|
|
use ACU::API::Base;
|
|
use ACU::LDAP;
|
|
|
|
sub add($$;$)
|
|
{
|
|
my $project_name = shift;
|
|
my $flavor = shift;
|
|
my $year = shift;
|
|
|
|
if ($year and $year ne LDAP::get_year) {
|
|
croak "Impossible d'ajouter un projet d'une autre année : non implémenté";
|
|
}
|
|
|
|
my $res = API::Base::send('ResultHandler',
|
|
"projects/projects/add.xml",
|
|
[
|
|
project_name => $project_name,
|
|
flavor => $flavor,
|
|
]);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur durant l'ajout : ".$res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub get($;$)
|
|
{
|
|
my $project_name = shift;
|
|
my $year = shift;
|
|
|
|
my $url;
|
|
if ($year) {
|
|
$url = "projects/projects/get/$project_name/$year.xml";
|
|
} else {
|
|
$url = "projects/projects/get/$project_name.xml";
|
|
}
|
|
|
|
my $res = API::Base::get('ProjectHandler', $url);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur durant la récupération du projet : " . $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} ne '0') {
|
|
croak "Erreur durant l'ajout : " . $res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub get_groups($;$)
|
|
{
|
|
my $project_name = shift;
|
|
my $year = shift;
|
|
|
|
my $url;
|
|
if ($year) {
|
|
$url = "projects/groups/groups/$project_name/$year.xml";
|
|
} else {
|
|
$url = "projects/groups/groups/$project_name.xml";
|
|
}
|
|
|
|
my $res = API::Base::get('ProjectGroupHandler', $url);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur durant la récupération : " . $res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub add_grades($;$)
|
|
{
|
|
my %data = (
|
|
project_name => shift
|
|
);
|
|
my $y = shift;
|
|
if ($y) {
|
|
$data{year} = $y;
|
|
}
|
|
|
|
my $res = API::Base::send('ResultHandler', "projects/notes/add.xml", \%data);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur durant l'ajout : " . $res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub add_traces($$;$)
|
|
{
|
|
my %data = (
|
|
project_name => shift,
|
|
trace_name => shift,
|
|
);
|
|
my $y = shift;
|
|
if ($y) {
|
|
$data{year} = $y;
|
|
}
|
|
|
|
my $res = API::Base::send('ResultHandler', "projects/traces/add.xml", \%data);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur durant l'ajout : " . $res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
sub gen_groups($;$)
|
|
{
|
|
my $project_name = shift;
|
|
my $year = shift;
|
|
my %data;
|
|
|
|
$data{project_name} = $project_name if ($project_name);
|
|
$data{year} = $year if ($year);
|
|
|
|
my $url;
|
|
if ($year) {
|
|
$url = "projects/groups/generate/$project_name/$year.xml";
|
|
}
|
|
else {
|
|
$url = "projects/groups/generate/$project_name.xml";
|
|
}
|
|
|
|
my $res = API::Base::send('ResultHandler', $url, %data);
|
|
|
|
if ($res->{result} ne '0') {
|
|
croak "Erreur lors de la génération de groupes : " . $res->{message};
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
1;
|