From 058a3502d757179a988298f1b762cdb84d097d55 Mon Sep 17 00:00:00 2001 From: Shristi Sinha Date: Thu, 16 May 2024 18:19:26 +0530 Subject: [PATCH] fetch Single ContentType API --- .../projects.contentMapper.controller.ts | 9 ++++ api/src/routes/contentMapper.routes.ts | 6 +++ api/src/services/contentMapper.service.ts | 42 +++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/api/src/controllers/projects.contentMapper.controller.ts b/api/src/controllers/projects.contentMapper.controller.ts index eb0c6ea29..797d5a9bf 100644 --- a/api/src/controllers/projects.contentMapper.controller.ts +++ b/api/src/controllers/projects.contentMapper.controller.ts @@ -37,6 +37,14 @@ const resetContentType = async (req: Request, res: Response): Promise => { // res.status(200).json(resp); // }; +const getSingleContentTypes = async ( + req: Request, + res: Response +): Promise => { + const resp = await contentMapperService.getSingleContentTypes(req); + res.status(201).json(resp); +}; + export const contentMapperController = { getContentTypes, getFieldMapping, @@ -45,4 +53,5 @@ export const contentMapperController = { putContentTypeFields, resetContentType, // removeMapping, + getSingleContentTypes }; diff --git a/api/src/routes/contentMapper.routes.ts b/api/src/routes/contentMapper.routes.ts index 57d90bbcf..1fc8ba35c 100644 --- a/api/src/routes/contentMapper.routes.ts +++ b/api/src/routes/contentMapper.routes.ts @@ -36,5 +36,11 @@ router.put( "/resetFields/:orgId/:projectId/:contentTypeId", asyncRouter(contentMapperController.resetContentType) ); +//get Single contenttype data +router.get( + "/:projectId/:contentTypeUid", + asyncRouter(contentMapperController.getSingleContentTypes) +); + export default router; diff --git a/api/src/services/contentMapper.service.ts b/api/src/services/contentMapper.service.ts index 749390f18..66d9192a3 100644 --- a/api/src/services/contentMapper.service.ts +++ b/api/src/services/contentMapper.service.ts @@ -635,6 +635,47 @@ const removeMapping = async (projectId: string) => { ); } }; +const getSingleContentTypes = async (req: Request) => { + const projectId = req?.params?.projectId; + const contentTypeUID = req?.params?.contentTypeUid; + const { token_payload } = req.body; + + const authtoken = await getAuthtoken( + token_payload?.region, + token_payload?.user_id + ); + await ProjectModelLowdb.read(); + const project = ProjectModelLowdb.chain + .get("projects") + .find({ id: projectId }) + .value(); + const stackId = project?.destination_stack_id; + + const [err, res] = await safePromise( + https({ + method: "GET", + url: `${config.CS_API[ + token_payload?.region as keyof typeof config.CS_API + ]!}/content_types/${contentTypeUID}`, + headers: { + api_key: stackId, + authtoken: authtoken, + }, + }) + ); + + if (err) + return { + data: err.response.data, + status: err.response.status, + }; + + return { + title: res?.data?.content_type?.title, + uid: res?.data?.content_type?.uid, + schema: res?.data?.content_type?.schema, + }; +}; export const contentMapperService = { putTestData, @@ -645,4 +686,5 @@ export const contentMapperService = { resetToInitialMapping, resetAllContentTypesMapping, removeMapping, + getSingleContentTypes };