@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.
- package/PensaSdkReactNative.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/pensasdkreactnative/PensaSdkReactNativeModule.kt +28 -7
- package/ios/PensaSdkReactNative.mm +1 -1
- package/ios/PensaSdkReactNative.swift +81 -70
- package/lib/module/index.js +4 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +10 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +22 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +10 -6
- package/src/types.ts +21 -0
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
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?,
|
|
218
|
+
fun fetchOnDemandReports(scanId: Int, projectId: Int?, reportTypes: ReadableArray?, promise: Promise) {
|
|
218
219
|
try {
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
165
|
-
func fetchOnDemandReports(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
) {
|
|
172
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
180
|
+
Pensa.shared.fetchOnDemandReports(
|
|
181
|
+
scanId: scanId.intValue,
|
|
182
|
+
projectId: projectId?.intValue,
|
|
183
|
+
reportTypes: types,
|
|
184
|
+
onSuccess: { report in
|
|
183
185
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
196
|
-
|
|
197
|
-
[
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
"
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
|
|
222
|
-
"
|
|
223
|
-
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
"
|
|
227
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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,
|
package/lib/module/index.js
CHANGED
|
@@ -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,
|
|
44
|
-
|
|
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);
|
package/lib/module/index.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/lib/module/types.js
CHANGED
|
@@ -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
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PensaReportType"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;
|
|
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
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|