@@ -151,6 +151,7 @@ sub get {
151151 my $api_record ;
152152 $api_record -> {date } = $message -> message_date;
153153 $api_record -> {message } = $message -> message;
154+ $api_record -> {message_id } = $message -> message_id;
154155 $api_record -> {library_id } = $message -> branchcode;
155156 push @messages , $api_record ;
156157 }
@@ -377,6 +378,54 @@ List Koha::Checkout objects including renewability (for checked out items)
377378<
378379=cut
379380
381+ sub delete_messages {
382+ my $c = shift -> openapi-> valid_input or return ;
383+
384+ my $borrowernumber = $c -> validation-> param(' patron_id' );
385+ my $message_id = $c -> validation-> param(' message_id' );
386+
387+ my $patron ;
388+ my $message ;
389+
390+ try {
391+ $patron = Koha::Patrons-> find($borrowernumber );
392+ if ($patron ) {
393+ $message = Koha::Patron::Messages-> find($message_id );
394+
395+ if (($message ) && ($message -> message_type eq " B" )){
396+ if ($patron -> borrowernumber == $message -> borrowernumber){
397+ $message -> delete ;
398+ return $c -> render( status => 204, openapi => {} );
399+ }
400+ else {
401+ return $c -> render( status => 403, openapi => {
402+ error => " Borrowernumber does not match message borrowernumber"
403+ });
404+ }
405+ }
406+ else {
407+ if ($message ){
408+ return $c -> render( status => 403, openapi => {
409+ error => " Forbidden message type"
410+ });
411+ }
412+ else {
413+ return $c -> render( status => 404, openapi => {
414+ error => " No such message for patron"
415+ });
416+ }
417+ }
418+ }
419+ }
420+ catch {
421+ unless ($patron ) {
422+ return $c -> render( status => 404, openapi => {
423+ error => " Patron doesn't exist"
424+ });
425+ }
426+ };
427+ }
428+
380429sub list_checkouts {
381430 my $c = shift -> openapi-> valid_input or return ;
382431
0 commit comments