From 40752e0bc7b7058d7622aba997a01d4ceb9c2bcf Mon Sep 17 00:00:00 2001 From: "it@app-quality.com" Date: Wed, 28 Jan 2026 10:12:29 +0100 Subject: [PATCH 01/13] Modified src/reference/openapi.yml --- src/reference/openapi.yml | 105 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index 568641bb7..10471d637 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -3981,6 +3981,65 @@ paths: required: true schema: type: string + '/campaigns/{campaign}/finance/supplier': + get: + description: Get all suppliers for finance + operationId: get-campaigns-cid-finance-supplier + parameters: [] + responses: + '200': + content: + application/json: + examples: + Example 2: + value: + id: 1 + name: Respondent + created_on: '2026-01-01' + created_by: 32 + schema: + type: object + required: + - id + - name + properties: + id: + type: number + x-stoplight: + id: ctt8sbti2xlsa + name: + type: string + x-stoplight: + id: p42d6s7ngpjtz + created_on: + type: string + x-stoplight: + id: cx6fszbvodyk6 + created_by: + type: integer + x-stoplight: + id: 9avtyf2lbwksr + description: OK + '403': + $ref: '#/components/responses/NotAuthorized' + '404': + $ref: '#/components/responses/NotFound' + '500': + description: Internal Server Error + security: + - JWT: [] + summary: Get all suppliers + tags: + - Campaign + x-stoplight: + id: hx8pmv3nzamq0 + parameters: + - description: A campaign id + in: path + name: campaign + required: true + schema: + type: string '/campaigns/{campaign}/finance/attachments': parameters: - schema: @@ -13282,6 +13341,52 @@ paths: - jotformId - testerQuestionId description: '' + '/campaigns/{campaign}/finance/suppliers': + get: + description: Get all finance suppliers + operationId: get-campaigns-cid-finance-supplier + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + required: + - id + - name + properties: + id: + type: number + x-stoplight: + id: hhr19m5dfxjtt + name: + type: string + x-stoplight: + id: tyq39dn4ard6q + created_at: + type: string + x-stoplight: + id: fdxd59qz1usvz + created_by: + type: integer + x-stoplight: + id: dkqscj2zlqbq1 + examples: + Example 1: + value: + id: 1 + name: Respondent + created_at: '2026-01-01' + created_by: 10 + '400': + description: Bad Request + '403': + description: Forbidden + '500': + description: Internal Server Error + security: + - JWT: [] '/campaigns/{campaign}/finance/type': parameters: - schema: From 67ef756420b75fba24e98e028efdb266eae388e2 Mon Sep 17 00:00:00 2001 From: "it@app-quality.com" Date: Wed, 28 Jan 2026 10:41:30 +0100 Subject: [PATCH 02/13] Modified src/reference/openapi.yml --- src/reference/openapi.yml | 57 ++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index 10471d637..ffd97d8bb 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -13344,7 +13344,7 @@ paths: '/campaigns/{campaign}/finance/suppliers': get: description: Get all finance suppliers - operationId: get-campaigns-cid-finance-supplier + operationId: get-campaigns-campaign-finance-supplier responses: '200': description: OK @@ -13353,32 +13353,44 @@ paths: schema: type: object required: - - id - - name + - items properties: - id: - type: number + items: + type: array x-stoplight: id: hhr19m5dfxjtt - name: - type: string - x-stoplight: - id: tyq39dn4ard6q - created_at: - type: string - x-stoplight: - id: fdxd59qz1usvz - created_by: - type: integer - x-stoplight: - id: dkqscj2zlqbq1 + items: + x-stoplight: + id: ihcfe7bywmrjs + type: object + required: + - name + - id + properties: + name: + type: string + x-stoplight: + id: 08yzm5eu8tl1h + created_at: + type: string + x-stoplight: + id: w0fmflgc090ff + created_by: + type: integer + x-stoplight: + id: gcs2p8mvl32gc + id: + type: integer + x-stoplight: + id: 3lwwkv3h1vsun examples: - Example 1: + Example 2: value: - id: 1 - name: Respondent - created_at: '2026-01-01' - created_by: 10 + items: + - id: 1 + name: Respondent + created_at: '2026-01-01' + created_by: 10 '400': description: Bad Request '403': @@ -13387,6 +13399,7 @@ paths: description: Internal Server Error security: - JWT: [] + summary: Get finance supplier '/campaigns/{campaign}/finance/type': parameters: - schema: From adbc425d1fe1a8710a7d4654d5d8f963ceefec34 Mon Sep 17 00:00:00 2001 From: "it@app-quality.com" Date: Wed, 28 Jan 2026 10:46:07 +0100 Subject: [PATCH 03/13] Modified src/reference/openapi.yml --- src/reference/openapi.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index ffd97d8bb..b51e74dd3 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -13400,6 +13400,12 @@ paths: security: - JWT: [] summary: Get finance supplier + parameters: + - schema: + type: string + name: campaign + in: path + required: true '/campaigns/{campaign}/finance/type': parameters: - schema: From 933e544d7c65df61a726d350b18ef25a4f7792c5 Mon Sep 17 00:00:00 2001 From: Kariamos Date: Wed, 28 Jan 2026 11:15:39 +0100 Subject: [PATCH 04/13] feat: add finance suppliers endpoints for campaigns --- src/schema.ts | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/schema.ts b/src/schema.ts index e65ad0843..87d90c684 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -154,6 +154,16 @@ export interface paths { }; }; }; + "/campaigns/{campaign}/finance/supplier": { + /** Get all suppliers for finance */ + get: operations["get-campaigns-cid-finance-supplier"]; + parameters: { + path: { + /** A campaign id */ + campaign: string; + }; + }; + }; "/campaigns/{campaign}/forms": { get: operations["get-campaigns-campaign-forms"]; parameters: { @@ -812,6 +822,15 @@ export interface paths { }; }; }; + "/campaigns/{campaign}/finance/suppliers": { + /** Get all finance suppliers */ + get: operations["get-campaigns-campaign-finance-supplier"]; + parameters: { + path: { + campaign: string; + }; + }; + }; } export interface components { @@ -2168,6 +2187,32 @@ export interface operations { }; }; }; + /** Get all suppliers for finance */ + "get-campaigns-cid-finance-supplier": { + parameters: { + path: { + /** A campaign id */ + campaign: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + id: number; + name: string; + created_on?: string; + created_by?: number; + }; + }; + }; + 403: components["responses"]["NotAuthorized"]; + 404: components["responses"]["NotFound"]; + /** Internal Server Error */ + 500: unknown; + }; + }; "get-campaigns-campaign-forms": { parameters: { path: { @@ -5544,6 +5589,35 @@ export interface operations { 500: unknown; }; }; + /** Get all finance suppliers */ + "get-campaigns-campaign-finance-supplier": { + parameters: { + path: { + campaign: string; + }; + }; + responses: { + /** OK */ + 200: { + content: { + "application/json": { + items: { + name: string; + created_at?: string; + created_by?: number; + id: number; + }[]; + }; + }; + }; + /** Bad Request */ + 400: unknown; + /** Forbidden */ + 403: unknown; + /** Internal Server Error */ + 500: unknown; + }; + }; } export interface external {} From 2e1205715b5980eb1b5186177a5ea171b8890e7a Mon Sep 17 00:00:00 2001 From: "it@app-quality.com" Date: Wed, 28 Jan 2026 11:41:31 +0100 Subject: [PATCH 05/13] Modified src/reference/openapi.yml --- src/reference/openapi.yml | 86 +++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index b51e74dd3..dd35be6db 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -3981,51 +3981,65 @@ paths: required: true schema: type: string - '/campaigns/{campaign}/finance/supplier': - get: - description: Get all suppliers for finance - operationId: get-campaigns-cid-finance-supplier - parameters: [] + '/campaigns/{campaign}/finance/attachments': + parameters: + - schema: + type: string + name: campaign + in: path + required: true + - schema: + type: string + name: campaign + in: path + required: true + post: + summary: Your POST endpoint + tags: [] responses: '200': + description: OK content: application/json: - examples: - Example 2: - value: - id: 1 - name: Respondent - created_on: '2026-01-01' - created_by: 32 schema: type: object - required: - - id - - name properties: - id: - type: number - x-stoplight: - id: ctt8sbti2xlsa - name: - type: string - x-stoplight: - id: p42d6s7ngpjtz - created_on: - type: string - x-stoplight: - id: cx6fszbvodyk6 - created_by: - type: integer - x-stoplight: - id: 9avtyf2lbwksr - description: OK + attachments: + type: array + items: + type: object + required: + - url + - name + - mime_type + properties: + url: + type: string + + name: + type: string + mime_type: + type: string + failed: + type: array + + items: + type: object + required: + - name + - path + properties: + name: + type: string + path: + type: string '403': $ref: '#/components/responses/NotAuthorized' - '404': - $ref: '#/components/responses/NotFound' '500': description: Internal Server Error + operationId: post-campaigns-campaign-finance-attachments + x-stoplight: + id: 0ucra88nj3skb security: - JWT: [] summary: Get all suppliers @@ -13341,7 +13355,7 @@ paths: - jotformId - testerQuestionId description: '' - '/campaigns/{campaign}/finance/suppliers': + '/campaigns/{campaign}/finance/supplier': get: description: Get all finance suppliers operationId: get-campaigns-campaign-finance-supplier @@ -13400,6 +13414,8 @@ paths: security: - JWT: [] summary: Get finance supplier + x-stoplight: + id: tlziygldrfder parameters: - schema: type: string From d1f9a38148156a5a8470a7a6e98b064eeb571e4e Mon Sep 17 00:00:00 2001 From: Kariamos Date: Wed, 28 Jan 2026 11:45:36 +0100 Subject: [PATCH 06/13] refactor: update finance suppliers endpoint and remove duplicated operation --- src/schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schema.ts b/src/schema.ts index 87d90c684..a6df456fd 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -822,7 +822,7 @@ export interface paths { }; }; }; - "/campaigns/{campaign}/finance/suppliers": { + "/campaigns/{campaign}/finance/supplier": { /** Get all finance suppliers */ get: operations["get-campaigns-campaign-finance-supplier"]; parameters: { From c9de03090150941fae72ec296c0c22f8ddfb03ec Mon Sep 17 00:00:00 2001 From: Kariamos Date: Wed, 28 Jan 2026 12:02:35 +0100 Subject: [PATCH 07/13] feat: implement finance suppliers endpoint for campaigns --- .../finance/supplier/_get/index.spec.ts | 133 ++++++++++++++++++ .../campaignId/finance/supplier/_get/index.ts | 45 ++++++ 2 files changed, 178 insertions(+) create mode 100644 src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts create mode 100644 src/routes/campaigns/campaignId/finance/supplier/_get/index.ts diff --git a/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts new file mode 100644 index 000000000..da5e4c384 --- /dev/null +++ b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts @@ -0,0 +1,133 @@ +import request from "supertest"; +import app from "@src/app"; +import { tryber } from "@src/features/database"; + +describe("GET /campaigns/campaignId/finance/supplier", () => { + beforeAll(async () => { + await tryber.tables.WpAppqEvdProfile.do().insert([ + { + id: 1, + name: "John", + surname: "Doe", + wp_user_id: 1, + email: "", + employment_id: 1, + education_id: 1, + }, + { + id: 2, + name: "John", + surname: "Doe", + wp_user_id: 2, + email: "", + employment_id: 1, + education_id: 1, + }, + ]); + await tryber.tables.WpUsers.do().insert([{ ID: 1 }, { ID: 2 }]); + await tryber.tables.WpAppqEvdCampaign.do().insert({ + id: 1, + platform_id: 1, + start_date: "2020-01-01", + end_date: "2020-01-01", + title: "This is the title", + page_preview_id: 1, + page_manual_id: 1, + customer_id: 1, + pm_id: 1, + project_id: 1, + customer_title: "", + }); + await tryber.tables.WpAppqCampaignOtherCostsSupplier.do().insert([ + { + id: 1, + name: "Supplier 1", + created_by: 1, + created_on: "2024-01-01 10:00:00", + }, + { + id: 2, + name: "Supplier 2", + created_by: 2, + created_on: "2024-01-02 11:00:00", + }, + ]); + }); + + it("Should return 403 if logged out", async () => { + const response = await request(app).get("/campaigns/1/finance/supplier"); + expect(response.status).toBe(403); + }); + + it("Should return 403 if logged in as not admin user", async () => { + const response = await request(app) + .get("/campaigns/1/finance/supplier") + .set("Authorization", "Bearer tester"); + expect(response.status).toBe(403); + }); + + it("Should return 403 if no access to the campaign", async () => { + const response = await request(app) + .get("/campaigns/1/finance/supplier") + .set("Authorization", 'Bearer tester"'); + expect(response.status).toBe(403); + }); + + it("Should return 200 if logged in as admin", async () => { + const response = await request(app) + .get("/campaigns/1/finance/supplier") + .set("Authorization", "Bearer admin"); + expect(response.status).toBe(200); + }); + + it("Should return finance suppliers", async () => { + const response = await request(app) + .get("/campaigns/1/finance/supplier") + .set("Authorization", "Bearer admin"); + expect(response.body).toEqual( + expect.objectContaining({ + items: expect.arrayContaining([ + expect.objectContaining({ + id: 1, + name: "Supplier 1", + created_by: 1, + created_on: "2024-01-01 10:00:00", + }), + expect.objectContaining({ + id: 2, + name: "Supplier 2", + created_by: 2, + created_on: "2024-01-02 11:00:00", + }), + ]), + }) + ); + expect(response.body.items).toHaveLength(2); + }); + + it("Should return suppliers with olp permissions", async () => { + const response = await request(app) + .get("/campaigns/1/finance/supplier") + .set("Authorization", 'Bearer tester olp {"appq_campaign":[1]}'); + expect(response.status).toBe(200); + expect(response.body).toEqual( + expect.objectContaining({ + items: expect.arrayContaining([ + expect.objectContaining({ + id: 1, + name: "Supplier 1", + created_by: 1, + created_on: "2024-01-01 10:00:00", + }), + expect.objectContaining({ + id: 2, + name: "Supplier 2", + created_by: 2, + created_on: "2024-01-02 11:00:00", + }), + ]), + }) + ); + expect(response.body.items).toHaveLength(2); + }); +}); diff --git a/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts b/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts new file mode 100644 index 000000000..af65a8118 --- /dev/null +++ b/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts @@ -0,0 +1,45 @@ +/** OPENAPI-CLASS: get-campaigns-campaign-finance-supplier */ + +import CampaignRoute from "@src/features/routes/CampaignRoute"; +import { tryber } from "@src/features/database"; +import OpenapiError from "@src/features/OpenapiError"; + +type Supplier = { + id: number; + name: string; + created_on?: string; + created_by?: number; +}; + +export default class SupplierRoute extends CampaignRoute<{ + response: StoplightOperations["get-campaigns-campaign-finance-supplier"]["responses"]["200"]["content"]["application/json"]; + parameters: StoplightOperations["get-campaigns-campaign-finance-supplier"]["parameters"]["path"]; +}> { + protected async filter(): Promise { + if (!(await super.filter())) return false; + + if (!this.hasAccessToCampaign(this.cp_id)) { + this.setError(403, new OpenapiError("Access denied")); + + return false; + } + return true; + } + + protected async prepare(): Promise { + const suppliers = await this.getSuppliers(); + + return this.setSuccess(200, { items: suppliers }); + } + + private async getSuppliers(): Promise { + const results = + await tryber.tables.WpAppqCampaignOtherCostsSupplier.do().select( + "id", + "name", + "created_on", + "created_by" + ); + return results; + } +} From 9dc4013eaedc43f0b438aa2fd521fefaa24c0487 Mon Sep 17 00:00:00 2001 From: Kariamos Date: Thu, 29 Jan 2026 09:53:37 +0100 Subject: [PATCH 08/13] refactor: enhance tests for finance suppliers endpoint and improve cleanup logic --- .../campaignId/finance/supplier/_get/index.spec.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts index da5e4c384..c353f0704 100644 --- a/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts +++ b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts @@ -1,6 +1,7 @@ import request from "supertest"; import app from "@src/app"; import { tryber } from "@src/features/database"; +import { after } from "node:test"; describe("GET /campaigns/campaignId/finance/supplier", () => { beforeAll(async () => { @@ -54,6 +55,13 @@ describe("GET /campaigns/campaignId/finance/supplier", () => { ]); }); + afterAll(async () => { + await tryber.tables.WpAppqCampaignOtherCostsSupplier.do().delete(); + await tryber.tables.WpAppqEvdCampaign.do().delete(); + await tryber.tables.WpUsers.do().delete(); + await tryber.tables.WpAppqEvdProfile.do().delete(); + }); + it("Should return 403 if logged out", async () => { const response = await request(app).get("/campaigns/1/finance/supplier"); expect(response.status).toBe(403); @@ -80,7 +88,7 @@ describe("GET /campaigns/campaignId/finance/supplier", () => { expect(response.status).toBe(200); }); - it("Should return finance suppliers", async () => { + it("Should return finance suppliers - admin", async () => { const response = await request(app) .get("/campaigns/1/finance/supplier") .set("Authorization", "Bearer admin"); @@ -105,7 +113,7 @@ describe("GET /campaigns/campaignId/finance/supplier", () => { expect(response.body.items).toHaveLength(2); }); - it("Should return suppliers with olp permissions", async () => { + it("Should return suppliers - olp permissions", async () => { const response = await request(app) .get("/campaigns/1/finance/supplier") .set("Authorization", 'Bearer tester olp {"appq_campaign":[1]}'); From fab376b89214e739a2738676f4b6317461ea1b71 Mon Sep 17 00:00:00 2001 From: "it@app-quality.com" Date: Thu, 29 Jan 2026 13:07:40 +0100 Subject: [PATCH 09/13] Modified src/reference/openapi.yml --- src/reference/openapi.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index dd35be6db..a7f60fe18 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -13379,7 +13379,6 @@ paths: type: object required: - name - - id properties: name: type: string @@ -13393,16 +13392,11 @@ paths: type: integer x-stoplight: id: gcs2p8mvl32gc - id: - type: integer - x-stoplight: - id: 3lwwkv3h1vsun examples: Example 2: value: items: - - id: 1 - name: Respondent + - name: Respondent created_at: '2026-01-01' created_by: 10 '400': From d5d4c8149f5d399e12bcefed2c21bd00d8ba1283 Mon Sep 17 00:00:00 2001 From: Kariamos Date: Thu, 29 Jan 2026 13:09:58 +0100 Subject: [PATCH 10/13] refactor: remove redundant 'id' field from operations interface --- src/schema.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/schema.ts b/src/schema.ts index a6df456fd..c9c6870f7 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -5605,7 +5605,6 @@ export interface operations { name: string; created_at?: string; created_by?: number; - id: number; }[]; }; }; From 8780256b14c73e8d34aea283c71ed7457499eda4 Mon Sep 17 00:00:00 2001 From: Kariamos Date: Thu, 29 Jan 2026 13:10:08 +0100 Subject: [PATCH 11/13] refactor: remove 'id' field from Supplier type and related queries --- .../campaignId/finance/supplier/_get/index.spec.ts | 5 ----- .../campaignId/finance/supplier/_get/index.ts | 14 +++++--------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts index c353f0704..ee1bf1af0 100644 --- a/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts +++ b/src/routes/campaigns/campaignId/finance/supplier/_get/index.spec.ts @@ -1,7 +1,6 @@ import request from "supertest"; import app from "@src/app"; import { tryber } from "@src/features/database"; -import { after } from "node:test"; describe("GET /campaigns/campaignId/finance/supplier", () => { beforeAll(async () => { @@ -96,13 +95,11 @@ describe("GET /campaigns/campaignId/finance/supplier", () => { expect.objectContaining({ items: expect.arrayContaining([ expect.objectContaining({ - id: 1, name: "Supplier 1", created_by: 1, created_on: "2024-01-01 10:00:00", }), expect.objectContaining({ - id: 2, name: "Supplier 2", created_by: 2, created_on: "2024-01-02 11:00:00", @@ -122,13 +119,11 @@ describe("GET /campaigns/campaignId/finance/supplier", () => { expect.objectContaining({ items: expect.arrayContaining([ expect.objectContaining({ - id: 1, name: "Supplier 1", created_by: 1, created_on: "2024-01-01 10:00:00", }), expect.objectContaining({ - id: 2, name: "Supplier 2", created_by: 2, created_on: "2024-01-02 11:00:00", diff --git a/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts b/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts index af65a8118..807584851 100644 --- a/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts +++ b/src/routes/campaigns/campaignId/finance/supplier/_get/index.ts @@ -5,7 +5,6 @@ import { tryber } from "@src/features/database"; import OpenapiError from "@src/features/OpenapiError"; type Supplier = { - id: number; name: string; created_on?: string; created_by?: number; @@ -33,13 +32,10 @@ export default class SupplierRoute extends CampaignRoute<{ } private async getSuppliers(): Promise { - const results = - await tryber.tables.WpAppqCampaignOtherCostsSupplier.do().select( - "id", - "name", - "created_on", - "created_by" - ); - return results; + return await tryber.tables.WpAppqCampaignOtherCostsSupplier.do().select( + "name", + "created_on", + "created_by" + ); } } From 963432e78037a752b030a480e6911c7ac16572e2 Mon Sep 17 00:00:00 2001 From: Kariamos Date: Thu, 29 Jan 2026 17:06:54 +0100 Subject: [PATCH 12/13] refactor: remove duplicated finance suppliers endpoint from campaigns path --- src/schema.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/schema.ts b/src/schema.ts index c9c6870f7..68523450b 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -154,16 +154,6 @@ export interface paths { }; }; }; - "/campaigns/{campaign}/finance/supplier": { - /** Get all suppliers for finance */ - get: operations["get-campaigns-cid-finance-supplier"]; - parameters: { - path: { - /** A campaign id */ - campaign: string; - }; - }; - }; "/campaigns/{campaign}/forms": { get: operations["get-campaigns-campaign-forms"]; parameters: { From 23cf049be0496e44c2b33de9e6bc45da3111309a Mon Sep 17 00:00:00 2001 From: Kariamos Date: Thu, 29 Jan 2026 17:22:53 +0100 Subject: [PATCH 13/13] refactor: update finance supplier endpoint and adjust related operations --- src/reference/openapi.yml | 78 --------------------------------------- src/schema.ts | 66 ++++++++++----------------------- 2 files changed, 20 insertions(+), 124 deletions(-) diff --git a/src/reference/openapi.yml b/src/reference/openapi.yml index a7f60fe18..0593f1d08 100644 --- a/src/reference/openapi.yml +++ b/src/reference/openapi.yml @@ -3988,84 +3988,6 @@ paths: name: campaign in: path required: true - - schema: - type: string - name: campaign - in: path - required: true - post: - summary: Your POST endpoint - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - attachments: - type: array - items: - type: object - required: - - url - - name - - mime_type - properties: - url: - type: string - - name: - type: string - mime_type: - type: string - failed: - type: array - - items: - type: object - required: - - name - - path - properties: - name: - type: string - path: - type: string - '403': - $ref: '#/components/responses/NotAuthorized' - '500': - description: Internal Server Error - operationId: post-campaigns-campaign-finance-attachments - x-stoplight: - id: 0ucra88nj3skb - security: - - JWT: [] - summary: Get all suppliers - tags: - - Campaign - x-stoplight: - id: hx8pmv3nzamq0 - parameters: - - description: A campaign id - in: path - name: campaign - required: true - schema: - type: string - '/campaigns/{campaign}/finance/attachments': - parameters: - - schema: - type: string - name: campaign - in: path - required: true - - schema: - type: string - name: campaign - in: path - required: true post: summary: Your POST endpoint tags: [] diff --git a/src/schema.ts b/src/schema.ts index 68523450b..f7bd799a7 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -804,17 +804,17 @@ export interface paths { }; }; }; - "/campaigns/{campaign}/finance/type": { - get: operations["get-campaigns-campaign-finance-type"]; + "/campaigns/{campaign}/finance/supplier": { + /** Get all finance suppliers */ + get: operations["get-campaigns-campaign-finance-supplier"]; parameters: { path: { campaign: string; }; }; }; - "/campaigns/{campaign}/finance/supplier": { - /** Get all finance suppliers */ - get: operations["get-campaigns-campaign-finance-supplier"]; + "/campaigns/{campaign}/finance/type": { + get: operations["get-campaigns-campaign-finance-type"]; parameters: { path: { campaign: string; @@ -2177,32 +2177,6 @@ export interface operations { }; }; }; - /** Get all suppliers for finance */ - "get-campaigns-cid-finance-supplier": { - parameters: { - path: { - /** A campaign id */ - campaign: string; - }; - }; - responses: { - /** OK */ - 200: { - content: { - "application/json": { - id: number; - name: string; - created_on?: string; - created_by?: number; - }; - }; - }; - 403: components["responses"]["NotAuthorized"]; - 404: components["responses"]["NotFound"]; - /** Internal Server Error */ - 500: unknown; - }; - }; "get-campaigns-campaign-forms": { parameters: { path: { @@ -5556,7 +5530,8 @@ export interface operations { }; }; }; - "get-campaigns-campaign-finance-type": { + /** Get all finance suppliers */ + "get-campaigns-campaign-finance-supplier": { parameters: { path: { campaign: string; @@ -5568,19 +5543,22 @@ export interface operations { content: { "application/json": { items: { - name?: string; + name: string; + created_at?: string; + created_by?: number; }[]; }; }; }; - 403: components["responses"]["NotAuthorized"]; - 404: components["responses"]["NotFound"]; - /** Shared Response */ + /** Bad Request */ + 400: unknown; + /** Forbidden */ + 403: unknown; + /** Internal Server Error */ 500: unknown; }; }; - /** Get all finance suppliers */ - "get-campaigns-campaign-finance-supplier": { + "get-campaigns-campaign-finance-type": { parameters: { path: { campaign: string; @@ -5592,18 +5570,14 @@ export interface operations { content: { "application/json": { items: { - name: string; - created_at?: string; - created_by?: number; + name?: string; }[]; }; }; }; - /** Bad Request */ - 400: unknown; - /** Forbidden */ - 403: unknown; - /** Internal Server Error */ + 403: components["responses"]["NotAuthorized"]; + 404: components["responses"]["NotFound"]; + /** Shared Response */ 500: unknown; }; };