4 SGN::Controller::AJAX::FamilyName - a REST controller class to provide the
5 functions for retrieving family name related info
12 Titima Tantikanjana <tt15@cornell.edu>
16 package SGN
::Controller
::AJAX
::FamilyName
;
24 BEGIN { extends
'Catalyst::Controller::REST' }
26 default => 'application/json',
28 map => { 'application/json' => 'JSON' },
32 sub get_family_parents
:Path
('/ajax/family/parents') :Args
(1) {
35 my $family_id = shift;
36 my $schema = $c->dbic_schema("Bio::Chado::Schema");
38 my $family = CXGN
::FamilyName
->new({schema
=>$schema, family_stock_id
=>$family_id});
40 my $result = $family->get_family_parents();
42 foreach my $r (@
$result){
43 my ($female_parent_id, $female_parent_name, $female_stock_type, $female_ploidy, $male_parent_id, $male_parent_name, $male_stock_type, $male_ploidy) =@
$r;
44 push @family_parents, [qq{<a href
="/stock/$female_parent_id/view">$female_parent_name</a
>}, $female_stock_type, $female_ploidy, qq{<a href
="/stock/$male_parent_id/view">$male_parent_name</a
>}, $male_stock_type, $male_ploidy];
47 $c->stash->{rest
} = { data
=> \
@family_parents };
52 sub get_family_members
:Path
('/ajax/family/members') :Args
(1) {
55 my $family_id = shift;
56 my $schema = $c->dbic_schema("Bio::Chado::Schema");
58 my $family = CXGN
::FamilyName
->new({schema
=>$schema, family_stock_id
=>$family_id});
60 my $result = $family->get_family_members();
63 foreach my $r (@
$result){
64 my ($cross_id, $cross_name, $cross_type, $crossing_experiment_id, $crossing_experiment_name, $progeny_number) =@
$r;
66 cross_id
=> $cross_id,
67 cross_name
=> $cross_name,
68 cross_type
=> $cross_type,
69 crossing_experiment_id
=> $crossing_experiment_id,
70 crossing_experiment_name
=> $crossing_experiment_name,
71 progeny_number
=> $progeny_number
75 $c->stash->{rest
} = { data
=> \
@crosses };
80 sub get_all_progenies
:Path
('/ajax/family/all_progenies') :Args
(1) {
83 my $family_id = shift;
84 my $schema = $c->dbic_schema("Bio::Chado::Schema");
86 my $family = CXGN
::FamilyName
->new({schema
=>$schema, family_stock_id
=>$family_id});
88 my $result = $family->get_all_progenies();
91 foreach my $r (@
$result){
92 my ($progeny_id, $progeny_name, $cross_id, $cross_name) =@
$r;
94 progeny_id
=> $progeny_id,
95 progeny_name
=> $progeny_name,
96 cross_id
=> $cross_id,
97 cross_name
=> $cross_name,
101 $c->stash->{rest
} = { data
=> \
@progenies };