tango-app-api-store-builder 1.0.0-beta-77 → 1.0.0-beta-79

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-store-builder",
3
- "version": "1.0.0-beta-77",
3
+ "version": "1.0.0-beta-79",
4
4
  "description": "storeBuilder",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -2548,6 +2548,7 @@ export async function createCrestPlanogram( req, res ) {
2548
2548
  for ( let index = 0; index < leftFixtures.length; index++ ) {
2549
2549
  const fixture = leftFixtures[index];
2550
2550
  const fixtureConfig = await fixtureConfigService.findOne( { fixtureCategory: fixture.fixtureType } );
2551
+ if ( !fixtureConfig ) continue;
2551
2552
  const fixtureConfigDoc = fixtureConfig.toObject();
2552
2553
 
2553
2554
  const fixtureData = {
@@ -2650,41 +2651,37 @@ export async function createCrestPlanogram( req, res ) {
2650
2651
  const vmConfig = fixtureConfigDoc.vmConfig.filter( ( vm ) => vm.position === fixture.productZones[i].zoneName );
2651
2652
 
2652
2653
  for ( const vm of vms ) {
2653
- let vmTemplate = await planoProductService.findOne( { productName: vm.productName, fixtureConfigId: fixtureConfig._id } );
2654
- if ( !vmTemplate ) {
2655
- let configData = vmConfig[0];
2654
+ let configData = vmConfig[0];
2656
2655
 
2657
- if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2658
- configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2659
- }
2656
+ if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2657
+ configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2658
+ }
2660
2659
 
2661
- if ( vm.productName !== 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2662
- configData = vmConfig.find( ( config ) => config.vmNumber === 2 );
2663
- }
2660
+ if ( !configData ) continue;
2661
+ const insertData = {
2662
+ 'clientId': '11',
2663
+ 'productId': 'VMCR',
2664
+ 'type': 'vm',
2665
+ 'productName': vm.productName,
2666
+ 'productHeight': {
2667
+ 'value': configData.vmHeightmm,
2668
+ 'unit': 'mm',
2669
+ },
2670
+ 'productWidth': {
2671
+ 'value': configData.vmWidthmm,
2672
+ 'unit': 'mm',
2673
+ },
2674
+ 'startYPosition': configData.startShelf,
2675
+ 'endYPosition': configData.endShelf,
2676
+ 'xZone': configData.zone,
2677
+ 'fixtureConfigId': fixtureConfig._id,
2678
+ };
2664
2679
 
2665
- const insertData = {
2666
- 'clientId': '11',
2667
- 'productId': 'VMCR',
2668
- 'type': 'vm',
2669
- 'productName': vm.productName,
2670
- 'productHeight': {
2671
- 'value': configData.vmHeightmm,
2672
- 'unit': 'mm',
2673
- },
2674
- 'productWidth': {
2675
- 'value': configData.vmWidthmm,
2676
- 'unit': 'mm',
2677
- },
2678
- 'startYPosition': configData.startShelf,
2679
- 'endYPosition': configData.endShelf,
2680
- 'xZone': configData.zone,
2681
- 'fixtureConfigId': fixtureConfig._id,
2682
- };
2680
+ const vmTemplate = await planoProductService.upsertOne(
2681
+ { 'productName': vm.productName, 'fixtureConfigId': fixtureConfig._id, 'productHeight.value': configData.vmHeightmm,
2682
+ 'productWidth.value': configData.vmWidthmm, 'startYPosition': configData.startShelf, 'endYPosition': configData.endShelf, 'xZone': configData.zone },
2683
+ insertData );
2683
2684
 
2684
- vmTemplate = await planoProductService.upsertOne(
2685
- { productName: vm.productName, fixtureConfigId: fixtureConfig._id },
2686
- insertData );
2687
- }
2688
2685
 
2689
2686
  const vmData = {
2690
2687
  'clientId': layoutDoc.clientId,
@@ -2711,6 +2708,7 @@ export async function createCrestPlanogram( req, res ) {
2711
2708
  for ( let index = 0; index < backFixtures.length; index++ ) {
2712
2709
  const fixture = backFixtures[index];
2713
2710
  const fixtureConfig = await fixtureConfigService.findOne( { fixtureCategory: fixture.fixtureType } );
2711
+ if ( !fixtureConfig ) continue;
2714
2712
  const fixtureConfigDoc = fixtureConfig.toObject();
2715
2713
 
2716
2714
  const fixtureData = {
@@ -2812,41 +2810,38 @@ export async function createCrestPlanogram( req, res ) {
2812
2810
  const vmConfig = fixtureConfigDoc.vmConfig.filter( ( vm ) => vm.position === fixture.productZones[i].zoneName );
2813
2811
 
2814
2812
  for ( const vm of vms ) {
2815
- let vmTemplate = await planoProductService.findOne( { productName: vm.productName, fixtureConfigId: fixtureConfig._id } );
2816
- if ( !vmTemplate ) {
2817
- let configData = vmConfig[0];
2813
+ let configData = vmConfig[0];
2818
2814
 
2819
- if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2820
- configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2821
- }
2815
+ if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2816
+ configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2817
+ }
2822
2818
 
2823
- if ( vm.productName !== 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2824
- configData = vmConfig.find( ( config ) => config.vmNumber === 2 );
2825
- }
2826
2819
 
2827
- const insertData = {
2828
- 'clientId': '11',
2829
- 'productId': 'VMCR',
2830
- 'type': 'vm',
2831
- 'productName': vm.productName,
2832
- 'productHeight': {
2833
- 'value': configData.vmHeightmm,
2834
- 'unit': 'mm',
2835
- },
2836
- 'productWidth': {
2837
- 'value': configData.vmWidthmm,
2838
- 'unit': 'mm',
2839
- },
2840
- 'startYPosition': configData.startShelf,
2841
- 'endYPosition': configData.endShelf,
2842
- 'xZone': configData.zone,
2843
- 'fixtureConfigId': fixtureConfig._id,
2844
- };
2820
+ if ( !configData ) continue;
2821
+ const insertData = {
2822
+ 'clientId': '11',
2823
+ 'productId': 'VMCR',
2824
+ 'type': 'vm',
2825
+ 'productName': vm.productName,
2826
+ 'productHeight': {
2827
+ 'value': configData.vmHeightmm,
2828
+ 'unit': 'mm',
2829
+ },
2830
+ 'productWidth': {
2831
+ 'value': configData.vmWidthmm,
2832
+ 'unit': 'mm',
2833
+ },
2834
+ 'startYPosition': configData.startShelf,
2835
+ 'endYPosition': configData.endShelf,
2836
+ 'xZone': configData.zone,
2837
+ 'fixtureConfigId': fixtureConfig._id,
2838
+ };
2839
+
2840
+ const vmTemplate = await planoProductService.upsertOne(
2841
+ { 'productName': vm.productName, 'fixtureConfigId': fixtureConfig._id, 'productHeight.value': configData.vmHeightmm,
2842
+ 'productWidth.value': configData.vmWidthmm, 'startYPosition': configData.startShelf, 'endYPosition': configData.endShelf, 'xZone': configData.zone },
2843
+ insertData );
2845
2844
 
2846
- vmTemplate = await planoProductService.upsertOne(
2847
- { productName: vm.productName, fixtureConfigId: fixtureConfig._id },
2848
- insertData );
2849
- }
2850
2845
 
2851
2846
  const vmData = {
2852
2847
  'clientId': layoutDoc.clientId,
@@ -2873,6 +2868,7 @@ export async function createCrestPlanogram( req, res ) {
2873
2868
  for ( let index = 0; index < rightFixtures.length; index++ ) {
2874
2869
  const fixture = rightFixtures[index];
2875
2870
  const fixtureConfig = await fixtureConfigService.findOne( { fixtureCategory: fixture.fixtureType } );
2871
+ if ( !fixtureConfig ) continue;
2876
2872
  const fixtureConfigDoc = fixtureConfig.toObject();
2877
2873
 
2878
2874
  const fixtureData = {
@@ -2974,41 +2970,40 @@ export async function createCrestPlanogram( req, res ) {
2974
2970
  const vmConfig = fixtureConfigDoc.vmConfig.filter( ( vm ) => vm.position === fixture.productZones[i].zoneName );
2975
2971
 
2976
2972
  for ( const vm of vms ) {
2977
- let vmTemplate = await planoProductService.findOne( { productName: vm.productName, fixtureConfigId: fixtureConfig._id } );
2978
- if ( !vmTemplate ) {
2979
- let configData = vmConfig[0];
2973
+ let configData = vmConfig[0];
2980
2974
 
2981
- if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2982
- configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2983
- }
2984
2975
 
2985
- if ( vm.productName !== 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2986
- configData = vmConfig.find( ( config ) => config.vmNumber === 2 );
2987
- }
2976
+ if ( vm.productName === 'Creatr' && fixture.productZones[i].zoneName === 'Mid' ) {
2977
+ configData = vmConfig.find( ( config ) => config.vmNumber === 3 );
2978
+ }
2988
2979
 
2989
- const insertData = {
2990
- 'clientId': '11',
2991
- 'productId': 'VMCR',
2992
- 'type': 'vm',
2993
- 'productName': vm.productName,
2994
- 'productHeight': {
2995
- 'value': configData.vmHeightmm,
2996
- 'unit': 'mm',
2997
- },
2998
- 'productWidth': {
2999
- 'value': configData.vmWidthmm,
3000
- 'unit': 'mm',
3001
- },
3002
- 'startYPosition': configData.startShelf,
3003
- 'endYPosition': configData.endShelf,
3004
- 'xZone': configData.zone,
3005
- 'fixtureConfigId': fixtureConfig._id,
3006
- };
3007
2980
 
3008
- vmTemplate = await planoProductService.upsertOne(
3009
- { productName: vm.productName, fixtureConfigId: fixtureConfig._id },
3010
- insertData );
3011
- }
2981
+ if ( !configData ) continue;
2982
+
2983
+ const insertData = {
2984
+ 'clientId': '11',
2985
+ 'productId': 'VMCR',
2986
+ 'type': 'vm',
2987
+ 'productName': vm.productName,
2988
+ 'productHeight': {
2989
+ 'value': configData.vmHeightmm,
2990
+ 'unit': 'mm',
2991
+ },
2992
+ 'productWidth': {
2993
+ 'value': configData.vmWidthmm,
2994
+ 'unit': 'mm',
2995
+ },
2996
+ 'startYPosition': configData.startShelf,
2997
+ 'endYPosition': configData.endShelf,
2998
+ 'xZone': configData.zone,
2999
+ 'fixtureConfigId': fixtureConfig._id,
3000
+ };
3001
+
3002
+ const vmTemplate = await planoProductService.upsertOne(
3003
+ { 'productName': vm.productName, 'fixtureConfigId': fixtureConfig._id, 'productHeight.value': configData.vmHeightmm,
3004
+ 'productWidth.value': configData.vmWidthmm, 'startYPosition': configData.startShelf, 'endYPosition': configData.endShelf, 'xZone': configData.zone },
3005
+ insertData );
3006
+
3012
3007
 
3013
3008
  const vmData = {
3014
3009
  'clientId': layoutDoc.clientId,
@@ -3053,6 +3048,7 @@ export async function createCrestPlanogram( req, res ) {
3053
3048
  const detailedYPos = roundToTwo( ( detailedStartingY + rowIndex * ( constantDetailedFixtureWidth / mmToFeet ) ) );
3054
3049
 
3055
3050
  const fixtureConfig = await fixtureConfigService.findOne( { fixtureCategory: fixture.main } );
3051
+ if ( !fixtureConfig ) continue;
3056
3052
  const fixtureConfigDoc = fixtureConfig.toObject();
3057
3053
 
3058
3054
  const fixtureData = {
@@ -3148,34 +3144,33 @@ export async function createCrestPlanogram( req, res ) {
3148
3144
  const vmConfig = fixtureConfigDoc.vmConfig;
3149
3145
 
3150
3146
  if ( vm ) {
3151
- let vmTemplate1 = await planoProductService.findOne( { productName: vm.name, fixtureConfigId: fixtureConfig._id } );
3152
- if ( !vmTemplate1 ) {
3153
- const configData1 = vmConfig[0];
3147
+ const configData1 = vmConfig[0];
3154
3148
 
3155
3149
 
3156
- const insertData1 = {
3157
- 'clientId': '11',
3158
- 'productId': 'VMCR',
3159
- 'type': 'vm',
3160
- 'productName': vm.name,
3161
- 'productHeight': {
3162
- 'value': configData1.vmHeightmm,
3163
- 'unit': 'mm',
3164
- },
3165
- 'productWidth': {
3166
- 'value': configData1.vmWidthmm,
3167
- 'unit': 'mm',
3168
- },
3169
- 'startYPosition': configData1.startShelf,
3170
- 'endYPosition': configData1.endShelf,
3171
- 'xZone': configData1.zone,
3172
- 'fixtureConfigId': fixtureConfig._id,
3173
- };
3150
+ const insertData1 = {
3151
+ 'clientId': '11',
3152
+ 'productId': 'VMCR',
3153
+ 'type': 'vm',
3154
+ 'productName': vm.name,
3155
+ 'productHeight': {
3156
+ 'value': configData1.vmHeightmm,
3157
+ 'unit': 'mm',
3158
+ },
3159
+ 'productWidth': {
3160
+ 'value': configData1.vmWidthmm,
3161
+ 'unit': 'mm',
3162
+ },
3163
+ 'startYPosition': configData1.startShelf,
3164
+ 'endYPosition': configData1.endShelf,
3165
+ 'xZone': configData1.zone,
3166
+ 'fixtureConfigId': fixtureConfig._id,
3167
+ };
3168
+
3169
+ const vmTemplate1 = await planoProductService.upsertOne(
3170
+ { 'productName': vm.name, 'fixtureConfigId': fixtureConfig._id, 'productHeight.value': configData1.vmHeightmm,
3171
+ 'productWidth.value': configData1.vmWidthmm, 'startYPosition': configData1.startShelf, 'endYPosition': configData1.endShelf, 'xZone': configData1.zone },
3172
+ insertData1 );
3174
3173
 
3175
- vmTemplate1 = await planoProductService.upsertOne(
3176
- { productName: vm.productName, fixtureConfigId: fixtureConfig._id },
3177
- insertData1 );
3178
- }
3179
3174
 
3180
3175
  const vmData1 = {
3181
3176
  'clientId': layoutDoc.clientId,
@@ -3196,34 +3191,33 @@ export async function createCrestPlanogram( req, res ) {
3196
3191
  vmData1,
3197
3192
  );
3198
3193
 
3199
- let vmTemplate2 = await planoProductService.findOne( { productName: ' ', fixtureConfigId: fixtureConfig._id } );
3200
- if ( !vmTemplate2 ) {
3201
- const configData2 = vmConfig[1];
3194
+ const configData2 = vmConfig[1];
3202
3195
 
3196
+ const insertData2 = {
3197
+ 'clientId': '11',
3198
+ 'productId': 'VMCR',
3199
+ 'type': 'vm',
3200
+ 'productName': ' ',
3201
+ 'productHeight': {
3202
+ 'value': configData2.vmHeightmm,
3203
+ 'unit': 'mm',
3204
+ },
3205
+ 'productWidth': {
3206
+ 'value': configData2.vmWidthmm,
3207
+ 'unit': 'mm',
3208
+ },
3209
+ 'startYPosition': configData2.startShelf,
3210
+ 'endYPosition': configData2.endShelf,
3211
+ 'xZone': configData2.zone,
3212
+ 'fixtureConfigId': fixtureConfig._id,
3213
+ };
3203
3214
 
3204
- const insertData2 = {
3205
- 'clientId': '11',
3206
- 'productId': 'VMCR',
3207
- 'type': 'vm',
3208
- 'productName': ' ',
3209
- 'productHeight': {
3210
- 'value': configData2.vmHeightmm,
3211
- 'unit': 'mm',
3212
- },
3213
- 'productWidth': {
3214
- 'value': configData2.vmWidthmm,
3215
- 'unit': 'mm',
3216
- },
3217
- 'startYPosition': configData2.startShelf,
3218
- 'endYPosition': configData2.endShelf,
3219
- 'xZone': configData2.zone,
3220
- 'fixtureConfigId': fixtureConfig._id,
3221
- };
3222
3215
 
3223
- vmTemplate2 = await planoProductService.upsertOne(
3224
- { productName: ' ', fixtureConfigId: fixtureConfig._id },
3225
- insertData2 );
3226
- }
3216
+ const vmTemplate2 = await planoProductService.upsertOne(
3217
+ { 'productName': ' ', 'fixtureConfigId': fixtureConfig._id, 'productHeight.value': configData2.vmHeightmm,
3218
+ 'productWidth.value': configData2.vmWidthmm, 'startYPosition': configData2.startShelf, 'endYPosition': configData2.endShelf, 'xZone': configData2.zone },
3219
+ insertData2 );
3220
+
3227
3221
 
3228
3222
  const vmData2 = {
3229
3223
  'clientId': layoutDoc.clientId,
@@ -1037,6 +1037,7 @@ export async function fixtureShelfProductv1( req, res ) {
1037
1037
  };
1038
1038
 
1039
1039
  fixture.imageUrl = await signedUrl( params );
1040
+ let fixtureConfigDetails = await fixtureConfigService.findOne( { _id: fixture?.fixtureConfigId } );
1040
1041
 
1041
1042
  const currentDate = new Date( dayjs().format( 'YYYY-MM-DD' ) );
1042
1043
 
@@ -1080,7 +1081,7 @@ export async function fixtureShelfProductv1( req, res ) {
1080
1081
  if ( fixture.toObject().productResolutionLevel === 'L1' ) {
1081
1082
  const productMappings = await planoMappingService.find( { fixtureId: new mongoose.Types.ObjectId( fixtureId ), type: 'product' } );
1082
1083
  const productDetails = await getProducts( productMappings );
1083
- return res.sendSuccess( { ...fixture.toObject(), products: productDetails, vms: vmDetails, productCount: productMappings.length } );
1084
+ return res.sendSuccess( { ...fixture.toObject(), fixtureConfigLength: fixtureConfigDetails?.fixtureLength, products: productDetails, vms: vmDetails, productCount: productMappings.length } );
1084
1085
  }
1085
1086
 
1086
1087
  if ( [ 'L2', 'L4' ].includes( fixture.toObject().productResolutionLevel ) ) {
@@ -1094,7 +1095,7 @@ export async function fixtureShelfProductv1( req, res ) {
1094
1095
  return { ...shelf.toObject(), products: productDetails };
1095
1096
  } ),
1096
1097
  );
1097
- return res.sendSuccess( { ...fixture.toObject(), shelves: shelfProducts, vms: vmDetails, productCount: productCount } );
1098
+ return res.sendSuccess( { ...fixture.toObject(), fixtureConfigLength: fixtureConfigDetails?.fixtureLength, shelves: shelfProducts, vms: vmDetails, productCount: productCount } );
1098
1099
  }
1099
1100
 
1100
1101
  if ( fixture.toObject().productResolutionLevel === 'L3' ) {
@@ -1110,7 +1111,7 @@ export async function fixtureShelfProductv1( req, res ) {
1110
1111
  acc[sectionName].push( { ...shelf.toObject(), products: productDetails } );
1111
1112
  return acc;
1112
1113
  }, Promise.resolve( {} ) );
1113
- return res.sendSuccess( { ...fixture.toObject(), categories: await groupedShelves, vms: vmDetails, productCount: productCount } );
1114
+ return res.sendSuccess( { ...fixture.toObject(), fixtureConfigLength: fixtureConfigDetails?.fixtureLength, categories: await groupedShelves, vms: vmDetails, productCount: productCount } );
1114
1115
  }
1115
1116
 
1116
1117
  return res.sendError( 'Incorrect resolution level', 400 );
@@ -10,7 +10,7 @@ export const storeBuilderRouter = express.Router();
10
10
  storeBuilderRouter
11
11
  .post( '/createStoreLayout', isAllowedSessionHandler, validate( validateDtos.createBuilder ), storeBuilderController.createStoreBuilder )
12
12
  .post( '/updateStoreLayout', isAllowedSessionHandler, validate( validateDtos.updateStoreLayout ), storeBuilderController.updateStoreLayout )
13
- .post( '/storeLayoutList', validate( validateDtos.storeLayoutList ), storeBuilderController.getLayoutList )
13
+ .post( '/storeLayoutList', isAllowedSessionHandler, validate( validateDtos.storeLayoutList ), storeBuilderController.getLayoutList )
14
14
  .post( '/updateFloor', isAllowedSessionHandler, validate( validateDtos.updateFloor ), storeBuilderController.updateFloor )
15
15
  .post( '/uploadBulkStore', isAllowedSessionHandler, storeBuilderController.uploadBulkStore )
16
16
  .post( '/uploadFile', isAllowedSessionHandler, storeBuilderController.uploadFile )
@@ -23,8 +23,8 @@ storeBuilderRouter
23
23
  // .post( '/FixtureShelfDetails', storeBuilderController.fixtureShelfProduct )
24
24
  // .post( '/scan', storeBuilderController.scan )
25
25
  .post( '/storeLayout', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeLayout )
26
- .post( '/storeFixtures', validate( validateDtos.storeList ), storeBuilderController.storeFixturesv1 )
27
- .post( '/FixtureShelfDetails', validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv1 )
26
+ .post( '/storeFixtures', isAllowedSessionHandler, validate( validateDtos.storeList ), storeBuilderController.storeFixturesv1 )
27
+ .post( '/FixtureShelfDetails', isAllowedSessionHandler, validate( validateDtos.fixtureShelfProduct ), storeBuilderController.fixtureShelfProductv1 )
28
28
  .post( '/scan', isAllowedSessionHandler, storeBuilderController.scanv1 )
29
29
  .post( '/updateMissing', isAllowedSessionHandler, storeBuilderController.updateMissing )
30
30
  .post( '/bulkFixtureUpload', isAllowedSessionHandler, storeBuilderController.bulkFixtureUpload )
@@ -41,5 +41,5 @@ storeBuilderRouter
41
41
  .post( '/getFixtureTypes', isAllowedSessionHandler, storeBuilderController.getFixtureTypes )
42
42
  .post( '/getFixtureLengths', isAllowedSessionHandler, storeBuilderController.getFixtureLengths )
43
43
  .post( '/getFixtureBrands', isAllowedSessionHandler, storeBuilderController.getFixtureBrands )
44
- .post( '/checkPlanoExist', storeBuilderController.checkPlanoExist )
44
+ .post( '/checkPlanoExist', isAllowedSessionHandler, storeBuilderController.checkPlanoExist )
45
45
  .post( '/storeLayoutElements', isAllowedSessionHandler, storeBuilderController.storeLayoutElements );