Lines 85-97
Controller function that handles adding a new Koha::Acquisition::Bookseller obje
Link Here
|
85 |
sub add { |
85 |
sub add { |
86 |
my $c = shift->openapi->valid_input or return; |
86 |
my $c = shift->openapi->valid_input or return; |
87 |
|
87 |
|
88 |
my $vendor = $c->req->json; |
88 |
my $vendor = $c->req->json; |
89 |
my $contacts = delete $vendor->{contacts}; |
89 |
my $contacts = delete $vendor->{contacts}; |
90 |
my $interfaces = delete $vendor->{interfaces}; |
90 |
my $interfaces = delete $vendor->{interfaces}; |
91 |
my $aliases = delete $vendor->{aliases}; |
91 |
my $aliases = delete $vendor->{aliases}; |
92 |
my $subscriptions = delete $vendor->{subscriptions}; |
92 |
my $subscriptions = delete $vendor->{subscriptions}; |
93 |
my $baskets = delete $vendor->{baskets}; |
93 |
my $baskets = delete $vendor->{baskets}; |
94 |
my $contracts = delete $vendor->{contracts}; |
94 |
my $contracts = delete $vendor->{contracts}; |
|
|
95 |
my $extended_attributes = delete $vendor->{extended_attributes}; |
95 |
|
96 |
|
96 |
my $vendor_to_store = Koha::Acquisition::Bookseller->new_from_api( $c->req->json ); |
97 |
my $vendor_to_store = Koha::Acquisition::Bookseller->new_from_api( $c->req->json ); |
97 |
|
98 |
|
Lines 99-106
sub add {
Link Here
|
99 |
$vendor_to_store->store; |
100 |
$vendor_to_store->store; |
100 |
|
101 |
|
101 |
$vendor_to_store->contacts($contacts) if scalar($contacts) > 0; |
102 |
$vendor_to_store->contacts($contacts) if scalar($contacts) > 0; |
102 |
$vendor_to_store->aliases($aliases) if scalar($aliases) > 0; |
103 |
$vendor_to_store->aliases($aliases) if scalar(@$aliases) > 0; |
103 |
$vendor_to_store->interfaces($interfaces) if scalar($interfaces) > 0; |
104 |
$vendor_to_store->interfaces($interfaces) if scalar(@$interfaces) > 0; |
|
|
105 |
|
106 |
if ( scalar(@$extended_attributes) > 0 ) { |
107 |
my @extended_attributes = |
108 |
map { { 'id' => $_->{field_id}, 'value' => $_->{value} } } @{$extended_attributes}; |
109 |
$vendor_to_store->extended_attributes( \@extended_attributes ); |
110 |
} |
104 |
|
111 |
|
105 |
$c->res->headers->location( $c->req->url->to_string . '/' . $vendor_to_store->id ); |
112 |
$c->res->headers->location( $c->req->url->to_string . '/' . $vendor_to_store->id ); |
106 |
return $c->render( |
113 |
return $c->render( |
Lines 128-147
sub update {
Link Here
|
128 |
unless $vendor; |
135 |
unless $vendor; |
129 |
|
136 |
|
130 |
return try { |
137 |
return try { |
131 |
my $vendor_update = $c->req->json; |
138 |
my $vendor_update = $c->req->json; |
132 |
my $contacts = delete $vendor_update->{contacts}; |
139 |
my $contacts = delete $vendor_update->{contacts}; |
133 |
my $interfaces = delete $vendor_update->{interfaces}; |
140 |
my $interfaces = delete $vendor_update->{interfaces}; |
134 |
my $aliases = delete $vendor_update->{aliases}; |
141 |
my $aliases = delete $vendor_update->{aliases}; |
135 |
my $subscriptions = delete $vendor_update->{subscriptions}; |
142 |
my $subscriptions = delete $vendor_update->{subscriptions}; |
136 |
my $baskets = delete $vendor_update->{baskets}; |
143 |
my $baskets = delete $vendor_update->{baskets}; |
137 |
my $contracts = delete $vendor_update->{contracts}; |
144 |
my $contracts = delete $vendor_update->{contracts}; |
|
|
145 |
my $extended_attributes = delete $vendor_update->{extended_attributes}; |
138 |
|
146 |
|
139 |
$vendor->set_from_api($vendor_update); |
147 |
$vendor->set_from_api($vendor_update); |
140 |
$vendor->store(); |
148 |
$vendor->store(); |
141 |
|
149 |
|
142 |
$vendor->contacts($contacts) if scalar($contacts) > 0; |
150 |
$vendor->contacts($contacts) if scalar($contacts) > 0; |
143 |
$vendor->aliases($aliases) if scalar($aliases) > 0; |
151 |
$vendor->aliases($aliases) if scalar(@$aliases) > 0; |
144 |
$vendor->interfaces($interfaces) if scalar($interfaces) > 0; |
152 |
$vendor->interfaces($interfaces) if scalar(@$interfaces) > 0; |
|
|
153 |
|
154 |
if ( scalar(@$extended_attributes) > 0 ) { |
155 |
my @extended_attributes = |
156 |
map { { 'id' => $_->{field_id}, 'value' => $_->{value} } } @{$extended_attributes}; |
157 |
$vendor->extended_attributes( \@extended_attributes ); |
158 |
} |
145 |
|
159 |
|
146 |
return $c->render( |
160 |
return $c->render( |
147 |
status => 200, |
161 |
status => 200, |