tango-app-api-store-builder 1.0.3-alpha → 1.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/data/Bitz_Final_Store_List_28.08.25.xlsx +0 -0
- package/data/Coastline 3.0 Tango.xlsx +0 -0
- package/data/Fixture capacity.xlsx +0 -0
- package/data/JJ_OD New Launch_Tango.xlsx +0 -0
- package/data/LKST 98 - Inventory Analysis.xlsx +0 -0
- package/data/OE_Vs_NON_OE_UPDATED.xlsx +0 -0
- package/data/Sale, Non sale stores.xlsx +0 -0
- package/data/Updated IVM New Fixture Flow-v8.xlsx +0 -0
- package/data/VM_logic.xlsx +0 -0
- package/data/euro_center_stores_tentpole.xls +0 -0
- package/data/ivmLogic.json +6058 -0
- package/data/logs.json +3 -0
- package/data/missing_stores.json +3 -0
- package/data/response.json +2119 -0
- package/index.js +7 -1
- package/package.json +15 -4
- package/src/controllers/fixtureTemplate.controller.js +1767 -0
- package/src/controllers/managePlano.controller.js +1986 -0
- package/src/controllers/planoLibrary.controller.js +1487 -0
- package/src/controllers/script.controller.js +14680 -0
- package/src/controllers/storeBuilder.controller.js +7353 -15
- package/src/controllers/task.controller.js +1149 -0
- package/src/dtos/validation.dtos.js +277 -1
- package/src/routes/fixtureTemplate.routes.js +30 -0
- package/src/routes/managePlano.routes.js +29 -0
- package/src/routes/planoLibrary.routes.js +42 -0
- package/src/routes/script.routes.js +44 -0
- package/src/routes/storeBuilder.routes.js +55 -5
- package/src/routes/task.routes.js +20 -0
- package/src/service/assignService.service.js +11 -0
- package/src/service/checklist.service.js +7 -0
- package/src/service/fixtureConfig.service.js +52 -0
- package/src/service/fixtureConfigDuplicate.service.js +52 -0
- package/src/service/fixtureShelf.service.js +53 -0
- package/src/service/fixtureShelfDuplicate.service.js +53 -0
- package/src/service/planoCompliance.service.js +33 -0
- package/src/service/planoDuplicateModel.service.js +41 -0
- package/src/service/planoGlobalComment.service.js +25 -0
- package/src/service/planoLibrary.service.js +45 -0
- package/src/service/planoLibraryDuplicate.service.js +45 -0
- package/src/service/planoMapping.service.js +44 -0
- package/src/service/planoMappingDuplicate.service.js +44 -0
- package/src/service/planoProduct.service.js +42 -0
- package/src/service/planoProductDuplicate.service.js +42 -0
- package/src/service/planoQrConversionRequest.service.js +32 -0
- package/src/service/planoRevision.service.js +15 -0
- package/src/service/planoStaticData.service.js +11 -0
- package/src/service/planoTask.service.js +39 -0
- package/src/service/planoVm.service.js +49 -0
- package/src/service/planoVmDuplicate.service.js +49 -0
- package/src/service/planogram.service.js +8 -0
- package/src/service/planoproductCategory.service.js +47 -0
- package/src/service/processedTaskservice.js +29 -0
- package/src/service/processedchecklist.service.js +17 -0
- package/src/service/storeBuilder.service.js +20 -0
- package/src/service/storeBuilderDuplicate.service.js +53 -0
- package/src/service/storeFixture.service.js +83 -0
- package/src/service/storeFixtureDuplicate.service.js +69 -0
- package/src/service/task.service.js +6 -0
- package/src/service/templateLog.service.js +10 -0
- package/src/service/user.service.js +14 -0
- package/src/service/vmType.service.js +33 -0
|
@@ -45,13 +45,27 @@ export const updateFloor = {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export const storeListSchema = joi.object( {
|
|
48
|
-
id: joi.array().items( joi.any() ).min( 1 ).
|
|
48
|
+
id: joi.array().items( joi.any() ).min( 1 ).optional(),
|
|
49
|
+
planoId: joi.string().optional(),
|
|
50
|
+
floorId: joi.string().optional(),
|
|
51
|
+
treeView: joi.boolean().optional(),
|
|
49
52
|
} );
|
|
50
53
|
|
|
51
54
|
export const storeList = {
|
|
52
55
|
body: storeListSchema,
|
|
53
56
|
};
|
|
54
57
|
|
|
58
|
+
export const fixtureShelfProductSchema = joi.object( {
|
|
59
|
+
fixtureId: joi.string().required(),
|
|
60
|
+
floorId: joi.string().required(),
|
|
61
|
+
planoId: joi.string().required(),
|
|
62
|
+
compliance: joi.boolean().optional(),
|
|
63
|
+
} );
|
|
64
|
+
|
|
65
|
+
export const fixtureShelfProduct = {
|
|
66
|
+
body: fixtureShelfProductSchema,
|
|
67
|
+
};
|
|
68
|
+
|
|
55
69
|
export const storeDetailSchema = joi.object( {
|
|
56
70
|
storeId: joi.string().required(),
|
|
57
71
|
clientId: joi.string().required(),
|
|
@@ -79,4 +93,266 @@ export const updateStatus = {
|
|
|
79
93
|
body: updateStatusSchema,
|
|
80
94
|
};
|
|
81
95
|
|
|
96
|
+
export const createFixtureSchema = joi.object( {
|
|
97
|
+
fixtureCategory: joi.string().required(),
|
|
98
|
+
fixtureType: joi.string().required(),
|
|
99
|
+
clientId: joi.string().required(),
|
|
100
|
+
} );
|
|
101
|
+
|
|
102
|
+
export const createFixture = {
|
|
103
|
+
body: createFixtureSchema,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const updateFixtureSchema = joi.object( {
|
|
107
|
+
fixtureWidth: joi.object().optional(),
|
|
108
|
+
fixtureHeight: joi.object().optional(),
|
|
109
|
+
fixtureCategory: joi.string().optional(),
|
|
110
|
+
fixtureLength: joi.object().optional(),
|
|
111
|
+
header: joi.object().optional(),
|
|
112
|
+
footer: joi.object().optional(),
|
|
113
|
+
shelfConfig: joi.array().optional(),
|
|
114
|
+
status: joi.string().required(),
|
|
115
|
+
fixtureCapacity: joi.number().required(),
|
|
116
|
+
isBodyEnabled: joi.boolean().required(),
|
|
117
|
+
clientId: joi.string().required(),
|
|
118
|
+
} );
|
|
119
|
+
|
|
120
|
+
export const fixtureIdSchema = joi.object( {
|
|
121
|
+
fixtureId: joi.string().required(),
|
|
122
|
+
} );
|
|
123
|
+
|
|
124
|
+
export const fixtureId ={
|
|
125
|
+
query: fixtureIdSchema,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export const bodyFixtureId = {
|
|
129
|
+
body: fixtureIdSchema,
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export const updateFixture = {
|
|
133
|
+
body: updateFixtureSchema,
|
|
134
|
+
params: fixtureIdSchema,
|
|
135
|
+
};
|
|
136
|
+
export const fixtureVMListSchema = joi.object( {
|
|
137
|
+
clientId: joi.string().required(),
|
|
138
|
+
limit: joi.number().required(),
|
|
139
|
+
offset: joi.number().required(),
|
|
140
|
+
sortColumnName: joi.string().required().allow( '' ),
|
|
141
|
+
sortBy: joi.number().required().allow( '' ),
|
|
142
|
+
searchValue: joi.string().required().allow( '' ),
|
|
143
|
+
filter: joi.object( {
|
|
144
|
+
status: joi.array().items( joi.any() ).min( 0 ),
|
|
145
|
+
type: joi.array().items( joi.any() ).min( 0 ),
|
|
146
|
+
size: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
147
|
+
brand: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
148
|
+
category: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
149
|
+
subCategory: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
150
|
+
} ).required(),
|
|
151
|
+
export: joi.boolean().required(),
|
|
152
|
+
emptyDownload: joi.boolean().required(),
|
|
153
|
+
} );
|
|
154
|
+
|
|
155
|
+
export const fixtureList = {
|
|
156
|
+
body: fixtureVMListSchema,
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export const fixtureChildListSchema = joi.object( {
|
|
160
|
+
clientId: joi.string().required(),
|
|
161
|
+
limit: joi.number().required(),
|
|
162
|
+
offset: joi.number().required(),
|
|
163
|
+
sortColumnName: joi.string().required().allow( '' ),
|
|
164
|
+
sortBy: joi.number().required().allow( '' ),
|
|
165
|
+
searchValue: joi.string().required().allow( '' ),
|
|
166
|
+
masterTemplateId: joi.string().required(),
|
|
167
|
+
// filter: joi.object( {
|
|
168
|
+
// status: joi.array().items( joi.any() ).min( 0 ),
|
|
169
|
+
// type: joi.array().items( joi.any() ).min( 0 ),
|
|
170
|
+
// size: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
171
|
+
// brand: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
172
|
+
// category: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
173
|
+
// subCategory: joi.array().items( joi.any() ).min( 0 ).optional(),
|
|
174
|
+
// } ).required(),
|
|
175
|
+
// export: joi.boolean().required(),
|
|
176
|
+
// emptyDownload: joi.boolean().required(),
|
|
177
|
+
} );
|
|
178
|
+
|
|
179
|
+
export const fixtureChildList = {
|
|
180
|
+
body: fixtureChildListSchema,
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
export const addVmTypeSchema = joi.object( {
|
|
184
|
+
clientId: joi.string().required(),
|
|
185
|
+
vmData: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
186
|
+
} );
|
|
187
|
+
|
|
188
|
+
export const addVmType = {
|
|
189
|
+
body: addVmTypeSchema,
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
export const getClientSchema = joi.object( {
|
|
193
|
+
clientId: joi.string().required(),
|
|
194
|
+
} );
|
|
195
|
+
|
|
196
|
+
export const getClient = {
|
|
197
|
+
query: getClientSchema,
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
export const brandSchema = joi.object( {
|
|
201
|
+
clientId: joi.string().required(),
|
|
202
|
+
export: joi.boolean().optional(),
|
|
203
|
+
emptyDownload: joi.boolean().optional(),
|
|
204
|
+
} );
|
|
205
|
+
|
|
206
|
+
export const brandDetails ={
|
|
207
|
+
body: brandSchema,
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
export const deleteVMTypeImageSchema = joi.object( {
|
|
211
|
+
vmId: joi.string().required(),
|
|
212
|
+
index: joi.number().required(),
|
|
213
|
+
} );
|
|
214
|
+
|
|
215
|
+
export const deleteVMTypeImage = {
|
|
216
|
+
body: getClientSchema,
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export const updateTaskConfigSchema = joi.object( {
|
|
220
|
+
clientId: joi.string().required(),
|
|
221
|
+
dueDay: joi.number().required(),
|
|
222
|
+
dueTime: joi.string().required(),
|
|
223
|
+
allowedStoreLocation: joi.boolean().required(),
|
|
224
|
+
} );
|
|
225
|
+
|
|
226
|
+
export const updateTaskConfig = {
|
|
227
|
+
body: updateTaskConfigSchema,
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const uploadBrandListSchema = joi.object( {
|
|
231
|
+
clientId: joi.string().required(),
|
|
232
|
+
brandData: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
233
|
+
brandUsedList: joi.array().items( joi.any() ).min( 0 ),
|
|
234
|
+
} );
|
|
235
|
+
|
|
236
|
+
export const uploadBrandList = {
|
|
237
|
+
body: uploadBrandListSchema,
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export const fixtureBulkUploadSchema = joi.object( {
|
|
241
|
+
clientId: joi.string().required(),
|
|
242
|
+
fixtureData: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
243
|
+
newFixtureStatus: joi.string().optional(),
|
|
244
|
+
updateFixtureStatus: joi.string().optional(),
|
|
245
|
+
deleteFixtureList: joi.array().items( joi.any() ).min( 0 ),
|
|
246
|
+
} );
|
|
247
|
+
|
|
248
|
+
export const fixtureBulkUpload = {
|
|
249
|
+
body: fixtureBulkUploadSchema,
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
export const addUpdateBrandSchema = joi.object( {
|
|
253
|
+
clientId: joi.string().required(),
|
|
254
|
+
brandUsedList: joi.array().items( joi.any() ).min( 0 ).required(),
|
|
255
|
+
brandData: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
256
|
+
} );
|
|
257
|
+
|
|
258
|
+
export const addUpdateBrand = {
|
|
259
|
+
body: addUpdateBrandSchema,
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export const getVmDetailsSchema = joi.object( {
|
|
263
|
+
vmId: joi.string().required(),
|
|
264
|
+
} );
|
|
265
|
+
|
|
266
|
+
export const getVmDetails = {
|
|
267
|
+
query: getVmDetailsSchema,
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
export const deleteVmLibSchema = joi.object( {
|
|
271
|
+
vmId: joi.string().required(),
|
|
272
|
+
} );
|
|
273
|
+
|
|
274
|
+
export const deleteVmLib = {
|
|
275
|
+
body: deleteVmLibSchema,
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
export const addUpdateVmSchema = joi.object( {
|
|
279
|
+
clientId: joi.string().required(),
|
|
280
|
+
vmName: joi.string().required(),
|
|
281
|
+
vmType: joi.string().required(),
|
|
282
|
+
vmBrand: joi.string().required(),
|
|
283
|
+
vmSubBrand: joi.string().optional().allow( '' ),
|
|
284
|
+
vmCategory: joi.string().optional().allow( '' ),
|
|
285
|
+
vmSubCategory: joi.string().optional().allow( '' ),
|
|
286
|
+
vmHeight: joi.object( {
|
|
287
|
+
value: joi.number().required(),
|
|
288
|
+
unit: joi.string().required(),
|
|
289
|
+
} ).required(),
|
|
290
|
+
vmWidth: joi.object( {
|
|
291
|
+
value: joi.number().required(),
|
|
292
|
+
unit: joi.string().required(),
|
|
293
|
+
} ).required(),
|
|
294
|
+
vmImageUrl: joi.string().optional(),
|
|
295
|
+
isDoubleSided: joi.boolean().required(),
|
|
296
|
+
status: joi.string().required(),
|
|
297
|
+
_id: joi.string().optional(),
|
|
298
|
+
} );
|
|
299
|
+
|
|
300
|
+
export const addUpdateVm = {
|
|
301
|
+
body: addUpdateVmSchema,
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
export const vmBulkUploadSchema = joi.object( {
|
|
305
|
+
clientId: joi.string().required(),
|
|
306
|
+
vmData: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
307
|
+
newVmStatus: joi.string().required(),
|
|
308
|
+
updateVmStatus: joi.string().required(),
|
|
309
|
+
deleteVmList: joi.array().required(),
|
|
310
|
+
} );
|
|
311
|
+
|
|
312
|
+
export const vmBulkUpload = {
|
|
313
|
+
body: vmBulkUploadSchema,
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
export const createTemplateSchema = joi.object( {
|
|
317
|
+
clientId: joi.string().required(),
|
|
318
|
+
fixtureLibraryId: joi.string().required(),
|
|
319
|
+
templateType: joi.string().optional(),
|
|
320
|
+
} );
|
|
321
|
+
|
|
322
|
+
export const createTemplate = {
|
|
323
|
+
body: createTemplateSchema,
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
export const templateIdSchema = joi.object( {
|
|
327
|
+
templateId: joi.string().required(),
|
|
328
|
+
} );
|
|
329
|
+
|
|
330
|
+
export const templateId = {
|
|
331
|
+
body: templateIdSchema,
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
export const queryTemplateId = {
|
|
335
|
+
query: templateIdSchema,
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
export const updateFixtureTaskSchema = joi.object( {
|
|
339
|
+
endDate: joi.string().required(),
|
|
340
|
+
clientId: joi.string().required(),
|
|
341
|
+
storeList: joi.array().items( joi.any() ).min( 1 ).required(),
|
|
342
|
+
endTime: joi.string().required(),
|
|
343
|
+
geoFencing: joi.boolean().required(),
|
|
344
|
+
} );
|
|
345
|
+
|
|
346
|
+
export const updateFixtureTask = {
|
|
347
|
+
body: updateFixtureTaskSchema,
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
export const templateTreeListSchema = joi.object( {
|
|
351
|
+
clientId: joi.string().optional(),
|
|
352
|
+
masterId: joi.string().optional(),
|
|
353
|
+
} );
|
|
354
|
+
|
|
355
|
+
export const templateTreeList = {
|
|
356
|
+
query: templateTreeListSchema,
|
|
357
|
+
};
|
|
82
358
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { validate } from 'tango-app-api-middleware';
|
|
3
|
+
import * as fixtureTemplateController from '../controllers/fixtureTemplate.controller.js';
|
|
4
|
+
import * as validateDtos from '../dtos/validation.dtos.js';
|
|
5
|
+
|
|
6
|
+
import { isAllowedSessionHandler } from 'tango-app-api-middleware';
|
|
7
|
+
|
|
8
|
+
export const fixtureTemplateRouter = express.Router();
|
|
9
|
+
|
|
10
|
+
fixtureTemplateRouter
|
|
11
|
+
.post('/createTemplate', isAllowedSessionHandler, validate(validateDtos.createTemplate), fixtureTemplateController.createTemplate)
|
|
12
|
+
.post('/updateTemplate/:templateId', isAllowedSessionHandler, fixtureTemplateController.updateTemplate)
|
|
13
|
+
.post('/deleteTemplate', isAllowedSessionHandler, validate(validateDtos.templateId), fixtureTemplateController.deleteTemplate)
|
|
14
|
+
.post('/duplicateTemplate', isAllowedSessionHandler, validate(validateDtos.templateId), fixtureTemplateController.duplicateTemplate)
|
|
15
|
+
.post('/getTemplateList', isAllowedSessionHandler, validate(validateDtos.fixtureVMListSchema), fixtureTemplateController.getTemplateList)
|
|
16
|
+
.get('/getTemplateDetails', isAllowedSessionHandler, validate(validateDtos.queryTemplateId), fixtureTemplateController.getTemplateDetails)
|
|
17
|
+
.post('/updateFixtureTask', isAllowedSessionHandler, validate(validateDtos.updateFixtureTask), fixtureTemplateController.updateFixtureTask)
|
|
18
|
+
.post('/getAllTemplates', isAllowedSessionHandler, fixtureTemplateController.getAllTemplates)
|
|
19
|
+
.post('/assigedTemplate', isAllowedSessionHandler, fixtureTemplateController.assigedTemplate)
|
|
20
|
+
.post('/TemplateStoresList', isAllowedSessionHandler, fixtureTemplateController.TemplateStoresList)
|
|
21
|
+
.post('/replaceFixtureDetails', isAllowedSessionHandler, fixtureTemplateController.replaceFixtureDetails)
|
|
22
|
+
.get('/getTemplate', isAllowedSessionHandler, validate(validateDtos.queryTemplateId), fixtureTemplateController.getFixtureTemplate);
|
|
23
|
+
|
|
24
|
+
fixtureTemplateRouter
|
|
25
|
+
.post('/masterTemplateList', isAllowedSessionHandler, validate(validateDtos.fixtureVMListSchema), fixtureTemplateController.getMasterList)
|
|
26
|
+
.post('/templateChildList', isAllowedSessionHandler, validate(validateDtos.fixtureChildListSchema), fixtureTemplateController.getChildList)
|
|
27
|
+
.get('/templateTreeList', isAllowedSessionHandler, validate(validateDtos.templateTreeListSchema), fixtureTemplateController.getTreeList)
|
|
28
|
+
.get('/templateVersionList', isAllowedSessionHandler, fixtureTemplateController.templateVersionList)
|
|
29
|
+
.post('/templateAssignList', isAllowedSessionHandler, fixtureTemplateController.getTemplateStoreList);
|
|
30
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import * as managePlanoController from '../controllers/managePlano.controller.js';
|
|
3
|
+
|
|
4
|
+
import { isAllowedSessionHandler } from 'tango-app-api-middleware';
|
|
5
|
+
|
|
6
|
+
export const managePlanoRouter = express.Router();
|
|
7
|
+
|
|
8
|
+
managePlanoRouter
|
|
9
|
+
.post('/updateStorePlano', isAllowedSessionHandler, managePlanoController.updateStorePlano)
|
|
10
|
+
.post('/getplanoFeedback', isAllowedSessionHandler, managePlanoController.getplanoFeedback)
|
|
11
|
+
.post('/getplanoFeedbackv1', isAllowedSessionHandler, managePlanoController.getplanoFeedbackv1)
|
|
12
|
+
.post('/getStoreFixturesfeedback', isAllowedSessionHandler, managePlanoController.getStoreFixturesfeedback)
|
|
13
|
+
.get('/fixtureList', isAllowedSessionHandler, managePlanoController.fixtureList)
|
|
14
|
+
.get('/templateList', isAllowedSessionHandler, managePlanoController.templateList)
|
|
15
|
+
.get('/fixtureBrandsList', isAllowedSessionHandler, managePlanoController.fixtureBrandsList)
|
|
16
|
+
.get('/fixtureVMList', isAllowedSessionHandler, managePlanoController.fixtureVMList)
|
|
17
|
+
.get('/fixtureVMListv1', isAllowedSessionHandler, managePlanoController.fixtureVMListv1)
|
|
18
|
+
.post('/updateFixtureStatus', isAllowedSessionHandler, managePlanoController.updateFixtureStatus)
|
|
19
|
+
.post('/updateApprovalStatus', isAllowedSessionHandler, managePlanoController.updateApprovalStatus)
|
|
20
|
+
.post('/updateStoreFixture', isAllowedSessionHandler, managePlanoController.updateStoreFixture)
|
|
21
|
+
.post('/updateredostatus', isAllowedSessionHandler, managePlanoController.updateredostatus)
|
|
22
|
+
.post('/updateGlobalComment', isAllowedSessionHandler, managePlanoController.updateGlobalComment)
|
|
23
|
+
.post('/getGlobalComment', isAllowedSessionHandler, managePlanoController.getGlobalComment)
|
|
24
|
+
.post('/createRevision', isAllowedSessionHandler, managePlanoController.createPlanoRevision)
|
|
25
|
+
.post('/getRevisions', isAllowedSessionHandler, managePlanoController.getAllPlanoRevisions)
|
|
26
|
+
.post('/getRevisionData', isAllowedSessionHandler, managePlanoController.getPlanoRevisionById)
|
|
27
|
+
.post('/getRolloutFeedback', isAllowedSessionHandler, managePlanoController.getRolloutFeedback)
|
|
28
|
+
.post('/getRolloutFeedbackv2', isAllowedSessionHandler, managePlanoController.getRolloutFeedbackv2)
|
|
29
|
+
.post('/updateRolloutStatus', isAllowedSessionHandler, managePlanoController.updateRolloutStatus);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { validate, isAllowedSessionHandler } from 'tango-app-api-middleware';
|
|
3
|
+
import * as planoLibraryController from '../controllers/planoLibrary.controller.js';
|
|
4
|
+
import * as validateDtos from '../dtos/validation.dtos.js';
|
|
5
|
+
|
|
6
|
+
export const planoLibraryRouter = express.Router();
|
|
7
|
+
|
|
8
|
+
planoLibraryRouter
|
|
9
|
+
.post('/fixtureBulkUpload', isAllowedSessionHandler, validate(validateDtos.fixtureBulkUpload), planoLibraryController.fixtureBulkUpload)
|
|
10
|
+
.post('/createFixture', isAllowedSessionHandler, validate(validateDtos.createFixture), planoLibraryController.createFixture)
|
|
11
|
+
.post('/updateFixture/:fixtureId', isAllowedSessionHandler, validate(validateDtos.updateFixture), planoLibraryController.updateFixture)
|
|
12
|
+
.get('/fixtureDetails', isAllowedSessionHandler, validate(validateDtos.fixtureId), planoLibraryController.getFixture)
|
|
13
|
+
.post('/fixtureList', isAllowedSessionHandler, validate(validateDtos.fixtureVMListSchema), planoLibraryController.FixtureLibraryList)
|
|
14
|
+
.post('/duplicateFixture', isAllowedSessionHandler, validate(validateDtos.bodyFixtureId), planoLibraryController.duplicateFixture)
|
|
15
|
+
.post('/deleteFixture', isAllowedSessionHandler, validate(validateDtos.bodyFixtureId), planoLibraryController.deleteFixture)
|
|
16
|
+
.get('/fixtureSizeList', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.getFixLibWidth)
|
|
17
|
+
.get('/fixtureNameList', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.fixtureNameList)
|
|
18
|
+
.get('/fixtureLibNameList', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.fixtureLibNameList);
|
|
19
|
+
|
|
20
|
+
planoLibraryRouter
|
|
21
|
+
.post('/addVmType', isAllowedSessionHandler, validate(validateDtos.addVmType), planoLibraryController.addVmType)
|
|
22
|
+
.post('/uploadVmtypeImage/:vmId', isAllowedSessionHandler, planoLibraryController.uploadVmImage)
|
|
23
|
+
.post('/deleteVmType', isAllowedSessionHandler, planoLibraryController.deleteVmType)
|
|
24
|
+
.get('/getVmTypeList', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.getVmTypeList)
|
|
25
|
+
.post('/deleteVmTypeImage', isAllowedSessionHandler, validate(validateDtos.deleteVMTypeImage), planoLibraryController.deletevmTypeImage);
|
|
26
|
+
|
|
27
|
+
planoLibraryRouter
|
|
28
|
+
.post('/getBrandList', isAllowedSessionHandler, validate(validateDtos.brandDetails), planoLibraryController.getBrandList)
|
|
29
|
+
.post('/addUpdateBrand', isAllowedSessionHandler, validate(validateDtos.addUpdateBrand), planoLibraryController.addUpdateBrandList)
|
|
30
|
+
.post('/uploadBrandList', isAllowedSessionHandler, validate(validateDtos.uploadBrandList), planoLibraryController.uploadBrandList)
|
|
31
|
+
.post('/updateTaskconfig', isAllowedSessionHandler, validate(validateDtos.updateTaskConfig), planoLibraryController.updateTaskConfig)
|
|
32
|
+
.get('/getTaskConfig', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.getTaskConfig);
|
|
33
|
+
|
|
34
|
+
planoLibraryRouter
|
|
35
|
+
.post('/addUpdateVm', isAllowedSessionHandler, validate(validateDtos.addUpdateVm), planoLibraryController.addUpdateVm)
|
|
36
|
+
.post('/getVmLibList', isAllowedSessionHandler, validate(validateDtos.fixtureVMListSchema), planoLibraryController.getVmLibList)
|
|
37
|
+
.post('/duplicateVmLib', isAllowedSessionHandler, validate(validateDtos.deleteVmLib), planoLibraryController.duplicateVmLib)
|
|
38
|
+
.post('/deleteVmLib', isAllowedSessionHandler, validate(validateDtos.deleteVmLib), planoLibraryController.deleteVmLibrary)
|
|
39
|
+
.get('/getVmDetails', isAllowedSessionHandler, validate(validateDtos.getVmDetails), planoLibraryController.getVmDetails)
|
|
40
|
+
.post('/vmBulkUpload', isAllowedSessionHandler, validate(validateDtos.vmBulkUpload), planoLibraryController.vmBulkUpload)
|
|
41
|
+
.get('/vmNameList', isAllowedSessionHandler, validate(validateDtos.getClient), planoLibraryController.vmNameList);
|
|
42
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
|
|
3
|
+
import * as scriptController from '../controllers/script.controller.js';
|
|
4
|
+
import { isAllowedSessionHandler } from 'tango-app-api-middleware';
|
|
5
|
+
|
|
6
|
+
export const scriptRouter = express.Router();
|
|
7
|
+
|
|
8
|
+
scriptRouter
|
|
9
|
+
.post( '/getUniqueStoresFromExcel', scriptController.getStoreNames )
|
|
10
|
+
.post( '/bilkInsertFixtureConfig', scriptController.createFixtureConfig )
|
|
11
|
+
.post( '/bulkInsertPlanoData', scriptController.createPlano )
|
|
12
|
+
.post( '/bulkIinsertFloorData', scriptController.createFloors )
|
|
13
|
+
.post( '/bulkIinsertVmTemplateData', scriptController.createVmData )
|
|
14
|
+
.post( '/bulkIinsertFixturesShelvesVmsData', scriptController.createFixturesShelves )
|
|
15
|
+
.post( '/updateFixturesShelvesVms', scriptController.updateFixturesShelves )
|
|
16
|
+
.post( '/lk98lK1993Update', scriptController.lk98lK1993Update )
|
|
17
|
+
.post( '/updateinventory', scriptController.updateInventory )
|
|
18
|
+
.post( '/updateRfidProduct', scriptController.updateRfidProduct )
|
|
19
|
+
.post( '/updateRfidProduct2', scriptController.updateRfidProduct2 )
|
|
20
|
+
.post( '/getProdTaskData', scriptController.getProdTaskData )
|
|
21
|
+
.post( '/updateLayoutFeedback', scriptController.updatelayoutFeedback )
|
|
22
|
+
.post( '/updateFixtureFeedback', scriptController.updateFixtureFeedback )
|
|
23
|
+
.post( '/getFileNames', scriptController.extractZipFileNames )
|
|
24
|
+
.post( '/getVmTaskData', scriptController.getVmTaskData )
|
|
25
|
+
.post( '/updateVmData', scriptController.updateVmData )
|
|
26
|
+
.post( '/createCrestPlanogram', scriptController.createCrestPlanogram )
|
|
27
|
+
.post( '/updateCrestPlanogram', scriptController.updateCrestPlanogram )
|
|
28
|
+
.post( '/updatelayout', scriptController.updatelayout )
|
|
29
|
+
.post( '/updateCrestVms', scriptController.updateCrestVms )
|
|
30
|
+
.post( '/downloadPlanoImages', scriptController.downloadPlanoImage )
|
|
31
|
+
.post( '/getVideoUrls', scriptController.getVideoLinks )
|
|
32
|
+
.post( '/updateExcelPlanogram', scriptController.updateExcelPlanogram )
|
|
33
|
+
.post( '/recorrectTaskData', scriptController.recorrectTaskData )
|
|
34
|
+
.post( '/migrateCrest', scriptController.migrateCrestv1 )
|
|
35
|
+
.post( '/updatePlanoMappings', scriptController.updatePlanoMappings )
|
|
36
|
+
.post( '/readExcel', scriptController.readExcel )
|
|
37
|
+
.post( '/migrateOvmToIvm', scriptController.migrateOvmToIvm )
|
|
38
|
+
// .post( '/migrateOvmToOvm', scriptController.migrateOvmToOvm )
|
|
39
|
+
.post( '/groupFixture', scriptController.groupFixture )
|
|
40
|
+
.post( '/productMappings', scriptController.productMappings )
|
|
41
|
+
.post( '/complianceFromMappings', scriptController.createComplianceFromMappings )
|
|
42
|
+
.get( '/getAllPlanoIdsM', scriptController.getAllPlanoIds )
|
|
43
|
+
.post( '/planoAccess', scriptController.planoAccess )
|
|
44
|
+
;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
-
import { isAllowedSessionHandler,
|
|
3
|
-
import * as storeBuilderController from '../controllers/storeBuilder.controller.js';
|
|
2
|
+
import { validate, isAllowedSessionHandler, getAssinedStore } from 'tango-app-api-middleware';
|
|
4
3
|
import * as validateDtos from '../dtos/validation.dtos.js';
|
|
4
|
+
import * as storeBuilderController from '../controllers/storeBuilder.controller.js';
|
|
5
|
+
// import * as scriptController from '../controllers/script.controller.js';
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
export const storeBuilderRouter = express.Router();
|
|
7
9
|
|
|
@@ -12,11 +14,59 @@ storeBuilderRouter
|
|
|
12
14
|
.post( '/updateFloor', isAllowedSessionHandler, validate( validateDtos.updateFloor ), storeBuilderController.updateFloor )
|
|
13
15
|
.post( '/uploadBulkStore', isAllowedSessionHandler, storeBuilderController.uploadBulkStore )
|
|
14
16
|
.post( '/uploadFile', isAllowedSessionHandler, storeBuilderController.uploadFile )
|
|
15
|
-
.post( '/
|
|
17
|
+
// .post( '/storeLayout',isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixtures )
|
|
16
18
|
.post( '/storeDetails', isAllowedSessionHandler, validate( validateDtos.storeDetails ), storeBuilderController.getStoreDetails )
|
|
17
19
|
.delete( '/deleteStoreLayout/:id', isAllowedSessionHandler, validate( validateDtos.deleteStoreLayout ), storeBuilderController.deleteStoreLayout )
|
|
18
20
|
.post( '/removeFile', isAllowedSessionHandler, storeBuilderController.deleteFile )
|
|
19
21
|
.post( '/deleteFloor', isAllowedSessionHandler, storeBuilderController.deleteFloor )
|
|
20
|
-
.post( '/updateStatus', isAllowedSessionHandler, validate( validateDtos.updateStatus ), storeBuilderController.updateStatus )
|
|
21
|
-
|
|
22
|
+
.post( '/updateStatus', isAllowedSessionHandler, validate( validateDtos.updateStatus ), storeBuilderController.updateStatus )
|
|
23
|
+
// .post( '/FixtureShelfDetails',isAllowedSessionHandler, storeBuilderController.fixtureShelfProduct )
|
|
24
|
+
// .post( '/scan',isAllowedSessionHandler, storeBuilderController.scan )
|
|
25
|
+
.post( '/storeLayout', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeLayout )
|
|
26
|
+
.post( '/storeFixtures', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixturesv1 )
|
|
27
|
+
.post( '/FixtureShelfDetails', isAllowedSessionHandler, validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv1 )
|
|
28
|
+
.post( '/scan', isAllowedSessionHandler, storeBuilderController.scanv1 )
|
|
29
|
+
.post( '/updateMissing', isAllowedSessionHandler, storeBuilderController.updateMissing )
|
|
30
|
+
.post( '/bulkFixtureUpload', isAllowedSessionHandler, storeBuilderController.bulkFixtureUpload )
|
|
31
|
+
.post( '/uploadImage', isAllowedSessionHandler, storeBuilderController.uploadImage )
|
|
32
|
+
.post( '/storeFixturesTask', isAllowedSessionHandler, storeBuilderController.storeFixturesTask )
|
|
33
|
+
.post( '/qrFileUpload', isAllowedSessionHandler, storeBuilderController.qrFileUpload )
|
|
34
|
+
.post( '/updateQrCvProcessRequest', isAllowedSessionHandler, storeBuilderController.updateQrCvProcessRequest )
|
|
35
|
+
.post( '/getQrCvProcessRequest', isAllowedSessionHandler, storeBuilderController.getQrCvProcessRequest )
|
|
36
|
+
.post( '/fixtureQrUpdate', isAllowedSessionHandler, storeBuilderController.fixtureQrUpdate )
|
|
37
|
+
.post( '/fixtureQrUpdatev1', isAllowedSessionHandler, storeBuilderController.fixtureQrUpdatev1 )
|
|
38
|
+
.post( '/updateDeatailedDistance', isAllowedSessionHandler, storeBuilderController.updateDetailedDistance )
|
|
39
|
+
.post( '/upsertFixture', isAllowedSessionHandler, storeBuilderController.upsertFixtures )
|
|
40
|
+
.post( '/getshelfSections', isAllowedSessionHandler, storeBuilderController.getShelfSections )
|
|
41
|
+
.post( '/getFixtureTypes', isAllowedSessionHandler, storeBuilderController.getFixtureTypes )
|
|
42
|
+
.post( '/getFixtureLengths', isAllowedSessionHandler, storeBuilderController.getFixtureLengths )
|
|
43
|
+
.post( '/getFixtureBrands', isAllowedSessionHandler, storeBuilderController.getFixtureBrands )
|
|
44
|
+
.post( '/checkPlanoExist', isAllowedSessionHandler, storeBuilderController.checkPlanoExist )
|
|
45
|
+
.post( '/storeLayoutElements', isAllowedSessionHandler, storeBuilderController.storeLayoutElements )
|
|
46
|
+
.post( '/qrScan', isAllowedSessionHandler, storeBuilderController.qrScan )
|
|
47
|
+
.post( '/storeFixturesV2', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixturesv2 )
|
|
48
|
+
// .post( '/fixtureShelfDetailsv2', isAllowedSessionHandler, validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv2 )
|
|
49
|
+
// .post( '/storeFixturesTaskv2', isAllowedSessionHandler, storeBuilderController.storeFixturesTaskv2 )
|
|
50
|
+
.post( '/qrScan1', isAllowedSessionHandler, storeBuilderController.qrScan1 )
|
|
51
|
+
// .post( '/storeFixturesV2', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixturesv2 )
|
|
52
|
+
.post( '/storeFixturesV3', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixturesv3 )
|
|
53
|
+
.post( '/fixtureShelfDetailsv2', isAllowedSessionHandler, validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv2 )
|
|
54
|
+
.post( '/fixtureShelfDetailsv3', isAllowedSessionHandler, validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv3 )
|
|
55
|
+
.post( '/storeFixturesTaskv2', isAllowedSessionHandler, storeBuilderController.storeFixturesTaskv2 )
|
|
56
|
+
.post( '/storeFixturesTaskv3', isAllowedSessionHandler, storeBuilderController.storeFixturesTaskv3 )
|
|
57
|
+
.post( '/searchProduct', isAllowedSessionHandler, storeBuilderController.searchProduct );
|
|
22
58
|
|
|
59
|
+
storeBuilderRouter
|
|
60
|
+
.post( '/planoList', isAllowedSessionHandler, getAssinedStore, storeBuilderController.planoList )
|
|
61
|
+
.get( '/taskDetails', isAllowedSessionHandler, storeBuilderController.getTaskDetails )
|
|
62
|
+
.get( '/getPlanoUser', isAllowedSessionHandler, storeBuilderController.getPlanoUser )
|
|
63
|
+
.post( '/planoRolloutList', isAllowedSessionHandler, storeBuilderController.getRolloutDetails )
|
|
64
|
+
.get( '/getRolloutTaskDetails', isAllowedSessionHandler, storeBuilderController.getRolloutTaskDetails )
|
|
65
|
+
.get( '/getScandid', storeBuilderController.getScandid )
|
|
66
|
+
.get( '/getPlanoStoreList', isAllowedSessionHandler, storeBuilderController.getPlanoStoreList )
|
|
67
|
+
.get( '/getFixtureAIDetails', isAllowedSessionHandler, storeBuilderController.getFixtureAIDetails )
|
|
68
|
+
.post( '/updateProductMapping', storeBuilderController.updateProductMapping )
|
|
69
|
+
.post( '/calculateCompliance', isAllowedSessionHandler, storeBuilderController.calculateCompliance )
|
|
70
|
+
.post( '/getPlanogramList', isAllowedSessionHandler, storeBuilderController.getPlanogramList )
|
|
71
|
+
.post( '/updatePlanoRevison', isAllowedSessionHandler, storeBuilderController.updatePlanoRevison )
|
|
72
|
+
;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { isAllowedSessionHandler } from 'tango-app-api-middleware';
|
|
3
|
+
import * as taskController from '../controllers/task.controller.js';
|
|
4
|
+
|
|
5
|
+
export const storeBuilderTaskRouter = express.Router();
|
|
6
|
+
|
|
7
|
+
storeBuilderTaskRouter
|
|
8
|
+
.post('/createTask', isAllowedSessionHandler, taskController.createTask)
|
|
9
|
+
.post('/createPlano', isAllowedSessionHandler, taskController.createPlano)
|
|
10
|
+
.get('/taskDetails', isAllowedSessionHandler, taskController.getTaskDetails)
|
|
11
|
+
.post('/uploadImage', isAllowedSessionHandler, taskController.uploadImage)
|
|
12
|
+
.post('/updateStatus', isAllowedSessionHandler, taskController.updateStatus)
|
|
13
|
+
.post('/updateAnswers', isAllowedSessionHandler, taskController.updateAnswers)
|
|
14
|
+
.post('/updateAnswersv2', isAllowedSessionHandler, taskController.updateAnswersv2)
|
|
15
|
+
.get('/getFixtureDetails', isAllowedSessionHandler, taskController.getFixtureDetails)
|
|
16
|
+
.get('/getVmDetails', isAllowedSessionHandler, taskController.getVmDetails)
|
|
17
|
+
.post('/generateTaskExcel', isAllowedSessionHandler, taskController.generatetaskDetails)
|
|
18
|
+
.post('/getSubmitDetails', isAllowedSessionHandler, taskController.taskSubmitDetails)
|
|
19
|
+
.post('/redoTask', isAllowedSessionHandler, taskController.redoTask)
|
|
20
|
+
.post('/revokeTask', isAllowedSessionHandler, taskController.revokeTask);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import model from 'tango-api-schema';
|
|
2
|
+
|
|
3
|
+
export async function aggregate( query = [] ) {
|
|
4
|
+
return await model.checklistassignconfigModel.aggregate( query );
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export async function taskAggregate( query = [] ) {
|
|
8
|
+
return await model.taskAssignModel.aggregate( query );
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import model from 'tango-api-schema';
|
|
2
|
+
|
|
3
|
+
export async function find( query={}, field={} ) {
|
|
4
|
+
return model.fixtureConfigModel.find( query, field );
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export async function findOne( query={}, field={} ) {
|
|
8
|
+
return model.fixtureConfigModel.findOne( query, field );
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function insertMany( data = [] ) {
|
|
12
|
+
return model.fixtureConfigModel.insertMany( data );
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function aggregate( query = [] ) {
|
|
16
|
+
return model.fixtureConfigModel.aggregate( query, { collation: { locale: 'en_US', numericOrdering: true } } );
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function updateOne( query = {}, record = {} ) {
|
|
20
|
+
return model.fixtureConfigModel.updateOne( query, { $set: record } );
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function count( query = {} ) {
|
|
24
|
+
return model.fixtureConfigModel.countDocuments( query );
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export async function upsertOne( query, record ) {
|
|
28
|
+
return model.fixtureConfigModel.findOneAndUpdate(
|
|
29
|
+
query,
|
|
30
|
+
record,
|
|
31
|
+
{ upsert: true, new: true },
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export async function create( data = {} ) {
|
|
35
|
+
return model.fixtureConfigModel.create( data );
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function deleteOne( query = {} ) {
|
|
39
|
+
return model.fixtureConfigModel.deleteOne( query );
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const findAndSort = async ( query={}, field={}, sort={} ) => {
|
|
43
|
+
return await model.fixtureConfigModel.find( query, field ).sort( sort ).collation( { locale: 'en_US', numericOrdering: true } );
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export const sortAndFindOne = async ( query={}, field={}, sort={} ) => {
|
|
47
|
+
return await model.fixtureConfigModel.find( query, field ).sort( sort ).limit( 1 );
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export async function updateMany( query = {}, record = {} ) {
|
|
51
|
+
return model.fixtureConfigModel.updateMany( query, { $set: record } );
|
|
52
|
+
}
|