Versions Compared

Key

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

...

...

...

...

...

...

Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyMODSOURMAN-262

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:

MethodPathProvided permissionsRequestResponseDescriptionNotes
PUT/change-manager/parsedRecords/{id}change-manager.parsed-records.putcompatible parsed record204 UPDATED (compatible-parsed-record)Update parsed record{id} - parsed record id
GET/source-storage/records/{id}source-storage.records.getNA200 OK (compatible-record)Retrieve rcord by id{id} - record id
POST/source-storrage/snapshotssource-storage.snapshots.postcompatible snapshot
200 OK
201 CREATEDCreate new snapshot
POST/source-storage/recordssource-storage.records.postcompatible record201 CREATEDCreate new record
POST/inventory/handlers/quick-markinventory.events.postevent200 OKEvent handler

Tickets for creating implementing which are not exists yet:

  1. PUT /change-manager/parsedRecords/{id} - 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyMODSOURMAN-268
  2. GET /source-storage/records/{id} - 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyMODSOURCE-115
  3. POST /inventory/handlers/quick-mark - 
    Jira Legacy
    serverSystem Jira
    serverId01505d01-b853-3c2e-90f1-ee9b165564fc
    keyMODINV-207

Schema:

Step-by-step guide:

  1. Updated MARC-record sends to the "mod-source-record-manager" on the specific endpoint for updating MARC-records: PUT /change-manager/parsedRecords/{id}
  2. "mod-source-record-manager" retrieves record by its id (using generationId-mechanism): GET /source-storage/records/{id}
  3. "mod-source-record-manager"  creates new snapshot: POST /source-storage/snapshots
  4. "mod-source-record-manager" creates this MARC-record in the "mod-source-record-storage" using generationId-mechanism as new record: POST /source-storage/records
  5. "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.
  6. "mod-pubsub" receives this event and "mod-inventory" catches it as "subscriber" for this eventType.
  7. "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!.