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

(-)a/Koha/REST/V1/CirculationRules.pm (-30 / +49 lines)
Lines 51-98 sub list_rules { Link Here
51
51
52
    return try {
52
    return try {
53
        my $effective       = $c->param('effective') // 1;
53
        my $effective       = $c->param('effective') // 1;
54
        my $kinds           = $c->param('rules') // [ keys %{ Koha::CirculationRules->rule_kinds } ];
54
        my $item_type       = $c->param('item_type_id');
55
        my $item_type       = $c->param('item_type_id');
55
        my $branchcode      = $c->param('library_id');
56
        my $branchcode      = $c->param('library_id');
56
        my $patron_category = $c->param('patron_category_id');
57
        my $patron_category = $c->param('patron_category_id');
57
        my $kinds           = $c->param('rules') // [ keys %{ Koha::CirculationRules->rule_kinds } ];
58
        my ($filter_branch, $filter_itemtype, $filter_patron);
58
59
59
        if ($item_type) {
60
        if ($item_type) {
60
            my $type = Koha::ItemTypes->find($item_type);
61
            $filter_itemtype = 1;
61
            return $c->render_invalid_parameter_value(
62
            if ( $item_type eq '*' ) {
62
                {
63
                $item_type = undef;
63
                    path   => '/query/item_type_id',
64
            } else {
64
                    values => {
65
                my $type = Koha::ItemTypes->find($item_type);
65
                        uri   => '/api/v1/item_types',
66
                return $c->render_invalid_parameter_value(
66
                        field => 'item_type_id'
67
                    {
68
                        path   => '/query/item_type_id',
69
                        values => {
70
                            uri   => '/api/v1/item_types',
71
                            field => 'item_type_id'
72
                        }
67
                    }
73
                    }
68
                }
74
                ) unless $type;
69
            ) unless $type;
75
            }
70
        }
76
        }
71
77
72
        if ($branchcode) {
78
        if ($branchcode) {
73
            my $library = Koha::Libraries->find($branchcode);
79
            $filter_branch = 1;
74
            return $c->render_invalid_parameter_value(
80
            if ( $branchcode eq '*' ) {
75
                {
81
                $branchcode = undef;
76
                    path   => '/query/library_id',
82
            } else {
77
                    values => {
83
                my $library = Koha::Libraries->find($branchcode);
78
                        uri   => '/api/v1/libraries',
84
                return $c->render_invalid_parameter_value(
79
                        field => 'library_id'
85
                    {
86
                        path   => '/query/library_id',
87
                        values => {
88
                            uri   => '/api/v1/libraries',
89
                            field => 'library_id'
90
                        }
80
                    }
91
                    }
81
                }
92
                ) unless $library;
82
            ) unless $library;
93
            }
83
        }
94
        }
84
95
85
        if ($patron_category) {
96
        if ($patron_category) {
86
            my $category = Koha::Patron::Categories->find($patron_category);
97
            $filter_patron = 1;
87
            return $c->render_invalid_parameter_value(
98
            if ( $patron_category eq '*' ) {
88
                {
99
                $patron_category = undef;
89
                    path   => '/query/patron_category_id',
100
            } else {
90
                    values => {
101
                my $category = Koha::Patron::Categories->find($patron_category);
91
                        uri   => '/api/v1/patron_categories',
102
                return $c->render_invalid_parameter_value(
92
                        field => 'patron_category_id'
103
                    {
104
                        path   => '/query/patron_category_id',
105
                        values => {
106
                            uri   => '/api/v1/patron_categories',
107
                            field => 'patron_category_id'
108
                        }
93
                    }
109
                    }
94
                }
110
                ) unless $category;
95
            ) unless $category;
111
            }
96
        }
112
        }
97
113
98
        my $rules;
114
        my $rules;
Lines 116-122 sub list_rules { Link Here
116
            }
132
            }
117
133
118
            $rules = Koha::CirculationRules->search(
134
            $rules = Koha::CirculationRules->search(
119
                {},
135
                {
136
                    ( $filter_branch   ? ( branchcode   => $branchcode )      : () ),
137
                    ( $filter_itemtype ? ( itemtype     => $item_type )       : () ),
138
                    ( $filter_patron   ? ( categorycode => $patron_category ) : () )
139
                },
120
                {
140
                {
121
                    select   => $select,
141
                    select   => $select,
122
                    as       => $as,
142
                    as       => $as,
123
- 

Return to bug 36641