From 697a17309385ae8d9b8e4f7ad93dbe3220fc4825 Mon Sep 17 00:00:00 2001 From: "nayana.mogaveera" <nayana.mogaveera@niveussolutions.com> Date: Tue, 3 Sep 2024 16:42:16 +0530 Subject: [PATCH] commit-16-42 --- api/apiBaseRouter.js | 4 ++-- api/template/business.js | 14 +++++++++++++- api/template/controller.js | 14 +++++++++++++- api/template/routes.js | 4 +++- api/template/service.js | 16 +++++++++++++++- api/widget/business.js | 32 ++++++++++++++++++++++++++++++++ api/widget/controller.js | 31 +++++++++++++++++++++++++++++++ api/widget/routes.js | 9 +++++++++ api/widget/service.js | 35 +++++++++++++++++++++++++++++++++++ swagger.yaml | 6 +++--- 10 files changed, 156 insertions(+), 9 deletions(-) create mode 100644 api/widget/business.js create mode 100644 api/widget/controller.js create mode 100644 api/widget/routes.js create mode 100644 api/widget/service.js diff --git a/api/apiBaseRouter.js b/api/apiBaseRouter.js index 113178f..7954c66 100644 --- a/api/apiBaseRouter.js +++ b/api/apiBaseRouter.js @@ -1,5 +1,5 @@ const healthCheckRouter = require('./health-check/routes'); -const layoutRouter = require('./layout/routes'); +const widgetRouter = require('./widget/routes'); const templateRouter = require('./template/routes') const apiBaseRouter = require('express').Router(); @@ -10,7 +10,7 @@ apiBaseRouter.use('/health-check', healthCheckRouter); // apiBaseRouter.use('/otp', otpRouter); -apiBaseRouter.use('/widget', layoutRouter); +apiBaseRouter.use('/widget', widgetRouter); apiBaseRouter.use('/template', templateRouter); diff --git a/api/template/business.js b/api/template/business.js index b72e0ae..fb5bf94 100644 --- a/api/template/business.js +++ b/api/template/business.js @@ -24,7 +24,19 @@ const createTemplate = async (name, desc, widgets, hashId) => { }; +const getPerticularWidget = async (page) => { + try { + const response = await templateService.getPerticularWidget(page); + console.log(page,"Pagessssssss"); + return { status: '200', response } + } catch (error) { + throw error + } + +}; + module.exports = { updateAndMapWidget, - createTemplate + createTemplate, + getPerticularWidget }; diff --git a/api/template/controller.js b/api/template/controller.js index ffb6154..b2fc611 100644 --- a/api/template/controller.js +++ b/api/template/controller.js @@ -26,7 +26,19 @@ const createTemplate = async (req, res, next) => { } }; +const getPerticularWidget = async (req, res) => { + try { + console.log("GET template details of a particular page"); + const { page } = req.params; + const response = await templateBusiness.getPerticularWidget(page); + return res.status(response.status).json({ data: response }); + } catch (error) { + throw error; + } +}; + module.exports = { updateAndMapWidget, - createTemplate + createTemplate, + getPerticularWidget } \ No newline at end of file diff --git a/api/template/routes.js b/api/template/routes.js index 63d69c3..c173181 100644 --- a/api/template/routes.js +++ b/api/template/routes.js @@ -1,10 +1,12 @@ const templateRouter = require('express').Router(); -const { updateAndMapWidget,createTemplate } = require('./controller'); +const { updateAndMapWidget,createTemplate,getPerticularWidget } = require('./controller'); templateRouter.put('/:page/widgets/:widgetId', updateAndMapWidget); templateRouter.post('/createTemplate', createTemplate); +templateRouter.get('/template/:page', getPerticularWidget); + module.exports = templateRouter; \ No newline at end of file diff --git a/api/template/service.js b/api/template/service.js index 1e1554b..a98b3d7 100644 --- a/api/template/service.js +++ b/api/template/service.js @@ -56,8 +56,22 @@ const createTemplate = async (name, desc, widgets, hashId) => { }; +const getPerticularWidget = async (page,res) => { + try { + const template = await Template.findOne({ name: page}).populate('widgets.widgetId'); + if (!template) { + return res.status(404).json({ error: 'Template not found' }); + } + return template; + } catch (error) { + throw error + } + +}; + module.exports = { updateAndMapWidget, - createTemplate + createTemplate, + getPerticularWidget }; \ No newline at end of file diff --git a/api/widget/business.js b/api/widget/business.js new file mode 100644 index 0000000..5e03a21 --- /dev/null +++ b/api/widget/business.js @@ -0,0 +1,32 @@ +/* eslint-disable prefer-promise-reject-errors */ +/* eslint-disable no-throw-literal */ +// const logger = require('utils/logger'); +const widgetService = require('./service'); + + + +const getAllWidget = async (page) => { + try { + const response = await widgetService.getAllWidget(page); + return { status: '200', response } + } catch (error) { + throw error + } + +}; + +const createWidget = async (data) => { + try { + const response = await widgetService.createWidget(data); + return { status: '200', response } + } catch (error) { + throw error + } + +}; + + +module.exports = { + getAllWidget, + createWidget, +}; diff --git a/api/widget/controller.js b/api/widget/controller.js new file mode 100644 index 0000000..ebeecb7 --- /dev/null +++ b/api/widget/controller.js @@ -0,0 +1,31 @@ +// const logger = require('utils/logger'); +const widgetBusiness = require('./business'); +// const Joi = require('joi'); + +const getAllWidget = async (req, res, next) => { + try { + console.log("comign here") + const { page } = req.params; + const response = await widgetBusiness.getAllWidget(page); + return res.status(response.status).json({ data: response }); + } catch (error) { + throw error + } +}; +const createWidget = async (req, res, next) => { + try { + console.log("comign createWidget") + + const response = await widgetBusiness.createWidget(req.body); + return res.status(response.status).json({ data: response }); + } catch (error) { + throw error + } +}; + + + +module.exports = { + getAllWidget, + createWidget, +}; \ No newline at end of file diff --git a/api/widget/routes.js b/api/widget/routes.js new file mode 100644 index 0000000..a097b46 --- /dev/null +++ b/api/widget/routes.js @@ -0,0 +1,9 @@ +const widgetRouter = require('express').Router(); +const { getAllWidget, createWidget } = require('./controller'); + +widgetRouter.get('/allWidget/:page', getAllWidget); + +widgetRouter.post('/createWidget', createWidget); + + +module.exports = widgetRouter; \ No newline at end of file diff --git a/api/widget/service.js b/api/widget/service.js new file mode 100644 index 0000000..705512b --- /dev/null +++ b/api/widget/service.js @@ -0,0 +1,35 @@ +// const logger = require('utils/logger'); + +const Widget = require("../models/widget"); +const Template = require("../models/template") + +const getAllWidget = async (page) => { + try { + const template = await Template.findOne({ name: page}).populate('widgets.widgetId'); + if (!template) { + return res.status(404).json({ error: 'Template not found' }); + } + res.status(200).json(template); + } catch (error) { + throw error + } + +}; + +const createWidget = async (data) => { + try { + console.log("in service") + const widget = new Widget(data); + await widget.save(); + return { status: 201, id: widget._id, message: 'Widget created successfully' }; + } catch (error) { + throw error + } + +}; + + +module.exports = { + getAllWidget, + createWidget, +}; \ No newline at end of file diff --git a/swagger.yaml b/swagger.yaml index b170eb5..812af00 100644 --- a/swagger.yaml +++ b/swagger.yaml @@ -9,7 +9,7 @@ info: # description: Local server paths: - /template/{page}: + /template/template/{page}: get: tags: - "Template" @@ -62,7 +62,7 @@ paths: error: type: string - /widget/allLayout/{page}: + /widget/allWidget/{page}: get: tags: - "Widget" @@ -312,7 +312,7 @@ paths: desc: type: string description: A description of the template - example: "Template for the homepage layout" + example: "Template for the homepage widget" widgets: type: array description: A list of widgets mapped to the template -- GitLab