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

(-)a/Koha/REST/V1/Suggestions.pm (-1 / +49 lines)
Lines 98-103 sub add { Link Here
98
    $body->{'status'} = 'ASKED'
98
    $body->{'status'} = 'ASKED'
99
        unless defined $body->{'status'};
99
        unless defined $body->{'status'};
100
100
101
    my $overrides = $c->stash('koha.overrides');
102
103
    unless ( $overrides->{any} ) {
104
105
        unless ( $overrides->{max_total} ) {
106
107
            if (   C4::Context->preference('MaxTotalSuggestions') ne ''
108
                && C4::Context->preference('NumberOfSuggestionDays') ne '' )
109
            {
110
                my $max_total = C4::Context->preference('MaxTotalSuggestions');
111
                my $days_range = C4::Context->preference('NumberOfSuggestionDays');
112
113
                if ( $max_total and $days_range ) {
114
115
                    my $total = Koha::Suggestions->search({ suggestedby => $body->{suggested_by} })
116
                                                 ->filter_by_suggested_days_range( $days_range )
117
                                                 ->count;
118
119
                    if ( $total >= $max_total ) {
120
                        return $c->render(
121
                            status  => 400,
122
                            openapi => {
123
                                error       => "Reached the maximum suggestions limit",
124
                                error_code  => 'max_total_reached'
125
                            }
126
                        );
127
                    }
128
                }
129
            }
130
        }
131
132
        unless ( $overrides->{max_pending} ) {
133
            if ( C4::Context->preference('MaxOpenSuggestions') ne '' ) {
134
                my $total_pending = Koha::Suggestions->search({ suggestedby => $body->{suggested_by} })
135
                                                  ->filter_by_pending
136
                                                  ->count;
137
                if ( $total_pending >= C4::Context->preference('MaxOpenSuggestions') ) {
138
                    return $c->render(
139
                        status  => 400,
140
                        openapi => {
141
                            error       => "Reached the maximum pending suggestions limit",
142
                            error_code  => 'max_pending_reached'
143
                        }
144
                    );
145
                }
146
            }
147
        }
148
    }
149
101
    return try {
150
    return try {
102
        my $suggestion = Koha::Suggestion->new_from_api( $body )->store;
151
        my $suggestion = Koha::Suggestion->new_from_api( $body )->store;
103
        $suggestion->discard_changes;
152
        $suggestion->discard_changes;
104
- 

Return to bug 30663