From 0aedb6c25760051bed220cf6ec620eae42022c7a Mon Sep 17 00:00:00 2001 From: GustavoAdrianGimenez Date: Fri, 7 Apr 2023 11:32:56 -0300 Subject: [PATCH] Add docs column to metadata table Signed-off-by: GustavoAdrianGimenez --- .../20230407142544_add_docs_to_metadata.js | 37 +++++++++++++++++++ .../src/service/DatabaseHandler.test.ts | 3 ++ .../src/service/DatabaseHandler.ts | 5 +++ 3 files changed, 45 insertions(+) create mode 100644 plugins/bazaar-backend/migrations/20230407142544_add_docs_to_metadata.js diff --git a/plugins/bazaar-backend/migrations/20230407142544_add_docs_to_metadata.js b/plugins/bazaar-backend/migrations/20230407142544_add_docs_to_metadata.js new file mode 100644 index 0000000000..de73308431 --- /dev/null +++ b/plugins/bazaar-backend/migrations/20230407142544_add_docs_to_metadata.js @@ -0,0 +1,37 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @ts-check + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = async function up(knex) { + await knex.schema.alterTable('metadata', table => { + table.text('docs').comment('The link to the project docs (optional)'); + }); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function down(knex) { + await knex.schema.alterTable('metadata', table => { + table.dropColumn('docs'); + }); +}; diff --git a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts index 8978679ff4..0c78dbdd87 100644 --- a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts +++ b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts @@ -29,6 +29,7 @@ const bazaarProject: any = { endDate: null, size: 'small', responsible: 'r', + docs: '', }; jest.setTimeout(60_000); @@ -75,6 +76,7 @@ describe('DatabaseHandler', () => { end_date: bazaarProject.endDate, size: bazaarProject.size, responsible: bazaarProject.responsible, + docs: bazaarProject.docs, }); // Add a member to the project @@ -94,6 +96,7 @@ describe('DatabaseHandler', () => { expect(res[0].end_date).toEqual(null); expect(res[0].size).toEqual('small'); expect(res[0].responsible).toEqual('r'); + expect(res[0].docs).toEqual(''); expect( res[0].members_count === '1' || res[0].members_count === 1, ).toBeTruthy(); diff --git a/plugins/bazaar-backend/src/service/DatabaseHandler.ts b/plugins/bazaar-backend/src/service/DatabaseHandler.ts index f75ea8b782..1d3c231409 100644 --- a/plugins/bazaar-backend/src/service/DatabaseHandler.ts +++ b/plugins/bazaar-backend/src/service/DatabaseHandler.ts @@ -61,6 +61,7 @@ export class DatabaseHandler { 'metadata.start_date', 'metadata.end_date', 'metadata.responsible', + 'metadata.docs', ]; async getMembers(id: string) { @@ -120,6 +121,7 @@ export class DatabaseHandler { entityRef, community, description, + docs, status, size, startDate, @@ -133,6 +135,7 @@ export class DatabaseHandler { entity_ref: entityRef, community, description, + docs, status, updated_at: new Date().toISOString(), size, @@ -150,6 +153,7 @@ export class DatabaseHandler { entityRef, community, description, + docs, status, size, startDate, @@ -162,6 +166,7 @@ export class DatabaseHandler { entity_ref: entityRef, description, community, + docs, status, updated_at: new Date().toISOString(), size,