8bb483bdde833723391a3c353378675412dd56a5
[srvgit] / Koha / REST / V1 / CashRegisters / Cashups.pm
1 package Koha::REST::V1::CashRegisters::Cashups;
2
3 # This file is part of Koha.
4 #
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18 use Modern::Perl;
19
20 use Mojo::Base 'Mojolicious::Controller';
21
22 use Scalar::Util qw(blessed);
23 use Try::Tiny;
24
25 use Koha::Cash::Registers;
26
27 =head1 NAME
28
29 Koha::REST::V1::CashRegisters::Cashups
30
31 =head1 API
32
33 =head2 Methods
34
35 =head3 list
36
37 Controller function that handles retrieving a cash registers cashup actions
38
39 =cut
40
41 sub list {
42     my $c = shift->openapi->valid_input or return;
43
44     my $register = Koha::Cash::Registers->find(
45         {
46             id => $c->validation->param('cash_register_id')
47         }
48     );
49
50     unless ($register) {
51         return $c->render(
52             status  => 404,
53             openapi => {
54                 error => "Register not found"
55             }
56         );
57     }
58
59     return try {
60         my $cashups_rs = $register->cashups;
61         my $cashups    = $c->objects->search($cashups_rs);
62         return $c->render( status => 200, openapi => $cashups );
63     }
64     catch {
65         $c->unhandled_exception($_);
66     };
67 }
68
69 =head3 get
70
71 Controller function that handles retrieving a cash register cashup
72
73 =cut
74
75 sub get {
76     my $c = shift->openapi->valid_input or return;
77
78     return try {
79         my $cashup = Koha::Cash::Register::Cashups->find(
80             $c->validation->param('cashup_id') );
81         unless ($cashup) {
82             return $c->render(
83                 status  => 404,
84                 openapi => { error => "Cashup not found" }
85             );
86         }
87
88         my $embed = $c->stash('koha.embed');
89         return $c->render(
90             status  => 200,
91             openapi => $cashup->to_api( { embed => $embed } )
92         );
93     }
94     catch {
95         $c->unhandled_exception($_);
96     }
97 }
98
99 1;