From bb01f7d62d24acb919923647066ed4e34be9a05d Mon Sep 17 00:00:00 2001 From: Fabian Stamm Date: Sun, 20 Dec 2020 00:02:36 +0100 Subject: [PATCH] Adding API Endpoint for featured clients --- src/api/client/index.ts | 26 ++++++++++++++++++++++++++ src/models/client.ts | 4 ++++ 2 files changed, 30 insertions(+) diff --git a/src/api/client/index.ts b/src/api/client/index.ts index 29c49de..6b06743 100644 --- a/src/api/client/index.ts +++ b/src/api/client/index.ts @@ -81,4 +81,30 @@ ClientRouter.get( }) ); +/** + * @api {get} /client/featured + * + * @apiDescription Get a list of clients, that want to be featured on the home page + * + * @apiName GetFeaturedClients + * @apiGroup client + */ +ClientRouter.get( + "/featured", + Stacker(async (req: Request, res) => { + let clients = await Client.find({ + featured: true, + }); + + res.json({ + clients: clients.map(({ name, logo, website, description }) => ({ + name, + logo, + website, + description, + })), + }); + }) +); + export default ClientRouter; diff --git a/src/models/client.ts b/src/models/client.ts index e5e01a0..659632f 100644 --- a/src/models/client.ts +++ b/src/models/client.ts @@ -12,6 +12,8 @@ export interface IClient extends ModelDataBase { logo?: string; client_id: string; client_secret: string; + featured?: boolean; + description?: string; } const Client = DB.addModel({ @@ -28,6 +30,8 @@ const Client = DB.addModel({ logo: { type: String, optional: true }, client_id: { type: String, default: () => v4() }, client_secret: { type: String }, + featured: { type: Boolean, optional: true }, + description: { type: String, optional: true }, }, }, ],