Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Planned changes in

...

Circulation request DB schema

Current DB record structure (segments

...

to be removed are

...

in orange)Proposed DB record structure (segments to be added are in green)

{

...

  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",

...

  "item": {

...

    "title": "A semantic web primer",

...

    "barcode": "10101",

...

    "identifiers": [

...

      {

...

        "value": "0262012103",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "9780262012102",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "2003065165",

...

        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"

...

      }

...

    ]

...

  },

...

  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",

...

  "status": "Open - Not yet filled",

...

  "metadata": {

...

    "createdDate": "2021-09-09T13:14:43.756",

...

    "updatedDate": "2021-09-09T13:14:43.756+00:00",

...

    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",

...

    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"

...

  },

...

  "position": 1,

...

  "requester": {

...

    "barcode": "10001",

...

    "lastName": "Kurash",

...

    "firstName": "Alexander"

...

  },

...

  "requestDate": "2021-09-09T13:14:41.000+00:00",

...

  "requestType": "Hold",

...

  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",

...

  "fulfilmentPreference": "Hold Shelf",

...

  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

Proposed DB record structure (segments that will be added are marked in green):

{

...

  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",
  "requestLevel": "Item",

...

  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",

...

  "instance": {

...

    "title": "A semantic web primer",

...

    "identifiers": [

...

      {

...

        "value": "0262012103",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "9780262012102",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "2003065165",

...

        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"

...

      }

...

    ]

...

  },

...

  "

...

holdingsRecordId":

...

    "barcode": "10101"

  },

...

"dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",

...


  "item": {
    "barcode": "10101"
  },
  "status": "Open - Not yet filled",

...

  "metadata": {

...

    "createdDate": "2021-09-09T13:14:43.756",

...

    "updatedDate": "2021-09-09T13:14:43.756+00:00",

...

    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",

...

    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"

...

  },

...

  "position": 1,

...

  "requester": {

...

    "barcode": "10001",

...

    "lastName": "Kurash",

...

    "firstName": "Alexander"

...

  },

...

  "requestDate": "2021-09-09T13:14:41.000+00:00",

...

  "requestType": "Hold",

...

  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",

...

  "fulfilmentPreference": "Hold Shelf",

...

  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

Planned API changes

API endpoint: /circulation/requests

Note that item field has some additional instance-related values that will also be moved to the instance field.

Current JSON structure (segments

...

to be removed

...

are in orange)Proposed JSON structure (segments to be added are in green)


{

...

  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",

...

  "requestType": "Hold",

...

  "requestDate": "2021-09-06T15:37:55.000+00:00",

...

  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",

...

  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",

...

  "status": "Open - Not yet filled",

...

  "item": {

...

    "title": "A semantic web primer",

...

    "barcode": "90000",

...

    "identifiers": [
      {

...

        "value": "0262012103",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },
      {

...

        "value": "9780262012102",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },
      {

...

        "value": "2003065165",

...

        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"

...

      }
    ],

...

    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",

...

    "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",

...

    "location": {

...

      "name": "Annex",

...

      "libraryName": "Datalogisk Institut",

...

      "code": "KU/CC/DI/A"

...

    },

...

    "contributorNames": [
      {

...

        "name": "Antoniou, Grigoris"

...

      },
      {

...

        "name": "Van Harmelen, Frank"

...

      }
    ],

...

    "enumeration": "",

...

    "status": "Checked out",

...

    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",

...

    "callNumberComponents": {

...

      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"

...

    }

...

  },

...

  "requester": {

...

    "lastName": "morty",

...

    "firstName": "panic",

...

    "barcode": "456",

...

    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"

...

  },

...

  "fulfilmentPreference": "Hold Shelf",

...

  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",

...

  "metadata": {

...

    "createdDate": "2021-09-06T15:37:56.188+00:00",

...

    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",

...

    "updatedDate": "2021-09-06T15:37:56.188+00:00",

...

    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"

...

  },

...

  "position": 1,

...

  "loan": {

...

    "dueDate": "2021-09-06T16:36:56.029Z"

...

  },

...

  "pickupServicePoint": {

...

    "name": "Circ Desk 2",

...

    "code": "cd2",

...

    "discoveryDisplayName": "Circulation Desk -- Back Entrance",

...

    "description": null,

...

    "shelvingLagTime": null,

...

    "pickupLocation": true

...

  }
}

...


{

...

  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",
  "requestLevel": "Item",

...

  "requestType": "Hold",

...

  "requestDate": "2021-09-06T15:37:55.000+00:00",

...

  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",

...

  "status": "Open - Not yet filled",

...

  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",

...

  "instance": {

...

    "title": "A semantic web primer",

...

    "identifiers": [

...

      {

...

        "value": "0262012103",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "9780262012102",

...

        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"

...

      },

...

      {

...

        "value": "2003065165",

...

        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"

...

      }

...

    ],

...

    "contributorNames": [
      {

...

        "name": "Antoniou, Grigoris"

...

      },
      {

...

        "name": "Van Harmelen, Frank"
      }
    ],

    "publication":  [ 
      {

    } ]

  },

...

        "publisher": "Shaker Verlag",

        "place": "Aachen",

        "dateOfPublication": "2017",

        "role": null
      } 
     ],

     "editions":  [ 
        "First edition", "Revised edition, 2005" 
     ]

  },
  "holdingsRecordId": "dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",

...

  "item": {

...

    "barcode": "90000",

...

    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",

...

    "location": {

...

      "name": "Annex",

...

      "libraryName": "Datalogisk Institut",

...

      "code": "KU/CC/DI/A"

...

    },

...

    "enumeration": "",

...

    "status": "Checked out",

...

    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",

...

    "callNumberComponents": {

...

      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"

...

    }

...

  },

...

  "requester": {

...

    "lastName": "morty",

...

    "firstName": "panic",

...

    "barcode": "456",

...

    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"

...

  },

...

  "fulfilmentPreference": "Hold Shelf",

...

  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",

...

  "metadata": {

...

    "createdDate": "2021-09-06T15:37:56.188+00:00",

...

    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",

...

    "updatedDate": "2021-09-06T15:37:56.188+00:00",

...

    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"

...

  },

...

  "position": 1,

...

  "loan": {

...

    "dueDate": "2021-09-06T16:36:56.029Z"

...

  },

...

  "pickupServicePoint": {

...

    "name": "Circ Desk 2",

...

    "code": "cd2",

...

    "discoveryDisplayName": "Circulation Desk -- Back Entrance",

...

    "description": null,

...

    "shelvingLagTime": null,

...

    "pickupLocation": true

...

  }
}


Proposed JSON structure for request from UI side:

Code Block
{

...


    "id": "df45dc97-32c9-458f-9b32-2c1ea8e73159",

...


    "requestLevel": "Item",

...


    "requestType": "Hold",

...


    "fulfilmentPreference": "Hold Shelf",

...


    "item": {

...


        "barcode": "90000"

...


    },

...


    "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",

...


    "requester": {

...


        "barcode": "11111"

...


    },

...


    "requestDate": "2021-10-19T12:54:47Z",

...


    "requesterId": "503ea8a5-fdd0-4c7a-b38d-9bdf2368f869",

...


    "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",

...


    "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39"

...


}