From 647acb8a23f9fde50d6ff982896321dcad832177 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Thu, 16 Aug 2018 07:01:21 -0300
Subject: [PATCH] Bug 17006: OpenAPI spec

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
---
 api/v1/swagger/paths.json                  |  3 +
 api/v1/swagger/paths/patrons_password.json | 84 ++++++++++++++++++++++
 2 files changed, 87 insertions(+)
 create mode 100644 api/v1/swagger/paths/patrons_password.json

diff --git a/api/v1/swagger/paths.json b/api/v1/swagger/paths.json
index c8870db2a1..83dddb08cd 100644
--- a/api/v1/swagger/paths.json
+++ b/api/v1/swagger/paths.json
@@ -32,6 +32,9 @@
   "/patrons/{patron_id}/account/credits": {
     "$ref": "paths/patrons_account.json#/~1patrons~1{patron_id}~1account~1credits"
   },
+  "/patrons/{patron_id}/password": {
+    "$ref": "paths/patrons_password.json#/~1patrons~1{patron_id}~1password"
+  },
   "/illrequests": {
     "$ref": "paths/illrequests.json#/~1illrequests"
   },
diff --git a/api/v1/swagger/paths/patrons_password.json b/api/v1/swagger/paths/patrons_password.json
new file mode 100644
index 0000000000..97fcb4b566
--- /dev/null
+++ b/api/v1/swagger/paths/patrons_password.json
@@ -0,0 +1,84 @@
+{
+  "/patrons/{patron_id}/password": {
+    "post": {
+      "x-mojo-to": "Patrons::Password#set",
+      "operationId": "setPatronPassword",
+      "tags": [
+        "patron"
+      ],
+      "parameters": [
+        {
+          "$ref": "../parameters.json#/patron_id_pp"
+        },
+        {
+          "name": "body",
+          "in": "body",
+          "description": "A JSON object containing password information",
+          "schema": {
+            "type": "object",
+            "properties": {
+              "password": {
+                "description": "New password (plain text)",
+                "type": "string"
+              },
+              "old_password": {
+                "description": "Old password (plain text, only required for unprivileged patrons changing their own password)",
+                "type": "string"
+              }
+            }
+          }
+        }
+      ],
+      "produces": [
+        "application/json"
+      ],
+      "responses": {
+        "200": {
+          "description": "Password changed"
+        },
+        "400": {
+          "description": "Bad request",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        },
+        "401": {
+          "description": "Authentication required",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        },
+        "403": {
+          "description": "Access forbidden",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        },
+        "404": {
+          "description": "Patron not found",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        },
+        "500": {
+          "description": "Internal server error",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        },
+        "503": {
+          "description": "Under maintenance",
+          "schema": {
+            "$ref": "../definitions.json#/error"
+          }
+        }
+      },
+      "x-koha-authorization": {
+        "allow-owner": true,
+        "permissions": {
+          "borrowers": "1"
+        }
+      }
+    }
+  }
+}
-- 
2.19.1