@pensasystems/pensa-react-native 0.1.0-beta-13 → 0.1.0-beta-14

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.
@@ -21,5 +21,5 @@ Pod::Spec.new do |s|
21
21
  s.dependency "React-Core"
22
22
  end
23
23
 
24
- s.dependency "PensaSdk", "~> 1.1.1"
24
+ s.dependency "PensaSdk", "~> 1.1.2"
25
25
  end
@@ -99,7 +99,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
99
99
 
100
100
  dependencies {
101
101
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
102
- implementation "com.pensasystems:pensasdk:1.0.18"
102
+ implementation "com.pensasystems:pensasdk:1.0.19"
103
103
  implementation "com.facebook.react:react-android"
104
104
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
105
105
  }
@@ -7,6 +7,7 @@ import com.facebook.react.bridge.ReactMethod
7
7
  import com.facebook.react.bridge.Promise
8
8
  import com.facebook.react.bridge.ReadableArray
9
9
  import com.facebook.react.bridge.ReadableMap
10
+ import com.facebook.react.bridge.ReadableType
10
11
  import com.pensasystems.pensasdk.PensaSdk
11
12
  import com.pensasystems.pensasdk.PensaSdkConfiguration
12
13
  import com.pensasystems.pensasdk.model.PensaReportType
@@ -214,18 +215,15 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
214
215
  }
215
216
 
216
217
  @ReactMethod
