From d59a1b0cc6519bfb512498a797c284c9045d654b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 1 Mar 2023 12:43:44 +0100 Subject: [PATCH] Bug 33103: Embed aliases in GET /vendors Signed-off-by: Jonathan Field --- api/v1/swagger/definitions/vendor.yaml | 5 +++++ api/v1/swagger/definitions/vendor_alias.yaml | 15 +++++++++++++++ api/v1/swagger/paths/acquisitions_vendors.yaml | 10 ++++++++++ .../prog/js/vue/fetch/acquisition-api-client.js | 3 +++ 4 files changed, 33 insertions(+) create mode 100644 api/v1/swagger/definitions/vendor_alias.yaml diff --git a/api/v1/swagger/definitions/vendor.yaml b/api/v1/swagger/definitions/vendor.yaml index 90feafbd81a..3bf8a179772 100644 --- a/api/v1/swagger/definitions/vendor.yaml +++ b/api/v1/swagger/definitions/vendor.yaml @@ -114,6 +114,11 @@ properties: - string - "null" description: External id + aliases: + type: array + description: List of aliases + items: + $ref: "vendor_alias.yaml" additionalProperties: false required: - name diff --git a/api/v1/swagger/definitions/vendor_alias.yaml b/api/v1/swagger/definitions/vendor_alias.yaml new file mode 100644 index 00000000000..0a9f9ef17bb --- /dev/null +++ b/api/v1/swagger/definitions/vendor_alias.yaml @@ -0,0 +1,15 @@ +--- +type: object +properties: + id: + description: Internal ID for the extended attribute + type: integer + vendor_id: + description: ID of the vendor + type: integer + alias: + description: The alias + type: string +additionalProperties: false +required: + - alias diff --git a/api/v1/swagger/paths/acquisitions_vendors.yaml b/api/v1/swagger/paths/acquisitions_vendors.yaml index f5275ddfe1b..599b213cb09 100644 --- a/api/v1/swagger/paths/acquisitions_vendors.yaml +++ b/api/v1/swagger/paths/acquisitions_vendors.yaml @@ -27,6 +27,16 @@ - $ref: "../swagger.yaml#/parameters/q_body" - $ref: "../swagger.yaml#/parameters/q_header" - $ref: "../swagger.yaml#/parameters/request_id_header" + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - aliases + collectionFormat: csv responses: "200": description: A list of vendors diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js index 4353ef0ad40..edd2137355e 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js @@ -12,6 +12,9 @@ export class AcquisitionAPIClient extends HttpClient { getAll: (query) => this.get({ endpoint: "vendors?" + (query || "_per_page=-1"), + headers: { + "x-koha-embed": "aliases", + }, }), }; } -- 2.25.1