From 34969ea5a09fa67d4b2a1218d270c688036a3b3a Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Fri, 21 May 2021 18:25:12 -0300
Subject: [PATCH] Bug 28424: Fix patron credits route (POST)

This patch makes the route follow the coding guidelines and thus:
- Return the generated object
- Use the status code 201 for the response

To test:
1. Apply the tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/patrons_accounts.t
=> FAIL: Tests fail. The reponse body and status is incorrect
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
---
 Koha/REST/V1/Patrons/Account.pm           | 7 ++++++-
 api/v1/swagger/paths/patrons_account.json | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/Koha/REST/V1/Patrons/Account.pm b/Koha/REST/V1/Patrons/Account.pm
index c75f91a1f70..1bf64aa58c9 100644
--- a/Koha/REST/V1/Patrons/Account.pm
+++ b/Koha/REST/V1/Patrons/Account.pm
@@ -142,7 +142,12 @@ sub add_credit {
             $credit->apply({ debits => [ $outstanding_debits->as_list ], offset_type => 'payment' });
         }
 
-        return $c->render( status => 200, openapi => { account_line_id => $credit->id } );
+        $credit->discard_changes;
+
+        return $c->render(
+            status  => 201,
+            openapi => $credit->to_api
+        );
     }
     catch {
         $c->unhandled_exception($_);
diff --git a/api/v1/swagger/paths/patrons_account.json b/api/v1/swagger/paths/patrons_account.json
index 428999fe006..9e118d9aded 100644
--- a/api/v1/swagger/paths/patrons_account.json
+++ b/api/v1/swagger/paths/patrons_account.json
@@ -85,7 +85,7 @@
         "application/json"
       ],
       "responses": {
-        "200": {
+        "201": {
           "description": "Credit added",
           "schema": {
             "type": "object"
-- 
2.31.1