From f2bf479e0f87d392c33fbcafd08f0b549163bd52 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Mar 2021 21:10:26 +0100 Subject: [PATCH] todo-backend: initial setup and mock API Signed-off-by: Patrik Oldsberg --- plugins/todo-backend/package.json | 2 +- plugins/todo-backend/src/run.ts | 33 ---------- plugins/todo-backend/src/service/router.ts | 15 +++-- .../src/service/standaloneServer.ts | 62 ------------------- plugins/todo-backend/src/setupTests.ts | 17 ----- 5 files changed, 11 insertions(+), 118 deletions(-) delete mode 100644 plugins/todo-backend/src/run.ts delete mode 100644 plugins/todo-backend/src/service/standaloneServer.ts delete mode 100644 plugins/todo-backend/src/setupTests.ts diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 47c0202bba..c47ff18ab8 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -10,7 +10,6 @@ "types": "dist/index.d.ts" }, "scripts": { - "start": "backstage-cli backend:dev", "build": "backstage-cli backend:build", "lint": "backstage-cli lint", "test": "backstage-cli test", @@ -20,6 +19,7 @@ }, "dependencies": { "@backstage/backend-common": "^0.5.5", + "@backstage/catalog-client": "^0.3.6", "@backstage/config": "^0.1.3", "@types/express": "^4.17.6", "express": "^4.17.1", diff --git a/plugins/todo-backend/src/run.ts b/plugins/todo-backend/src/run.ts deleted file mode 100644 index b96989e4b8..0000000000 --- a/plugins/todo-backend/src/run.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -import { getRootLogger } from '@backstage/backend-common'; -import yn from 'yn'; -import { startStandaloneServer } from './service/standaloneServer'; - -const port = process.env.PLUGIN_PORT ? Number(process.env.PLUGIN_PORT) : 7000; -const enableCors = yn(process.env.PLUGIN_CORS, { default: false }); -const logger = getRootLogger(); - -startStandaloneServer({ port, enableCors, logger }).catch(err => { - logger.error(err); - process.exit(1); -}); - -process.on('SIGINT', () => { - logger.info('CTRL+C pressed; exiting.'); - process.exit(0); -}); diff --git a/plugins/todo-backend/src/service/router.ts b/plugins/todo-backend/src/service/router.ts index 3ea8219365..08d6440780 100644 --- a/plugins/todo-backend/src/service/router.ts +++ b/plugins/todo-backend/src/service/router.ts @@ -14,13 +14,18 @@ * limitations under the License. */ -import { errorHandler } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { CatalogClient } from '@backstage/catalog-client'; +import { Config } from '@backstage/config'; import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; export interface RouterOptions { logger: Logger; + config: Config; + reader: UrlReader; + catalogClient: CatalogClient; } export async function createRouter( @@ -31,10 +36,10 @@ export async function createRouter( const router = Router(); router.use(express.json()); - router.get('/health', (_, response) => { - logger.info('PONG!'); - response.send({ status: 'ok' }); + router.get('/v1/todos', (req, res) => { + logger.debug('got todo request', req.query); + res.json({ items: [{ text: 'Test TODO' }], totalCount: 1 }); }); - router.use(errorHandler()); + return router; } diff --git a/plugins/todo-backend/src/service/standaloneServer.ts b/plugins/todo-backend/src/service/standaloneServer.ts deleted file mode 100644 index 4901ec1895..0000000000 --- a/plugins/todo-backend/src/service/standaloneServer.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2021 Spotify AB - * - * 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. - */ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -import { createServiceBuilder } from '@backstage/backend-common'; -import { Server } from 'http'; -import { Logger } from 'winston'; -import { createRouter } from './router'; - -export interface ServerOptions { - port: number; - enableCors: boolean; - logger: Logger; -} - -export async function startStandaloneServer( - options: ServerOptions, -): Promise { - const logger = options.logger.child({ service: 'todo-backend' }); - logger.debug('Starting application server...'); - const router = await createRouter({ - logger, - }); - - const service = createServiceBuilder(module) - .enableCors({ origin: 'http://localhost:3000' }) - .addRouter('/todo', router); - - return await service.start().catch(err => { - logger.error(err); - process.exit(1); - }); -} - -module.hot?.accept(); diff --git a/plugins/todo-backend/src/setupTests.ts b/plugins/todo-backend/src/setupTests.ts deleted file mode 100644 index ba33cf996b..0000000000 --- a/plugins/todo-backend/src/setupTests.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -export {};