217
- fun fetchOnDemandReports(scanId: Int, projectId: Int?, reportType: String?, promise: Promise) {
218
+ fun fetchOnDemandReports(scanId: Int, projectId: Int?, reportTypes: ReadableArray?, promise: Promise) {
218
219
  try {
219
- val reportTypeEnum = try {
220
- if (reportType != null) PensaReportType.valueOf(reportType) else PensaReportType.ITEMS_SEEN
221
- } catch (e: Exception) {
222
- PensaReportType.ITEMS_SEEN
223
- }
220
+
221
+ val finalReportTypes = parseReportTypes(reportTypes)
224
222
 
225
223
  PensaSdk.fetchOnDemandReports(
226
224
  scanId = scanId,
227
225
  projectId = projectId,
228
- reportType = reportTypeEnum,
226
+ reportTypes = finalReportTypes,
229
227
  onSuccess = { report ->
230
228
 
231
229
  val result = Arguments.createMap()
@@ -244,6 +242,9 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
244
242
  val categoryId = product.categoryId
245
243
  if (categoryId != null) p.putInt("categoryId", categoryId) else p.putNull("categoryId")
246
244
 
245
+ val expectedFacings = product.expectedFacings
246
+ if (expectedFacings != null) p.putInt("expectedFacings", expectedFacings) else p.putNull("expectedFacings")
247
+
247
248
  val facings = product.facings
248
249
  if (facings != null) p.putInt("facings", facings) else p.putNull("facings")
249
250
 
@@ -352,4 +353,24 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
352
353
  promise.reject("FETCH_PRODUCT_IMAGE_EXCEPTION", e)
353
354
  }
354
355
  }
356
+
357
+ // Helpers
358
+
359
+ private fun parseReportTypes(reportTypes: ReadableArray?): List<PensaReportType> {
360
+ if (reportTypes == null || reportTypes.size() == 0) return listOf(PensaReportType.ITEMS_SEEN)
361
+
362
+ val list = mutableListOf<PensaReportType>()
363
+ for (i in 0 until reportTypes.size()) {
364
+ if (reportTypes.getType(i) != ReadableType.String) continue
365
+ val raw = reportTypes.getString(i) ?: continue
366
+ val parsed = try {
367
+ PensaReportType.valueOf(raw)
368
+ } catch (e: Exception) {
369
+ null
370
+ }
371
+ if (parsed != null) list.add(parsed)
372
+ }
373
+
374
+ return if (list.isEmpty()) listOf(PensaReportType.ITEMS_SEEN) else list.distinct()
375
+ }
355
376
  }
@@ -44,7 +44,7 @@ RCT_EXTERN_METHOD(fetchScanStatuses:(NSArray *)scanIds
44
44
 
45
45
  RCT_EXTERN_METHOD(fetchOnDemandReports:(nonnull NSNumber *)scanId
46
46
  projectId:(nullable NSNumber *)projectId
47
- reportType:(nullable NSString *)reportType
47
+ reportTypes:(nullable NSArray *)reportTypes
48
48
  withResolver:(RCTPromiseResolveBlock)resolve
49
49
  withRejecter:(RCTPromiseRejectBlock)reject)
50
50
 
@@ -161,84 +161,95 @@ class PensaSdkReactNative: NSObject {
161
161
  )
162
162
  }
163
163
 
164
- @objc(fetchOnDemandReports:projectId:reportType:withResolver:withRejecter:)
165
- func fetchOnDemandReports(
166
- scanId: NSNumber,
167
- projectId: NSNumber?,
168
- reportType: NSString?,
169
- resolve: @escaping RCTPromiseResolveBlock,
170
- reject: @escaping RCTPromiseRejectBlock
171
- ) {
172
- print("reportType: \(reportType)")
173
- let typeString = reportType as String? ?? "ITEMS_SEEN"
174
- let type = PensaReportType(rawValue: typeString) ?? .itemsSeen
164
+ @objc(fetchOnDemandReports:projectId:reportTypes:withResolver:withRejecter:)
165
+ func fetchOnDemandReports(
166
+ scanId: NSNumber,
167
+ projectId: NSNumber?,
168
+ reportTypes: NSArray?,
169
+ resolve: @escaping RCTPromiseResolveBlock,
170
+ reject: @escaping RCTPromiseRejectBlock
171
+ ) {
172
+ func rn(_ value: Any?) -> Any { value ?? NSNull() }
175
173
 
176
- Pensa.shared.fetchOnDemandReports(
177
- scanId: scanId.intValue,
178
- projectId: projectId?.intValue,
179
- reportType: type,
180
- onSuccess: { report in
174
+ let types: [PensaReportType] = {
175
+ guard let arr = reportTypes as? [String], !arr.isEmpty else { return [.itemsSeen] }
176
+ let mapped = arr.compactMap { PensaReportType(rawValue: $0) }
177
+ return mapped.isEmpty ? [.itemsSeen] : mapped
178
+ }()
181
179
 
182
- func rn(_ value: Any?) -> Any { value ?? NSNull() }
180
+ Pensa.shared.fetchOnDemandReports(
181
+ scanId: scanId.intValue,
182
+ projectId: projectId?.intValue,
183
+ reportTypes: types,
184
+ onSuccess: { report in
183
185
 
184
- var result: [String: Any] = [
185
- "shelfId": rn(report.shelfId),
186
- "shelfName": rn(report.shelfName),
187
- "status": rn(report.status),
188
- "projectId": rn(report.projectId),
189
- "projectName": rn(report.projectName),
190
- "projectReportId": rn(report.projectReportId),
191
- "projectReportName": rn(report.projectReportName),
192
- "realogramSignedUrl": rn(report.realogramSignedUrl)
193
- ]
186
+ var result: [String: Any] = [
187
+ "shelfId": rn(report.shelfId),
188
+ "shelfName": rn(report.shelfName),
189
+ "status": rn(report.status),
190
+ "projectId": rn(report.projectId),
191
+ "projectName": rn(report.projectName),
192
+ "projectReportId": rn(report.projectReportId),
193
+ "projectReportName": rn(report.projectReportName),
194
+ "realogramSignedUrl": rn(report.realogramSignedUrl)
195
+ ]
194
196
 
195
- if let bucket = report.facingsSeen?.report {
196
- let products = bucket.productList.map { p in
197
- [
198
- "brand": rn(p.brand),
199
- "brandId": rn(p.brandId),
200
- "category": rn(p.category),
201
- "categoryId": rn(p.categoryId),
202
- "facings": rn(p.facings),
203
- "manufacturer": rn(p.manufacturer),
204
- "manufacturerId": rn(p.manufacturerId),
205
- "product": rn(p.product),
206
- "productId": rn(p.productId),
207
- "upc": rn(p.upc)
208
- ]
197
+ func addBucket(_ key: String, _ bucket: PensaOnDemandReportBucket?) {
198
+ guard let bucket = bucket else { return } // istenen tip yoksa hiç ekleme
199
+ let products: [[String: Any]] = bucket.productList.map { p in
200
+ [
201
+ "brand": rn(p.brand),
202
+ "brandId": rn(p.brandId),
203
+ "category": rn(p.category),
204
+ "categoryId": rn(p.categoryId),
205
+ "expectedFacings": rn(p.expectedFacings),
206
+ "facings": rn(p.facings),
207
+ "manufacturer": rn(p.manufacturer),
208
+ "manufacturerId": rn(p.manufacturerId),
209
+ "product": rn(p.product),
210
+ "productId": rn(p.productId),
211
+ "upc": rn(p.upc)
212
+ ]
213
+ }
214
+ result[key] = ["productList": products]
209
215
  }
210
- result["facingsSeen"] = ["productList": products]
211
- } else {
212
- result["facingsSeen"] = NSNull()
213
- }
214
216
 
215
- if let bucket = report.itemsSeen?.report {
216
- let products = bucket.productList.map { p in
217
- [
218
- "brand": rn(p.brand),
219
- "brandId": rn(p.brandId),
220
- "category": rn(p.category),
221
- "categoryId": rn(p.categoryId),
222
- "facings": rn(p.facings),
223
- "manufacturer": rn(p.manufacturer),
224
- "manufacturerId": rn(p.manufacturerId),
225
- "product": rn(p.product),
226
- "productId": rn(p.productId),
227
- "upc": rn(p.upc)
228
- ]
217
+ for t in types {
218
+ switch t {
219
+ case .itemsSeen:
220
+ addBucket("itemsSeen", report.itemsSeen?.report)
221
+ case .facingsSeen:
222
+ addBucket("facingsSeen", report.facingsSeen?.report)
223
+ case .fullFacings:
224
+ addBucket("fullFacings", report.fullFacings?.report)
225
+ case .fullFacingsAndProductPositions:
226
+ addBucket("fullFacingsAndProductPositions", report.fullFacingsAndProductPositions?.report)
227
+ case .newProducts:
228
+ addBucket("newProducts", report.newProducts?.report)
229
+ case .newProductPackaging:
230
+ addBucket("newProductPackaging", report.newProductPackaging?.report)
231
+ case .noOos:
232
+ addBucket("noOos", report.noOos?.report)
233
+ case .oos:
234
+ addBucket("oos", report.oos?.report)
235
+ case .productPositions:
236
+ addBucket("productPositions", report.productPositions?.report)
237
+ case .scanFailed:
238
+ addBucket("scanFailed", report.scanFailed?.report)
239
+ case .scanRejected:
240
+ addBucket("scanRejected", report.scanRejected?.report)
241
+ case .scanSkipped:
242
+ addBucket("scanSkipped", report.scanSkipped?.report)
243
+ }
229
244
  }
230
- result["itemsSeen"] = ["productList": products]
231
- } else {
232
- result["itemsSeen"] = NSNull()
233
- }
234
245
 
235
- resolve(result)
236
- },
237
- onError: { error in
238
- reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
239
- }
240
- )
241
- }
246
+ resolve(result)
247
+ },
248
+ onError: { error in
249
+ reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
250
+ }
251
+ )
252
+ }
242
253
 
243
254
  @objc(fetchProductImageBase64:withResolver:withRejecter:)
244
255
  func fetchProductImageBase64(productId: NSNumber,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { NativeModules, Platform } from 'react-native';
4
+ import { PensaReportType } from "./types.js";
4
5
  const LINKING_ERROR = `The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
5
6
  ios: "- You have run 'pod install'\n",
6
7
  default: ''
@@ -40,8 +41,9 @@ export const showStoreChecklist = (globalStoreId, guid, sectionKey) => {
40
41
  export const fetchScanStatuses = scanIds => {
41
42
  return PensaSdkReactNative.fetchScanStatuses(scanIds);
42
43
  };
43
- export const fetchOnDemandReports = (scanId, projectId, reportType) => {
44
- return PensaSdkReactNative.fetchOnDemandReports(scanId, projectId ?? null, reportType ?? 'ITEMS_SEEN');
44
+ export const fetchOnDemandReports = (scanId, projectId, reportTypes) => {
45
+ const finalReportTypes = reportTypes && reportTypes.length > 0 ? reportTypes : [PensaReportType.ITEMS_SEEN];
46
+ return PensaSdkReactNative.fetchOnDemandReports(scanId, projectId ?? null, finalReportTypes);
45
47
  };
46
48
  export const fetchProductImageBase64 = productId => {
47
49
  return PensaSdkReactNative.fetchProductImageBase64(productId);
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey","fetchScanStatuses","scanIds","fetchOnDemandReports","projectId","reportType","fetchProductImageBase64","productId","PensaReportType"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAGtD,MAAMC,aAAa,GACjB,iFAAiF,GACjFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGN,aAAa,CAACM,mBAAmB,GACzDN,aAAa,CAACM,mBAAmB,GACjC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMQ,SAAS,GAAIC,MAIzB,IAAoB;EACnB,OAAOL,mBAAmB,CAACI,SAAS,CAACC,MAAM,CAAC;AAC9C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAwB;EACpD,OAAON,mBAAmB,CAACM,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAqB;EACjD,OAAOP,mBAAmB,CAACO,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOR,mBAAmB,CAACQ,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAqB;EACtD,OAAOT,mBAAmB,CAACS,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOV,mBAAmB,CAACU,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,MAAc,EACdC,OAAgB,EAChBC,aAAsB,KACJ;EAClB,OAAOd,mBAAmB,CAACW,YAAY,CACrCC,MAAM,EACNC,OAAO,IAAI,IAAI,EACfC,aAAa,IAAI,IACnB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAqB;EACrD,OAAOf,mBAAmB,CAACe,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAChCF,aAAqB,EACrBG,IAAa,EACbC,UAAmB,KACD;EAClB,OAAOlB,mBAAmB,CAACgB,kBAAkB,CAC3CF,aAAa,EACbG,IAAI,EACJC,UACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAC5BC,OAAiB,IACc;EAC/B,OAAOpB,mBAAmB,CAACmB,iBAAiB,CAACC,OAAO,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGA,CAClCT,MAAc,EACdU,SAAkB,EAClBC,UAA4B,KACK;EACjC,OAAOvB,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IAAI,EACjBC,UAAU,IAAI,YAChB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAClCC,SAAiB,IACG;EACpB,OAAOzB,mBAAmB,CAACwB,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS;AACvB,SAASC,eAAe,QAAQ,YAAS","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","PensaReportType","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey","fetchScanStatuses","scanIds","fetchOnDemandReports","projectId","reportTypes","finalReportTypes","length","ITEMS_SEEN","fetchProductImageBase64","productId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,SAASC,eAAe,QAAQ,YAAS;AAEzC,MAAMC,aAAa,GACjB,iFAAiF,GACjFF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGP,aAAa,CAACO,mBAAmB,GACzDP,aAAa,CAACO,mBAAmB,GACjC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMQ,SAAS,GAAIC,MAIzB,IAAoB;EACnB,OAAOL,mBAAmB,CAACI,SAAS,CAACC,MAAM,CAAC;AAC9C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAwB;EACpD,OAAON,mBAAmB,CAACM,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAqB;EACjD,OAAOP,mBAAmB,CAACO,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOR,mBAAmB,CAACQ,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAqB;EACtD,OAAOT,mBAAmB,CAACS,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOV,mBAAmB,CAACU,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,MAAc,EACdC,OAAgB,EAChBC,aAAsB,KACJ;EAClB,OAAOd,mBAAmB,CAACW,YAAY,CACrCC,MAAM,EACNC,OAAO,IAAI,IAAI,EACfC,aAAa,IAAI,IACnB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAqB;EACrD,OAAOf,mBAAmB,CAACe,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAChCF,aAAqB,EACrBG,IAAa,EACbC,UAAmB,KACD;EAClB,OAAOlB,mBAAmB,CAACgB,kBAAkB,CAC3CF,aAAa,EACbG,IAAI,EACJC,UACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAC5BC,OAAiB,IACc;EAC/B,OAAOpB,mBAAmB,CAACmB,iBAAiB,CAACC,OAAO,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGA,CAClCT,MAAc,EACdU,SAAkB,EAClBC,WAA+B,KACE;EACjC,MAAMC,gBAAgB,GACpBD,WAAW,IAAIA,WAAW,CAACE,MAAM,GAAG,CAAC,GACjCF,WAAW,GACX,CAAC5B,eAAe,CAAC+B,UAAU,CAAC;EAElC,OAAO1B,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IAAI,EACjBE,gBACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,uBAAuB,GAAIC,SAAiB,IAAsB;EAC7E,OAAO5B,mBAAmB,CAAC2B,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS;AACvB,SAASjC,eAAe,QAAQ,YAAS","ignoreList":[]}
@@ -2,7 +2,17 @@
2
2
 
3
3
  export let PensaReportType = /*#__PURE__*/function (PensaReportType) {
4
4
  PensaReportType["FACINGS_SEEN"] = "FACINGS_SEEN";
5
+ PensaReportType["FULL_FACINGS"] = "FULL_FACINGS";
6
+ PensaReportType["FULL_FACINGS_AND_PRODUCT_POSITIONS"] = "FULL_FACINGS_AND_PRODUCT_POSITIONS";
5
7
  PensaReportType["ITEMS_SEEN"] = "ITEMS_SEEN";
8
+ PensaReportType["NEW_PRODUCTS"] = "NEW_PRODUCTS";
9
+ PensaReportType["NEW_PRODUCT_PACKAGING"] = "NEW_PRODUCT_PACKAGING";
10
+ PensaReportType["NO_OOS"] = "NO_OOS";
11
+ PensaReportType["OOS"] = "OOS";
12
+ PensaReportType["PRODUCT_POSITIONS"] = "PRODUCT_POSITIONS";
13
+ PensaReportType["SCAN_FAILED"] = "SCAN_FAILED";
14
+ PensaReportType["SCAN_REJECTED"] = "SCAN_REJECTED";
15
+ PensaReportType["SCAN_SKIPPED"] = "SCAN_SKIPPED";
6
16
  return PensaReportType;
7
17
  }({});
8
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PensaReportType"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AA2EA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["PensaReportType"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAsFA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import type { PensaOnDemandReport, PensaScanStatus, PensaReportType } from './types';
1
+ import type { PensaOnDemandReport, PensaScanStatus } from './types';
2
+ import { PensaReportType } from './types';
2
3
  export declare const initPensa: (config: {
3
4
  clientId: string;
4
5
  clientSecret: string;
@@ -13,7 +14,7 @@ export declare const showScanArea: (scanId: number, storeId?: number, globalStor
13
14
  export declare const showStockingScreen: () => Promise<void>;
14
15
  export declare const showStoreChecklist: (globalStoreId: string, guid?: string, sectionKey?: string) => Promise<void>;
15
16
  export declare const fetchScanStatuses: (scanIds: number[]) => Promise<PensaScanStatus[]>;
16
- export declare const fetchOnDemandReports: (scanId: number, projectId?: number, reportType?: PensaReportType) => Promise<PensaOnDemandReport>;
17
+ export declare const fetchOnDemandReports: (scanId: number, projectId?: number, reportTypes?: PensaReportType[]) => Promise<PensaOnDemandReport>;
17
18
  export declare const fetchProductImageBase64: (productId: number) => Promise<string>;
18
19
  export * from './events';
19
20
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmBrF,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC,IAAI,CAEf,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,OAAO,CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,IAAI,CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,OAAO,CAAC,IAAI,CAElD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACrB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,IAAI,CAEjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,eAAe,EAAE,CAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,aAAa,eAAe,KAC3B,OAAO,CAAC,mBAAmB,CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAEhB,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB1C,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC,IAAI,CAEf,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,OAAO,CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,IAAI,CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,OAAO,CAAC,IAAI,CAElD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACrB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,IAAI,CAEjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,eAAe,EAAE,CAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,cAAc,eAAe,EAAE,KAC9B,OAAO,CAAC,mBAAmB,CAW7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAEzE,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -41,6 +41,7 @@ export type PensaOnDemandProduct = {
41
41
  brandId: number | null;
42
42
  category: string | null;
43
43
  categoryId: number | null;
44
+ expectedFacings: number | null;
44
45
  facings: number | null;
45
46
  manufacturer: string | null;
46
47
  manufacturerId: number | null;
@@ -53,7 +54,17 @@ export type PensaOnDemandReportBucket = {
53
54
  };
54
55
  export type PensaOnDemandReport = {
55
56
  facingsSeen: PensaOnDemandReportBucket | null;
57
+ fullFacings: PensaOnDemandReportBucket | null;
58
+ fullFacingsAndProductPositions: PensaOnDemandReportBucket | null;
56
59
  itemsSeen: PensaOnDemandReportBucket | null;
60
+ newProducts: PensaOnDemandReportBucket | null;
61
+ newProductPackaging: PensaOnDemandReportBucket | null;
62
+ noOos: PensaOnDemandReportBucket | null;
63
+ oos: PensaOnDemandReportBucket | null;
64
+ productPositions: PensaOnDemandReportBucket | null;
65
+ scanFailed: PensaOnDemandReportBucket | null;
66
+ scanRejected: PensaOnDemandReportBucket | null;
67
+ scanSkipped: PensaOnDemandReportBucket | null;
57
68
  projectId: number | null;
58
69
  projectName: string | null;
59
70
  projectReportId: number | null;
@@ -65,6 +76,16 @@ export type PensaOnDemandReport = {
65
76
  };
66
77
  export declare enum PensaReportType {
67
78
  FACINGS_SEEN = "FACINGS_SEEN",
68
- ITEMS_SEEN = "ITEMS_SEEN"
79
+ FULL_FACINGS = "FULL_FACINGS",
80
+ FULL_FACINGS_AND_PRODUCT_POSITIONS = "FULL_FACINGS_AND_PRODUCT_POSITIONS",
81
+ ITEMS_SEEN = "ITEMS_SEEN",
82
+ NEW_PRODUCTS = "NEW_PRODUCTS",
83
+ NEW_PRODUCT_PACKAGING = "NEW_PRODUCT_PACKAGING",
84
+ NO_OOS = "NO_OOS",
85
+ OOS = "OOS",
86
+ PRODUCT_POSITIONS = "PRODUCT_POSITIONS",
87
+ SCAN_FAILED = "SCAN_FAILED",
88
+ SCAN_REJECTED = "SCAN_REJECTED",
89
+ SCAN_SKIPPED = "SCAN_SKIPPED"
69
90
  }
70
91
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensasystems/pensa-react-native",
3
- "version": "0.1.0-beta-13",
3
+ "version": "0.1.0-beta-14",
4
4
  "description": "The Pensa Mobile App SDK is a developer toolkit designed to simplify adding Pensa’s capabilities to your mobile applications. It provides pre-built libraries, tools, and APIs to accelerate development and integration, offering streamlined SDK integration, easy initialization, and comprehensive functionality. With the Pensa SDK, you can enhance your app’s features or seamlessly integrate with other services for a cohesive user experience.",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
package/src/index.tsx CHANGED
@@ -1,5 +1,6 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
- import type { PensaOnDemandReport, PensaScanStatus, PensaReportType } from './types';
2
+ import type { PensaOnDemandReport, PensaScanStatus } from './types';
3
+ import { PensaReportType } from './types';
3
4
 
4
5
  const LINKING_ERROR =
5
6
  `The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
@@ -83,18 +84,21 @@ export const fetchScanStatuses = (
83
84
  export const fetchOnDemandReports = (
84
85
  scanId: number,
85
86
  projectId?: number,
86
- reportType?: PensaReportType
87
+ reportTypes?: PensaReportType[]
87
88
  ): Promise<PensaOnDemandReport> => {
89
+ const finalReportTypes =
90
+ reportTypes && reportTypes.length > 0
91
+ ? reportTypes
92
+ : [PensaReportType.ITEMS_SEEN];
93
+
88
94
  return PensaSdkReactNative.fetchOnDemandReports(
89
95
  scanId,
90
96
  projectId ?? null,
91
- reportType ?? 'ITEMS_SEEN'
97
+ finalReportTypes
92
98
  );
93
99
  };
94
100
 
95
- export const fetchProductImageBase64 = (
96
- productId: number
97
- ): Promise<string> => {
101
+ export const fetchProductImageBase64 = (productId: number): Promise<string> => {
98
102
  return PensaSdkReactNative.fetchProductImageBase64(productId);
99
103
  };
100
104
 
package/src/types.ts CHANGED
@@ -48,6 +48,7 @@ export type PensaOnDemandProduct = {
48
48
  brandId: number | null;
49
49
  category: string | null;
50
50
  categoryId: number | null;
51
+ expectedFacings: number | null;
51
52
  facings: number | null;
52
53
  manufacturer: string | null;
53
54
  manufacturerId: number | null;
@@ -62,7 +63,17 @@ export type PensaOnDemandReportBucket = {
62
63
 
63
64
  export type PensaOnDemandReport = {
64
65
  facingsSeen: PensaOnDemandReportBucket | null;
66
+ fullFacings: PensaOnDemandReportBucket | null;
67
+ fullFacingsAndProductPositions: PensaOnDemandReportBucket | null;
65
68
  itemsSeen: PensaOnDemandReportBucket | null;
69
+ newProducts: PensaOnDemandReportBucket | null;
70
+ newProductPackaging: PensaOnDemandReportBucket | null;
71
+ noOos: PensaOnDemandReportBucket | null;
72
+ oos: PensaOnDemandReportBucket | null;
73
+ productPositions: PensaOnDemandReportBucket | null;
74
+ scanFailed: PensaOnDemandReportBucket | null;
75
+ scanRejected: PensaOnDemandReportBucket | null;
76
+ scanSkipped: PensaOnDemandReportBucket | null;
66
77
  projectId: number | null;
67
78
  projectName: string | null;
68
79
  projectReportId: number | null;
@@ -75,5 +86,15 @@ export type PensaOnDemandReport = {
75
86
 
76
87
  export enum PensaReportType {
77
88
  FACINGS_SEEN = 'FACINGS_SEEN',
89
+ FULL_FACINGS = 'FULL_FACINGS',
90
+ FULL_FACINGS_AND_PRODUCT_POSITIONS = 'FULL_FACINGS_AND_PRODUCT_POSITIONS',
78
91
  ITEMS_SEEN = 'ITEMS_SEEN',
92
+ NEW_PRODUCTS = 'NEW_PRODUCTS',
93
+ NEW_PRODUCT_PACKAGING = 'NEW_PRODUCT_PACKAGING',
94
+ NO_OOS = 'NO_OOS',
95
+ OOS = 'OOS',
96
+ PRODUCT_POSITIONS = 'PRODUCT_POSITIONS',
97
+ SCAN_FAILED = 'SCAN_FAILED',
98
+ SCAN_REJECTED = 'SCAN_REJECTED',
99
+ SCAN_SKIPPED = 'SCAN_SKIPPED',
79
100
  }