{
+ "account_line": {
+ "$ref": "definitions/account_line.json"
+ },
"city": {
"$ref": "definitions/city.json"
},
"patron": {
"$ref": "definitions/patron.json"
},
- "error": {
- "$ref": "definitions/error.json"
+ "patron_balance": {
+ "$ref": "definitions/patron_balance.json"
},
"vendor": {
"$ref": "definitions/vendor.json"
--- /dev/null
+{
+ "type": "object",
+ "properties": {
+ "account_line_id": {
+ "type": "integer",
+ "description": "Internal account line identifier"
+ },
+ "checkout_id": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "description": "Internal identifier for the checkout the account line is related to"
+ },
+ "patron_id": {
+ "type": "integer",
+ "description": "Internal identifier for the patron the account line belongs to"
+ },
+ "item_id": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "description": "Internal identifier for the item the account line is related to"
+ },
+ "date": {
+ "type": "string",
+ "format": "date",
+ "description": "Date the account line was created"
+ },
+ "amount": {
+ "type": "number",
+ "description": "Account line amount"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Account line description"
+ },
+ "account_type": {
+ "type": "string",
+ "description": "Account line type"
+ },
+ "payment_type": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Payment type"
+ },
+ "amount_outstanding": {
+ "type": "number",
+ "description": "Outstanding amount"
+ },
+ "last_increment": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "The amount the line was increased last time"
+ },
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Timestamp for the latest line update"
+ },
+ "internal_note": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Internal note"
+ },
+ "staff_id": {
+ "type": "integer",
+ "description": "Internal patron identifier for the staff member that introduced the account line"
+ }
+ }
+}
--- /dev/null
+{
+ "type": "object",
+ "properties": {
+ "balance": {
+ "type": "number",
+ "description": "Signed decimal number"
+ },
+ "outstanding_lines": {
+ "type": "array",
+ "items": {
+ "$ref": "account_line.json"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "balance"
+ ]
+}
"/patrons/{patron_id}": {
"$ref": "paths/patrons.json#/~1patrons~1{patron_id}"
},
+ "/patrons/{patron_id}/account": {
+ "$ref": "paths/patrons_account.json#/~1patrons~1{patron_id}~1account"
+ },
"/illrequests": {
"$ref": "paths/illrequests.json#/~1illrequests"
}
--- /dev/null
+{
+ "/patrons/{patron_id}/account": {
+ "get": {
+ "x-mojo-to": "Patrons::Account#get",
+ "operationId": "getPatronAccount",
+ "tags": [
+ "patron"
+ ],
+ "parameters": [
+ {
+ "$ref": "../parameters.json#/patron_id_pp"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Patron's account balance",
+ "schema": {
+ "$ref": "../definitions.json#/patron_balance"
+ }
+ },
+ "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,
+ "allow-guarantor": true,
+ "permissions": {
+ "borrowers": "edit_borrowers",
+ "updatecharges": "remaining_permissions"
+ }
+ }
+ }
+ }
+}