1 package SGN
::Controller
::AJAX
::GenotypingProject
;
7 use List
::MoreUtils qw
/any /;
9 use CXGN
::Genotype
::StoreGenotypingProject
;
11 BEGIN { extends
'Catalyst::Controller::REST' }
14 default => 'application/json',
16 map => { 'application/json' => 'JSON', 'text/html' => 'JSON' },
20 sub add_genotyping_project
: Path
('/ajax/breeders/add_genotyping_project') : ActionClass
('REST') {}
22 sub add_genotyping_project_POST
:Args
(0){
25 my $dbh = $c->dbc->dbh;
26 my $project_name = $c->req->param('project_name');
27 my $project_breeding_program = $c->req->param('project_breeding_program');
28 my $project_facility = $c->req->param('project_facility');
29 my $project_year = $c->req->param('project_year');
30 my $project_description = $c->req->param('project_description');
31 my $project_location = $c->req->param('project_location');
32 my $data_type = $c->req->param('data_type');
35 print STDERR
"User not logged in... not adding a genotyping project.\n";
36 $c->stash->{rest
} = {error
=> "You need to be logged in to add a genotyping project."};
40 if (!any
{ $_ eq "curator" || $_ eq "submitter" } ($c->user()->roles)){
41 print STDERR
"User does not have sufficient privileges.\n";
42 $c->stash->{rest
} = {error
=> "you have insufficient privileges to add a genotyping project." };
45 my $user_id = $c->user()->get_object()->get_sp_person_id();
46 my $schema = $c->dbic_schema('Bio::Chado::Schema', 'sgn_chado', $user_id);
50 my $add_genotyping_project = CXGN
::Genotype
::StoreGenotypingProject
->new({
51 chado_schema
=> $schema,
53 project_name
=> $project_name,
54 breeding_program_id
=> $project_breeding_program,
55 project_facility
=> $project_facility,
56 data_type
=> $data_type,
57 year
=> $project_year,
58 project_description
=> $project_description,
59 nd_geolocation_id
=> $project_location,
62 my $store_return = $add_genotyping_project->store_genotyping_project();
63 if ($store_return->{error
}){
64 $error = $store_return->{error
};
69 $c->stash->{rest
} = {error
=> $@
};
74 $c->stash->{rest
} = {error
=> $error};
76 $c->stash->{rest
} = {success
=> 1};