From b9b873a915ce8c34c9b344cbc89d26cd7ec2df76 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Sat, 3 Apr 2021 19:24:25 +0200 Subject: [PATCH] feat: added sample get endpoint --- server/src/app.ts | 8 ++++++-- server/src/routes/api/get/index.ts | 3 +++ server/src/routes/api/get/sample.ts | 11 +++++++++++ server/src/routes/api/register.ts | 10 ++++++++++ server/src/types.ts | 7 +++++++ 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 server/src/routes/api/get/index.ts create mode 100644 server/src/routes/api/get/sample.ts create mode 100644 server/src/routes/api/register.ts diff --git a/server/src/app.ts b/server/src/app.ts index 0bd958b..1641e2f 100644 --- a/server/src/app.ts +++ b/server/src/app.ts @@ -1,14 +1,15 @@ import http from 'http' - import express, { Application } from 'express' import initDebug from 'debug' +import { registerMiddlewares } from './middlewares' + import indexRouter from './routes' import usersRouter from './routes/users' import { normalizePort } from './helpers/port' import { getErrorCb, getListeningCb } from './helpers/server-callbacks' -import { registerMiddlewares } from './middlewares' +import { registerApis } from './routes/api/register' const PORT = normalizePort(process.env.PORT || '6595') @@ -23,6 +24,9 @@ registerMiddlewares(app) app.use('/', indexRouter) app.use('/users', usersRouter) +/* === APIs === */ +registerApis(app) + /* === Config === */ app.set('port', PORT) diff --git a/server/src/routes/api/get/index.ts b/server/src/routes/api/get/index.ts new file mode 100644 index 0000000..e3f24ec --- /dev/null +++ b/server/src/routes/api/get/index.ts @@ -0,0 +1,3 @@ +import sample from './sample' + +export default [sample] diff --git a/server/src/routes/api/get/sample.ts b/server/src/routes/api/get/sample.ts new file mode 100644 index 0000000..54ae0f2 --- /dev/null +++ b/server/src/routes/api/get/sample.ts @@ -0,0 +1,11 @@ +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/sample' + +const handler: ApiHandler['handler'] = (_, res) => { + res.send('Mandi') +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/register.ts b/server/src/routes/api/register.ts new file mode 100644 index 0000000..47ed807 --- /dev/null +++ b/server/src/routes/api/register.ts @@ -0,0 +1,10 @@ +import { Application } from 'express' +import getEndpoints from './get' + +const prependApiPath = (path:string) => `/api${path}` + +export function registerApis (app: Application) { + getEndpoints.forEach((getApi) => { + app.get(prependApiPath(getApi.path), getApi.handler) + }) +} diff --git a/server/src/types.ts b/server/src/types.ts index b166801..a6c35aa 100644 --- a/server/src/types.ts +++ b/server/src/types.ts @@ -1 +1,8 @@ +import { RequestHandler } from 'express' + export type Port = number | string | boolean + +export interface ApiHandler { + path: string + handler: RequestHandler +}