diff --git a/api/apiBaseRouter.js b/api/apiBaseRouter.js index 113178f5e277258fabceb34b49def1416c55bd36..7954c66cdf6231e6e671e2a79a8df55f8faa8d15 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 b72e0ae51dbd514eea38ad2efd5952bf0204e132..fb5bf946a0a307c869a97dcb26f154de81d302ef 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 ffb6154e096952e4951ce6893a6ad8d74f492a4c..b2fc611c9a4abedd724ead2393b0e83560ab1d4e 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 63d69c3e6e30928410736dcef2bcf4908397ee9c..c173181266f55eafb17c131d656afbac2cc46614 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 1e1554b7631ef2c7fd260796c42937737cf1acf3..a98b3d7e11839c134d5a87bd8a6b601929e385bb 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 0000000000000000000000000000000000000000..5e03a21b60e0cb3e7539cfba1f3310cf3ad7be7e --- /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 0000000000000000000000000000000000000000..ebeecb7f6c811974ca9bfe74322398f9d21c2632 --- /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 0000000000000000000000000000000000000000..a097b46837e53ea82f976f4530ab56dac006e24f --- /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 0000000000000000000000000000000000000000..705512b899812413ba854892fa4f60fe91ac8f50 --- /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 b170eb5bc2afe077fc5dc30432445a85b084d78d..812af00b4f006f197380c03fae8bb1ca83dca530 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