Bug 22061: OpenAPI spec
authorTomas Cohen Arazi <tomascohen@theke.io>
Mon, 7 Jan 2019 11:24:45 +0000 (08:24 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Mon, 28 Jan 2019 15:45:55 +0000 (15:45 +0000)
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

api/v1/swagger/paths.json
api/v1/swagger/paths/public_patrons.json [new file with mode: 0644]

index 83dddb0..b41ef9e 100644 (file)
@@ -40,5 +40,8 @@
   },
   "/rotas/{rota_id}/stages/{stage_id}/position": {
     "$ref": "paths/rotas.json#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
+  },
+  "/public/patrons/{patron_id}/password": {
+    "$ref": "paths/public_patrons.json#/~1public~1patrons~1{patron_id}~1password"
   }
 }
diff --git a/api/v1/swagger/paths/public_patrons.json b/api/v1/swagger/paths/public_patrons.json
new file mode 100644 (file)
index 0000000..29ce642
--- /dev/null
@@ -0,0 +1,86 @@
+{
+  "/public/patrons/{patron_id}/password": {
+    "post": {
+      "x-mojo-to": "Patrons::Password#set_public",
+      "operationId": "setPatronPasswordPublic",
+      "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"
+              },
+              "password_2": {
+                "description": "Repeated new password (plain text)",
+                "type": "string"
+              },
+              "old_password": {
+                "description": "Patron's original password",
+                "type": "string"
+              }
+            },
+            "required": ["password", "password_2", "old_password"]
+          }
+        }
+      ],
+      "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
+      }
+    }
+  }
+}