View | Details | Raw Unified | Return to bug 37535
Collapse All | Expand All

(-)a/Koha/REST/V1/Patrons/Account.pm (-9 / +7 lines)
Lines 207-220 sub add_debit { Link Here
207
    my $c = shift->openapi->valid_input or return;
207
    my $c = shift->openapi->valid_input or return;
208
208
209
    my $patron = Koha::Patrons->find( $c->param('patron_id') );
209
    my $patron = Koha::Patrons->find( $c->param('patron_id') );
210
    my $user   = $c->stash('koha.user');
210
211
211
    return $c->render_resource_not_found("Patron")
212
    return $c->render_resource_not_found("Patron")
212
        unless $patron;
213
      unless $patron;
213
214
214
    return try {
215
    return try {
215
        my $data =
216
        my $data =
216
          Koha::Account::Debit->new_from_api( $c->req->json )
217
          Koha::Account::Debit->new_from_api( $c->req->json )->unblessed;
217
          ->unblessed;
218
218
219
        $data->{library_id}       = delete $data->{branchcode};
219
        $data->{library_id}       = delete $data->{branchcode};
220
        $data->{type}             = delete $data->{debit_type_code};
220
        $data->{type}             = delete $data->{debit_type_code};
Lines 223-233 sub add_debit { Link Here
223
        $data->{transaction_type} = delete $data->{payment_type};
223
        $data->{transaction_type} = delete $data->{payment_type};
224
        $data->{interface}        = 'api'
224
        $data->{interface}        = 'api'
225
          ; # Should this always be API, or should we allow the API consumer to choose?
225
          ; # Should this always be API, or should we allow the API consumer to choose?
226
        $data->{user_id} = $patron->borrowernumber
226
        $data->{user_id} = delete $data->{manager_id} || $user->id;
227
          ; # Should this be API user OR staff the API may be acting on behalf of?
228
227
229
        my $debit = $patron->account->add_debit($data);
228
        my $debit = $patron->account->add_debit($data);
230
        $debit = Koha::Account::Debit->_new_from_dbic($debit->{_result});
229
        $debit = Koha::Account::Debit->_new_from_dbic( $debit->{_result} );
231
230
232
        $c->res->headers->location(
231
        $c->res->headers->location(
233
            $c->req->url->to_string . '/' . $debit->id );
232
            $c->req->url->to_string . '/' . $debit->id );
Lines 248-260 sub add_debit { Link Here
248
            }
247
            }
249
            elsif ( $_->isa('Koha::Exceptions::Account::AmountNotPositive') ) {
248
            elsif ( $_->isa('Koha::Exceptions::Account::AmountNotPositive') ) {
250
                return $c->render(
249
                return $c->render(
251
                    status => 400,
250
                    status  => 400,
252
                    openapi => { error => $_->description }
251
                    openapi => { error => $_->description }
253
                );
252
                );
254
            }
253
            }
255
            elsif ( $_->isa('Koha::Exceptions::Account::UnrecognisedType') ) {
254
            elsif ( $_->isa('Koha::Exceptions::Account::UnrecognisedType') ) {
256
                return $c->render(
255
                return $c->render(
257
                    status => 400,
256
                    status  => 400,
258
                    openapi => { error => $_->description }
257
                    openapi => { error => $_->description }
259
                );
258
                );
260
            }
259
            }
261
- 

Return to bug 37535