...
...
...
...
...
...
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.
...
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 creating implementing which are not exists yet:
- PUT /change-manager/parsedRecords/{id} -
Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key MODSOURMAN-268 - GET /source-storage/records/{id} -
Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key MODSOURCE-115 - 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 (using generationId-mechanism): 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.
- "mod-inventory" retrieves eventPayload and builds new Instance based on its data using "data-import-processing-core". After that, "mod-inventory" updates this instance.
Finally, the instance updated!.