fix test with new description field.
[sgn.git] / cgi-bin / phenome / associate_allele.pl
blob12a131d067f8d5af5aedaa377e1790878e497ce8
1 use strict;
2 use warnings;
4 use CXGN::Scrap::AjaxPage;
5 use CXGN::Login;
6 use CXGN::Chado::Stock;
7 use CXGN::People::Person;
8 use CXGN::Feed;
9 use JSON;
10 use CatalystX::GlobalContext '$c';
12 my $doc = CXGN::Scrap::AjaxPage->new();
13 $doc->send_http_header();
15 my $dbh = $c->dbc->dbh;
16 my $sp_person_id = $c->user() ? $c->user->get_object()->get_sp_person_id() : undef;
17 my $schema = $c->dbic_schema('Bio::Chado::Schema' , 'sgn_chado', $sp_person_id);
18 my($login_person_id,$login_user_type)=CXGN::Login->new($dbh)->verify_session();
20 if ($login_user_type eq 'curator' || $login_user_type eq 'submitter' || $login_user_type eq 'sequencer') {
22 my $doc = CXGN::Scrap::AjaxPage->new();
23 my ($stock_id, $allele_id, $sp_person_id) = $doc->get_encoded_arguments("stock_id", "allele_id", "sp_person_id");
25 my %error = ();
26 my $json = JSON->new();
28 eval {
29 my $stock = CXGN::Chado::Stock->new($schema, $stock_id);
30 $stock->associate_allele($allele_id, $sp_person_id);
31 $error{"response"} = "Associated allele $allele_id with stock $stock_id!";
33 if ($@) {
34 $error{"error"} = "Associate allele failed! " . $@;
35 CXGN::Contact::send_email('associate_allele.pl died',$error{"error"}, 'sgn-bugs@sgn.cornell.edu');
36 } else {
37 my $subject="[New stock associated] allele $allele_id";
38 my $person= CXGN::People::Person->new($dbh, $login_person_id);
39 my $user=$person->get_first_name()." ".$person->get_last_name();
40 my $user_link = qq |http://www.sgn.cornell.edu/solpeople/personal-info.pl?sp_person_id=$sp_person_id|;
42 my $fdbk_body="$user ($user_link has associated stock $stock_id with allele $allele_id \n
43 http://www.sgn.cornell.edu/stock/$stock_id/view";
44 CXGN::Contact::send_email($subject,$fdbk_body, 'sgn-db-curation@sgn.cornell.edu');
45 CXGN::Feed::update_feed($subject,$fdbk_body);
47 my $jobj = $json->objToJson(\%error);
48 print $jobj;