Versions Compared

Key

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

Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyMODQM-311

...

Settings application UI preview:

localauthoritydefinition.PNG

Endpoints:

GET: /authority-source-files/{id}/hrid
Description:  Endpoint returns current hrid value and increment it. Should be called once user clicked on the "create" button to put value in the 001 field.

Code Block
themeDJango
borderStyledashed
titleAuthority Source File HRID Example
collapsetrue
{
    "id": "cb58492d-018e-442d-9ce3-35aabfc524aa",
    "prefix": "loc",
    "hrid": "000000001"
}

POST: /authority-source-files
New query parameter: startNumber (default = 1)

Code Block
themeDJango
borderStyledashed
titleAuthority Source File SchemastartNumber parameter schema
collapsetrue
"startNumber": {
  "description": "The number from which to start generating HRIDs",
  "type": "integer",
  "minimum": 1,
  "maximum": 99999999999
}

...

There is a similar approach that works already in the mod-inventory-storage. It generates Hrid numbers for Instances, Holdings, and Item records, and can be configured from UI (Settings → Inventory → Hrid handling);
The problem here is that we will create new sequences in Runtime for each new authority file. (format: "hrid_authority_local_file_{prefix}_seq") 


Table with counter Approach

New table should be created:

Code Block
themeDJango
borderStyledashed
titlehrid_authority_source_file
collapsetrue
CREATE TABLE IF NOT EXISTS hrid_authority_source_file

...


(

...


  authorityFileId UUID NOT NULL,

...


  hridSeq         INT  NOT NULL,

...


  CONSTRAINT hrid_authority_source_file_pkey PRIMARY KEY (authorityFileId),

...


  CONSTRAINT hrid_authority_source_file_fkey FOREIGN KEY (authorityFileId)

...


    REFERENCES authority_source_file (id)

...


);


To work with table it's better to use
SERIALIZABLE Isolation:
@Transactional(isolation = Isolation.SERIALIZABLE)

Select local authority file on the UI

...