Bug 15126: Refactor spec file
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 7 Oct 2015 15:20:25 +0000 (15:20 +0000)
committerKyle M Hall <kyle@bywatersolutions.com>
Wed, 4 May 2016 13:52:13 +0000 (13:52 +0000)
Spreading the specification over multiple files should lead to a more
manageable specification long term

Signed-off-by: Benjamin Rokseth <benjamin.rokseth@kul.oslo.kommune.no>

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

api/v1/definitions/error.json [new file with mode: 0644]
api/v1/definitions/index.json [new file with mode: 0644]
api/v1/definitions/patron.json [new file with mode: 0644]
api/v1/swagger.json

diff --git a/api/v1/definitions/error.json b/api/v1/definitions/error.json
new file mode 100644 (file)
index 0000000..e43673f
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "type": "object",
+  "properties": {
+    "error": {
+      "description": "Error message",
+      "type": "string"
+    }
+  }
+}
diff --git a/api/v1/definitions/index.json b/api/v1/definitions/index.json
new file mode 100644 (file)
index 0000000..e940eee
--- /dev/null
@@ -0,0 +1,4 @@
+{
+    "patron": { "$ref": "patron.json" },
+    "error": { "$ref": "error.json" }
+}
diff --git a/api/v1/definitions/patron.json b/api/v1/definitions/patron.json
new file mode 100644 (file)
index 0000000..30384e2
--- /dev/null
@@ -0,0 +1,273 @@
+{
+      "type": "object",
+      "properties": {
+        "borrowernumber": {
+          "type": "string",
+          "description": "internally assigned user identifier"
+        },
+        "cardnumber": {
+          "type": ["string", "null"],
+          "description": "library assigned user identifier"
+        },
+        "surname": {
+          "type": "string",
+          "description": "patron's last name"
+        },
+        "firstname": {
+          "type": ["string", "null"],
+          "description": "patron's first name"
+        },
+        "title": {
+          "type": ["string", "null"],
+          "description": "patron's title"
+        },
+        "othernames": {
+          "type": ["string", "null"],
+          "description": "any other names associated with the patron"
+        },
+        "initials": {
+          "type": ["string", "null"],
+          "description": "initials of the patron"
+        },
+        "streetnumber": {
+          "type": ["string", "null"],
+          "description": "street number of patron's primary address"
+        },
+        "streettype": {
+          "type": ["string", "null"],
+          "description": "street type of patron's primary address"
+        },
+        "address": {
+          "type": "string",
+          "description": "first address line of patron's primary address"
+        },
+        "address2": {
+          "type": ["string", "null"],
+          "description": "second address line of patron's primary address"
+        },
+        "city": {
+          "type": "string",
+          "description": "city or town of patron's primary address"
+        },
+        "state": {
+          "type": ["string", "null"],
+          "description": "state or province of patron's primary address"
+        },
+        "zipcode": {
+          "type": ["string", "null"],
+          "description": "zip or postal code of patron's primary address"
+        },
+        "country": {
+          "type": ["string", "null"],
+          "description": "country of patron's primary address"
+        },
+        "email": {
+          "type": ["string", "null"],
+          "description": "primary email address for patron's primary address"
+        },
+        "phone": {
+          "type": ["string", "null"],
+          "description": "primary phone number for patron's primary address"
+        },
+        "mobile": {
+          "type": ["string", "null"],
+          "description": "the other phone number for patron's primary address"
+        },
+        "fax": {
+          "type": ["string", "null"],
+          "description": "fax number for patron's primary address"
+        },
+        "emailpro": {
+          "type": ["string", "null"],
+          "description": "secondary email address for patron's primary address"
+        },
+        "phonepro": {
+          "type": ["string", "null"],
+          "description": "secondary phone number for patron's primary address"
+        },
+        "B_streetnumber": {
+          "type": ["string", "null"],
+          "description": "street number of patron's alternate address"
+        },
+        "B_streettype": {
+          "type": ["string", "null"],
+          "description": "street type of patron's alternate address"
+        },
+        "B_address": {
+          "type": ["string", "null"],
+          "description": "first address line of patron's alternate address"
+        },
+        "B_address2": {
+          "type": ["string", "null"],
+          "description": "second address line of patron's alternate address"
+        },
+        "B_city": {
+          "type": ["string", "null"],
+          "description": "city or town of patron's alternate address"
+        },
+        "B_state": {
+          "type": ["string", "null"],
+          "description": "state or province of patron's alternate address"
+        },
+        "B_zipcode": {
+          "type": ["string", "null"],
+          "description": "zip or postal code of patron's alternate address"
+        },
+        "B_country": {
+          "type": ["string", "null"],
+          "description": "country of patron's alternate address"
+        },
+        "B_email": {
+          "type": ["string", "null"],
+          "description": "email address for patron's alternate address"
+        },
+        "B_phone": {
+          "type": ["string", "null"],
+          "description": "phone number for patron's alternate address"
+        },
+        "dateofbirth": {
+          "type": ["string", "null"],
+          "description": "patron's date of birth"
+        },
+        "branchcode": {
+          "type": "string",
+          "description": "code of patron's home branch"
+        },
+        "categorycode": {
+          "type": "string",
+          "description": "code of patron's category"
+        },
+        "dateenrolled": {
+          "type": ["string", "null"],
+          "description": "date the patron was added to Koha"
+        },
+        "dateexpiry": {
+          "type": ["string", "null"],
+          "description": "date the patron's card is set to expire"
+        },
+        "gonenoaddress": {
+          "type": ["string", "null"],
+          "description": "set to 1 if library marked this patron as having an unconfirmed address"
+        },
+        "lost": {
+          "type": ["string", "null"],
+          "description": "set to 1 if library marked this patron as having lost his card"
+        },
+        "debarred": {
+          "type": ["string", "null"],
+          "description": "until this date the patron can only check-in"
+        },
+        "debarredcomment": {
+          "type": ["string", "null"],
+          "description": "comment on the stop of the patron"
+        },
+        "contactname": {
+          "type": ["string", "null"],
+          "description": "used for children and professionals to include surname or last name of guarantor or organization name"
+        },
+        "contactfirstname": {
+          "type": ["string", "null"],
+          "description": "used for children to include first name of guarantor"
+        },
+        "contacttitle": {
+          "type": ["string", "null"],
+          "description": "used for children to include title of guarantor"
+        },
+        "guarantorid": {
+          "type": ["string", "null"],
+          "description": "borrowernumber used for children or professionals to link them to guarantor or organizations"
+        },
+        "borrowernotes": {
+          "type": ["string", "null"],
+          "description": "a note on the patron's account"
+        },
+        "relationship": {
+          "type": ["string", "null"],
+          "description": "used for children to include the relationship to their guarantor"
+        },
+        "ethnicity": {
+          "type": ["string", "null"],
+          "description": "unused"
+        },
+        "ethnotes": {
+          "type": ["string", "null"],
+          "description": "unused"
+        },
+        "sex": {
+          "type": ["string", "null"],
+          "description": "patron's gender"
+        },
+        "password": {
+          "type": ["string", "null"],
+          "description": "patron's encrypted password"
+        },
+        "flags": {
+          "type": ["string", "null"],
+          "description": "a number associated with the patron's permissions"
+        },
+        "userid": {
+          "type": ["string", "null"],
+          "description": "patron's login"
+        },
+        "opacnote": {
+          "type": ["string", "null"],
+          "description": "a note on the patron's account visible in OPAC and staff client"
+        },
+        "contactnote": {
+          "type": ["string", "null"],
+          "description": "a note related to patron's alternate address"
+        },
+        "sort1": {
+          "type": ["string", "null"],
+          "description": "a field that can be used for any information unique to the library"
+        },
+        "sort2": {
+          "type": ["string", "null"],
+          "description": "a field that can be used for any information unique to the library"
+        },
+        "altcontactfirstname": {
+          "type": ["string", "null"],
+          "description": "first name of alternate contact for the patron"
+        },
+        "altcontactsurname": {
+          "type": ["string", "null"],
+          "description": "surname or last name of the alternate contact for the patron"
+        },
+        "altcontactaddress1": {
+          "type": ["string", "null"],
+          "description": "the first address line for the alternate contact for the patron"
+        },
+        "altcontactaddress2": {
+          "type": ["string", "null"],
+          "description": "the second address line for the alternate contact for the patron"
+        },
+        "altcontactaddress3": {
+          "type": ["string", "null"],
+          "description": "the city for the alternate contact for the patron"
+        },
+        "altcontactstate": {
+          "type": ["string", "null"],
+          "description": "the state for the alternate contact for the patron"
+        },
+        "altcontactzipcode": {
+          "type": ["string", "null"],
+          "description": "the zipcode for the alternate contact for the patron"
+        },
+        "altcontactcountry": {
+          "type": ["string", "null"],
+          "description": "the country for the alternate contact for the patron"
+        },
+        "altcontactphone": {
+          "type": ["string", "null"],
+          "description": "the phone number for the alternate contact for the patron"
+        },
+        "smsalertnumber": {
+          "type": ["string", "null"],
+          "description": "the mobile phone number where the patron would like to receive notices (if SMS turned on)"
+        },
+        "privacy": {
+          "type": "string",
+          "description": "patron's privacy settings related to their reading history"
+        }
+      }
+}
index 9c2f436..8f32781 100644 (file)
     }
   },
   "definitions": {
-    "patron": {
-      "type": "object",
-      "properties": {
-        "borrowernumber": {
-          "$ref": "#/definitions/borrowernumber"
-        },
-        "cardnumber": {
-          "description": "library assigned ID number for patrons",
-          "type": ["string", "null"]
-        },
-        "surname": {
-          "description": "patron's last name",
-          "type": ["string", "null"]
-        },
-        "firstname": {
-          "description": "patron's first name",
-          "type": ["string", "null"]
-        },
-        "title": {
-          "description": "patron's title",
-          "type": ["string", "null"]
-        },
-        "othernames": {
-          "description": "any other names associated with the patron",
-          "type": ["string", "null"]
-        },
-        "initials": {
-          "description": "initials of the patron",
-          "type": ["string", "null"]
-        },
-        "streetnumber": {
-          "description": "street number of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "streettype": {
-          "description": "street type of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "address": {
-          "description": "first address line of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "address2": {
-          "description": "second address line of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "city": {
-          "description": "city or town of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "state": {
-          "description": "state or province of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "zipcode": {
-          "description": "zip or postal code of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "country": {
-          "description": "country of patron's primary address",
-          "type": ["string", "null"]
-        },
-        "email": {
-          "description": "primary email address for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "phone": {
-          "description": "primary phone number for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "mobile": {
-          "description": "the other phone number for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "fax": {
-          "description": "fax number for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "emailpro": {
-          "description": "secondary email address for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "phonepro": {
-          "description": "secondary phone number for patron's primary address",
-          "type": ["string", "null"]
-        },
-        "B_streetnumber": {
-          "description": "street number of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_streettype": {
-          "description": "street type of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_address": {
-          "description": "first address line of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_address2": {
-          "description": "second address line of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_city": {
-          "description": "city or town of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_state": {
-          "description": "state or province of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_zipcode": {
-          "description": "zip or postal code of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_country": {
-          "description": "country of patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_email": {
-          "description": "email address for patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "B_phone": {
-          "description": "phone number for patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "dateofbirth": {
-          "description": "patron's date of birth",
-          "type": ["string", "null"]
-        },
-        "branchcode": {
-          "description": "code of patron's home branch",
-          "type": ["string", "null"]
-        },
-        "categorycode": {
-          "description": "code of patron's category",
-          "type": ["string", "null"]
-        },
-        "dateenrolled": {
-          "description": "date the patron was added to Koha",
-          "type": ["string", "null"]
-        },
-        "dateexpiry": {
-          "description": "date the patron's card is set to expire",
-          "type": ["string", "null"]
-        },
-        "gonenoaddress": {
-          "description": "set to 1 if library marked this patron as having an unconfirmed address",
-          "type": ["string", "null"]
-        },
-        "lost": {
-          "description": "set to 1 if library marked this patron as having lost his card",
-          "type": ["string", "null"]
-        },
-        "debarred": {
-          "description": "until this date the patron can only check-in",
-          "type": ["string", "null"]
-        },
-        "debarredcomment": {
-          "description": "comment on the stop of the patron",
-          "type": ["string", "null"]
-        },
-        "contactname": {
-          "description": "used for children and professionals to include surname or last name of guarantor or organization name",
-          "type": ["string", "null"]
-        },
-        "contactfirstname": {
-          "description": "used for children to include first name of guarantor",
-          "type": ["string", "null"]
-        },
-        "contacttitle": {
-          "description": "used for children to include title of guarantor",
-          "type": ["string", "null"]
-        },
-        "guarantorid": {
-          "description": "borrowernumber used for children or professionals to link them to guarantor or organizations",
-          "type": ["string", "null"]
-        },
-        "borrowernotes": {
-          "description": "a note on the patron's account",
-          "type": ["string", "null"]
-        },
-        "relationship": {
-          "description": "used for children to include the relationship to their guarantor",
-          "type": ["string", "null"]
-        },
-        "ethnicity": {
-          "description": "unused",
-          "type": ["string", "null"]
-        },
-        "ethnotes": {
-          "description": "unused",
-          "type": ["string", "null"]
-        },
-        "sex": {
-          "description": "patron's gender",
-          "type": ["string", "null"]
-        },
-        "password": {
-          "description": "patron's encrypted password",
-          "type": ["string", "null"]
-        },
-        "flags": {
-          "description": "a number associated with the patron's permissions",
-          "type": ["string", "null"]
-        },
-        "userid": {
-          "description": "patron's login",
-          "type": ["string", "null"]
-        },
-        "opacnote": {
-          "description": "a note on the patron's account visible in OPAC and staff client",
-          "type": ["string", "null"]
-        },
-        "contactnote": {
-          "description": "a note related to patron's alternate address",
-          "type": ["string", "null"]
-        },
-        "sort1": {
-          "description": "a field that can be used for any information unique to the library",
-          "type": ["string", "null"]
-        },
-        "sort2": {
-          "description": "a field that can be used for any information unique to the library",
-          "type": ["string", "null"]
-        },
-        "altcontactfirstname": {
-          "description": "first name of alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactsurname": {
-          "description": "surname or last name of the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactaddress1": {
-          "description": "the first address line for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactaddress2": {
-          "description": "the second address line for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactaddress3": {
-          "description": "the city for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactstate": {
-          "description": "the state for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactzipcode": {
-          "description": "the zipcode for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactcountry": {
-          "description": "the country for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "altcontactphone": {
-          "description": "the phone number for the alternate contact for the patron",
-          "type": ["string", "null"]
-        },
-        "smsalertnumber": {
-          "description": "the mobile phone number where the patron would like to receive notices (if SMS turned on)",
-          "type": ["string", "null"]
-        },
-        "privacy": {
-          "description": "patron's privacy settings related to their reading history",
-          "type": ["string", "null"]
-        }
-      }
-    },
-    "borrowernumber": {
-      "description": "Patron internal identifier"
-    },
-    "error": {
-      "type": "object",
-      "properties": {
-        "error": {
-          "description": "Error message",
-          "type": "string"
-        }
-      }
-    }
+    "$ref": "./definitions/index.json"
   },
   "parameters": {
     "borrowernumberPathParam": {