tango-app-api-infra 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-infra",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
4
4
  "description": "infra",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "handlebars": "^4.7.8",
21
21
  "mongodb": "^6.4.0",
22
22
  "nodemon": "^3.1.0",
23
- "tango-api-schema": "^2.0.5",
23
+ "tango-api-schema": "^2.0.7",
24
24
  "tango-app-api-middleware": "^1.0.15",
25
25
  "winston": "^3.12.0",
26
26
  "winston-daily-rotate-file": "^5.0.0"
@@ -0,0 +1,45 @@
1
+
2
+
3
+ import dataModel from 'tango-api-schema';
4
+ import { logger } from 'tango-app-api-middleware';
5
+ export async function createTicket( req, res ) {
6
+ try {
7
+ req.body.ticketId = 'TE_INF_' + new Date().valueOf();
8
+ req.body.issueDate = new Date( req.body.Date );
9
+ req.body.infraTicketDetails = {
10
+ filesCount: req.body.filesCount,
11
+ };
12
+ let create = await dataModel.tangoTicket.create( req.body );
13
+ if ( create ) {
14
+ res.sendSuccess( 'Ticket Created Successfully' );
15
+ }
16
+ } catch ( error ) {
17
+ logger.error( { error: error, function: 'createTicket' } );
18
+ return res.sendError( error, 500 );
19
+ }
20
+ }
21
+
22
+
23
+ export async function updateTicket( req, res ) {
24
+ try {
25
+ let infraTicketDetails = {};
26
+ if ( req.body.status == 'close' ) {
27
+ infraTicketDetails.ticketClosingtime = new Date();
28
+ }
29
+
30
+ let updateTicket = await dataModel.tangoTicket.updateOne( { ticketId: req.body.ticketId },
31
+ {
32
+ $set: {
33
+ status: req.body.status,
34
+ infraTicketDetails: infraTicketDetails,
35
+ },
36
+ },
37
+ );
38
+ if ( updateTicket ) {
39
+ res.sendSuccess( 'Ticket Updated Successfully' );
40
+ }
41
+ } catch ( error ) {
42
+ logger.error( { error: error, function: 'updateTicket' } );
43
+ return res.sendError( error, 500 );
44
+ }
45
+ }
@@ -95,3 +95,15 @@ export async function downStoresList( req, res ) {
95
95
  res.sendError( error, 500 );
96
96
  }
97
97
  }
98
+ export async function openTicketList( req, res ) {
99
+ try {
100
+ let openTicketList = await dataModel.tangoTicket.find( { status: { $ne: 'closed' } }, { ticketId: 1, basicDetails: 1 } );
101
+ res.send( {
102
+ count: openTicketList.length,
103
+ data: openTicketList,
104
+ } );
105
+ } catch ( error ) {
106
+ logger.error( { error: error, function: 'ticketList' } );
107
+ res.sendError( error, 500 );
108
+ }
109
+ }
@@ -0,0 +1,43 @@
1
+ import dataModel from 'tango-api-schema';
2
+ import { logger } from 'tango-app-api-middleware';
3
+
4
+ export async function validateDetails( req, res, next ) {
5
+ try {
6
+ let store = await dataModel.storeModel.findOne( { storeId: req.body.storeId } );
7
+ if ( !store ) {
8
+ return res.sendError( 'StoreID Not Available' );
9
+ }
10
+ let client = await dataModel.clientModel.findOne( { clientId: store.clientId } );
11
+ if ( !client ) {
12
+ return res.sendError( 'Client Not Available' );
13
+ }
14
+ req.body.basicDetails = {
15
+ storeId: req.body.storeId,
16
+ storeName: store.storeName,
17
+ clientId: store.clientId,
18
+ clientName: client.clientName,
19
+ };
20
+ next();
21
+ } catch ( error ) {
22
+ logger.error( { error: error, function: 'validateDetails' } );
23
+ return res.sendError( error, 500 );
24
+ }
25
+ };
26
+
27
+ export async function validateTicket( req, res, next ) {
28
+ try {
29
+ let Ticket = await dataModel.tangoTicket.findOne(
30
+ {
31
+ 'basicDetails.storeId': req.body.basicDetails.storeId,
32
+ 'issueDate': new Date( req.body.Date ),
33
+ },
34
+ );
35
+ if ( Ticket ) {
36
+ return res.sendSuccess( 'Ticket Already Exists for the day' );
37
+ }
38
+ next();
39
+ } catch ( error ) {
40
+ logger.error( { error: error, function: 'validateTicket' } );
41
+ return res.sendError( error, 500 );
42
+ }
43
+ };
@@ -1,12 +1,12 @@
1
1
 
2
2
  import express from 'express';
3
+ import { validateDetails, validateTicket } from '../middleware/infra.middleware.js';
4
+ import { createTicket, updateTicket } from '../controllers/infra.controllers.js';
3
5
 
4
6
 
5
7
  export const infraRouter = express.Router();
6
8
 
7
- infraRouter.get( '/', ( req, res ) => {
8
-
9
-
10
- } );
9
+ infraRouter.post( '/createTicket', validateDetails, validateTicket, createTicket );
10
+ infraRouter.post( '/updateTicket', updateTicket );
11
11
 
12
12
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  import express from 'express';
3
- import { migrateClient, migrateStores, basicList, setTicketTime, downStoresList } from '../controllers/internalInfra.controller.js';
3
+ import { migrateClient, migrateStores, basicList, setTicketTime, downStoresList, openTicketList } from '../controllers/internalInfra.controller.js';
4
4
 
5
5
  export const internalInfraRouter = express.Router();
6
6
 
@@ -9,5 +9,6 @@ internalInfraRouter.get( '/migrateStores', migrateStores );
9
9
  internalInfraRouter.get( '/basicList', basicList );
10
10
  internalInfraRouter.post( '/setTicketTime', setTicketTime );
11
11
  internalInfraRouter.post( '/downStoresList', downStoresList );
12
+ internalInfraRouter.get( '/openTicketList', openTicketList );
12
13
 
13
14