...
...
...
...
...
...
...
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Requirements
Purpose: MARC Bibliographic records can be updated in a variety of ways - through an Import that updates it, or through quickMARC, or through MARCcat. Whenever/however an SRS MARC Bib record is updated, then the corresponding changes need to be made in the Instance fields that are controlled by the tenant's default map.
...
The FOLIO-supplied default MARC-Instance map: https://github.com/folio-org/mod-source-record-manager/blob/master/mod-source-record-manager-server/src/main/resources/rules/rules.json
Approach & Design
Endpoints:
Method | Path | Provided permissions | Request | Response | Description | Notes |
---|---|---|---|---|---|---|
PUT | /change-manager/parsedRecords/{id} | change-manager.parsed-records.put | compatible parsed record | 204 UPDATED (compatible-parsed-record) | Update parsed record | {id} - parsed record id |
GET | /source-storage/records/{id} | source-storage.records.get | NA | 200 OK (compatible-record) | Retrieve rcord by id | {id} - record id |
POST | /source-storrage/snapshots | source-storage.snapshots.post | compatible snapshot | 201 CREATED | Create new snapshot | |
POST | /source-storage/records | source-storage.records.post | compatible record | 201 CREATED | Create new record | |
POST | /inventory/handlers/quick-mark | inventory.events.post | event | 200 OK | Event handler |
Tickets for implementing endpoints which are not exists yet:
- PUT /change-manager/parsedRecords/{id} -
Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key MODSOURMAN-268 - POST /inventory/handlers/quick-mark -
Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key MODINV-207
Schema:
Step-by-step guide:
- Updated MARC-record sends to the "mod-source-record-manager" on the specific endpoint for updating MARC-records: PUT /change-manager/parsedRecords/{id}
- "mod-source-record-manager" retrieves record by its id: GET /source-storage/records/{id}
- "mod-source-record-manager" creates new snapshot: POST /source-storage/snapshots
- "mod-source-record-manager" creates this MARC-record in the "mod-source-record-storage" using generationId-mechanism as new record: POST /source-storage/records
- "mod-source-record-manager" publishes new event with eventType: "QM_SRS_MARC_BIB_RECORD_UPDATED". Event payload contains updated MARC-record and "rules.json"-file.
- "mod-pubsub" receives this event and "mod-inventory" catches it as "subscriber" for this eventType via: POST /inventory/handlers/quick-mark event handler.
- "mod-inventory" retrieves eventPayload and builds new Instance based on its data using "data-import-processing-core". After that, "mod-inventory" updates this instance.
...