@pensasystems/pensa-react-native 0.1.0-beta-3 → 0.1.0-beta-5

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.0.5"
24
+ s.dependency "PensaSdk", "~> 1.0.6"
25
25
  end
@@ -7,7 +7,15 @@ buildscript {
7
7
  google()
8
8
  mavenCentral()
9
9
  maven {
10
- url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
10
+ //url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
11
+ url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
12
+ credentials {
13
+ username = "ci-cd-service"
14
+ password = "GChhw(Ywq&-qu1@@"
15
+ }
16
+ authentication {
17
+ basic(BasicAuthentication)
18
+ }
11
19
  }
12
20
  }
13
21
 
@@ -75,7 +83,15 @@ repositories {
75
83
  mavenCentral()
76
84
  google()
77
85
  maven {
78
- url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
86
+ //url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
87
+ url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
88
+ credentials {
89
+ username = "ci-cd-service"
90
+ password = "GChhw(Ywq&-qu1@@"
91
+ }
92
+ authentication {
93
+ basic(BasicAuthentication)
94
+ }
79
95
  }
80
96
  }
81
97
 
@@ -83,7 +99,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
83
99
 
84
100
  dependencies {
85
101
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
86
- implementation "com.pensasystems:pensasdk:1.0.8"
102
+ implementation "com.pensasystems:pensasdk:1.0.13"
87
103
  implementation "com.facebook.react:react-android"
88
104
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
89
105
  }
@@ -1,9 +1,11 @@
1
1
  package com.pensasdkreactnative
2
2
 
3
+ import com.facebook.react.bridge.Arguments
3
4
  import com.facebook.react.bridge.ReactApplicationContext
4
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
5
6
  import com.facebook.react.bridge.ReactMethod
6
7
  import com.facebook.react.bridge.Promise
8
+ import com.facebook.react.bridge.ReadableArray
7
9
  import com.facebook.react.bridge.ReadableMap
8
10
  import com.pensasystems.pensasdk.PensaSdk
9
11
  import com.pensasystems.pensasdk.PensaSdkConfiguration
@@ -169,4 +171,119 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
169
171
  promise.reject("NO_ACTIVITY", "Current activity is null")
170
172
  }
171
173
  }
174
+
175
+ @ReactMethod
176
+ fun fetchScanStatuses(scanIds: ReadableArray, promise: Promise) {
177
+ try {
178
+ val ids = mutableListOf<Int>()
179
+ for (i in 0 until scanIds.size()) {
180
+ ids.add(scanIds.getInt(i))
181
+ }
182
+
183
+ PensaSdk.fetchScanStatuses(
184
+ scanIds = ids,
185
+ onSuccess = { statuses ->
186
+ val rnList = statuses.map { status ->
187
+ val map = Arguments.createMap()
188
+ map.putInt("id", status.id)
189
+ map.putString("created", status.created)
190
+ map.putString("fastStatus", status.fastStatus)
191
+ map.putString("scanTimestamp", status.scanTimestamp)
192
+ map.putString("scannerId", status.scannerId)
193
+ map.putString("status", status.status)
194
+
195
+ val metadata = Arguments.createMap()
196
+ metadata.putString("guid", status.metadata?.guid)
197
+ metadata.putString("serverUploadStarted", status.metadata?.serverUploadStarted)
198
+ map.putMap("metadata", metadata)
199
+
200
+ map
201
+ }
202
+
203
+ val result = Arguments.createArray()
204
+ rnList.forEach { result.pushMap(it) }
205
+ promise.resolve(result)
206
+
207
+ },
208
+ onError = { error ->
209
+ promise.reject("FETCH_SCAN_STATUSES_FAILED", error)
210
+ }
211
+ )
212
+ } catch (e: Exception) {
213
+ promise.reject("FETCH_SCAN_STATUSES_EXCEPTION", e)
214
+ }
215
+ }
216
+
217
+ @ReactMethod
218
+ fun fetchOnDemandReports(scanId: Int, projectId: Int?, promise: Promise) {
219
+ try {
220
+ PensaSdk.fetchOnDemandReports(
221
+ scanId = scanId,
222
+ projectId = projectId,
223
+ onSuccess = { report ->
224
+ val result = Arguments.createMap()
225
+
226
+ report.facingsSeen?.let { bucket ->
227
+ val productsArray = Arguments.createArray()
228
+ bucket.productList.forEach { product ->
229
+ val p = Arguments.createMap()
230
+ p.putString("brand", product.brand)
231
+ p.putInt("brandId", product.brandId ?: 0)
232
+ p.putString("category", product.category)
233
+ p.putInt("categoryId", product.categoryId ?: 0)
234
+ p.putInt("facings", product.facings ?: 0)
235
+ p.putString("manufacturer", product.manufacturer)
236
+ p.putInt("manufacturerId", product.manufacturerId ?: 0)
237
+ p.putString("product", product.product)
238
+ p.putInt("productId", product.productId ?: 0)
239
+ p.putString("upc", product.upc)
240
+ productsArray.pushMap(p)
241
+ }
242
+
243
+ val bucketMap = Arguments.createMap()
244
+ bucketMap.putArray("productList", productsArray)
245
+ result.putMap("facingsSeen", bucketMap)
246
+
247
+ } ?: result.putNull("facingsSeen")
248
+
249
+ result.putInt("projectId", report.projectId ?: 0)
250
+ result.putString("projectName", report.projectName)
251
+ result.putInt("projectReportId", report.projectReportId ?: 0)
252
+ result.putString("projectReportName", report.projectReportName)
253
+ result.putInt("shelfId", report.shelfId ?: 0)
254
+ result.putString("shelfName", report.shelfName)
255
+
256
+ promise.resolve(result)
257
+ },
258
+ onError = { error ->
259
+ promise.reject("FETCH_ON_DEMAND_REPORTS_FAILED", error)
260
+ }
261
+ )
262
+ } catch (e: Exception) {
263
+ promise.reject("ON_DEMAND_EXCEPTION", e)
264
+ }
265
+ }
266
+
267
+ @ReactMethod
268
+ fun fetchProductImageBase64(productId: Int, promise: Promise) {
269
+ try {
270
+ val activity = reactApplicationContext.currentActivity
271
+ if (activity != null) {
272
+ PensaSdk.fetchProductImageBase64(
273
+ context = activity,
274
+ productId = productId,
275
+ onSuccess = { base64 ->
276
+ promise.resolve(base64)
277
+ },
278
+ onError = { error ->
279
+ promise.reject("FETCH_PRODUCT_IMAGE_FAILED", error)
280
+ }
281
+ )
282
+ } else {
283
+ promise.reject("NO_ACTIVITY", "Current activity is null")
284
+ }
285
+ } catch (e: Exception) {
286
+ promise.reject("FETCH_PRODUCT_IMAGE_EXCEPTION", e)
287
+ }
288
+ }
172
289
  }
@@ -120,9 +120,11 @@ class PensaSdkReactNative: NSObject {
120
120
  }
121
121
 
122
122
  @objc(fetchScanStatuses:withResolver:withRejecter:)
123
- func fetchScanStatuses(scanIds: [NSNumber],
124
- resolve: @escaping RCTPromiseResolveBlock,
125
- reject: @escaping RCTPromiseRejectBlock) {
123
+ func fetchScanStatuses(
124
+ scanIds: [NSNumber],
125
+ resolve: @escaping RCTPromiseResolveBlock,
126
+ reject: @escaping RCTPromiseRejectBlock
127
+ ) {
126
128
  let ids = scanIds.map { $0.intValue }
127
129
 
128
130
  Pensa.shared.fetchScanStatuses(
@@ -130,24 +132,27 @@ class PensaSdkReactNative: NSObject {
130
132
  onSuccess: { statuses in
131
133
  let mapped: [[String: Any]] = statuses.map { status in
132
134
  var dict: [String: Any] = [:]
133
- dict["captureType"] = status.captureType ?? NSNull()
135
+
136
+ dict["id"] = status.id
134
137
  dict["created"] = status.created ?? NSNull()
135
138
  dict["fastStatus"] = status.fastStatus ?? NSNull()
136
- dict["frameHeight"] = status.frameHeight as Any
137
- dict["frameWidth"] = status.frameWidth as Any
138
- dict["hasOutOfServiceSegment"] = status.hasOutOfServiceSegment as Any
139
- dict["id"] = status.id
140
- dict["imageCaptureQuality"] = status.imageCaptureQuality ?? NSNull()
141
- dict["publish"] = status.publish as Any
142
- dict["scanAreaId"] = status.scanAreaId as Any
143
- dict["scanMetadataGuid"] = status.scanMetadataGuid ?? NSNull()
144
- dict["scanMetadataServerUploadStarted"] = status.scanMetadataServerUploadStarted ?? NSNull()
145
139
  dict["scanTimestamp"] = status.scanTimestamp ?? NSNull()
146
- dict["scannerId"] = status.scannerId as Any
147
- dict["shelfScanPeriodId"] = status.shelfScanPeriodId as Any
140
+ dict["scannerId"] = status.scannerId ?? NSNull()
148
141
  dict["status"] = status.status ?? NSNull()
142
+
143
+ // metadata
144
+ if let metadata = status.metadata {
145
+ dict["metadata"] = [
146
+ "guid": (metadata.guid as Any?) ?? NSNull(),
147
+ "serverUploadStarted": (metadata.serverUploadStarted as Any?) ?? NSNull()
148
+ ]
149
+ } else {
150
+ dict["metadata"] = NSNull()
151
+ }
152
+
149
153
  return dict
150
154
  }
155
+
151
156
  resolve(mapped)
152
157
  },
153
158
  onError: { error in
@@ -156,45 +161,69 @@ class PensaSdkReactNative: NSObject {
156
161
  )
157
162
  }
158
163
 
159
- @objc(fetchOnDemandReports:projectId:withResolver:withRejecter:)
160
- func fetchOnDemandReports(scanId: NSNumber,
161
- projectId: NSNumber?,
162
- resolve: @escaping RCTPromiseResolveBlock,
163
- reject: @escaping RCTPromiseRejectBlock) {
164
- Pensa.shared.fetchOnDemandReports(
165
- scanId: scanId.intValue,
166
- projectId: projectId?.intValue,
167
- onSuccess: { report in
168
- var result: [String: Any] = [:]
169
-
170
- print("report: \(report) result: \(result)")
171
-
172
- if let bucket = report.itemsSeen {
164
+ @objc(fetchOnDemandReports:projectId:withResolver:withRejecter:)
165
+ func fetchOnDemandReports(
166
+ scanId: NSNumber,
167
+ projectId: NSNumber?,
168
+ resolve: @escaping RCTPromiseResolveBlock,
169
+ reject: @escaping RCTPromiseRejectBlock
170
+ ) {
171
+
172
+ Pensa.shared.fetchOnDemandReports(
173
+ scanId: scanId.intValue,
174
+ projectId: projectId?.intValue,
175
+ onSuccess: { report in
176
+
177
+ func rn(_ value: Any?) -> Any { value ?? NSNull() }
178
+
179
+ var result: [String: Any] = [
180
+ "shelfId": rn(report.shelfId),
181
+ "shelfName": rn(report.shelfName)
182
+ ]
183
+
184
+ if let item = report.facingsSeen {
185
+ var itemDict: [String: Any] = [
186
+ "projectId": rn(item.projectId),
187
+ "projectName": rn(item.projectName),
188
+ "projectReportId": rn(item.projectReportId),
189
+ "projectReportName": rn(item.projectReportName)
190
+ ]
191
+
192
+ if let bucket = item.report {
173
193
  let products: [[String: Any]] = bucket.productList.map { product in
174
- var dict: [String: Any] = [:]
175
- dict["brand"] = product.brand ?? NSNull()
176
- dict["brandId"] = product.brandId as Any
177
- dict["category"] = product.category ?? NSNull()
178
- dict["categoryId"] = product.categoryId as Any
179
- dict["manufacturer"] = product.manufacturer ?? NSNull()
180
- dict["manufacturerId"] = product.manufacturerId as Any
181
- dict["product"] = product.product ?? NSNull()
182
- dict["productId"] = product.productId as Any
183
- dict["upc"] = product.upc ?? NSNull()
184
- return dict
194
+ return [
195
+ "brand": rn(product.brand),
196
+ "brandId": rn(product.brandId),
197
+ "category": rn(product.category),
198
+ "categoryId": rn(product.categoryId),
199
+ "facings": rn(product.facings),
200
+ "manufacturer": rn(product.manufacturer),
201
+ "manufacturerId": rn(product.manufacturerId),
202
+ "product": rn(product.product),
203
+ "productId": rn(product.productId),
204
+ "upc": rn(product.upc)
205
+ ]
185
206
  }
186
- result["itemsSeen"] = ["productList": products]
207
+
208
+ itemDict["report"] = [
209
+ "productList": products
210
+ ]
187
211
  } else {
188
- result["itemsSeen"] = NSNull()
212
+ itemDict["report"] = NSNull()
189
213
  }
190
214
 
191
- resolve(result)
192
- },
193
- onError: { error in
194
- reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
215
+ result["facingsSeen"] = itemDict
216
+ } else {
217
+ result["facingsSeen"] = NSNull()
195
218
  }
196
- )
197
- }
219
+
220
+ resolve(result)
221
+ },
222
+ onError: { error in
223
+ reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
224
+ }
225
+ )
226
+ }
198
227
 
199
228
  @objc(fetchProductImageBase64:withResolver:withRejecter:)
200
229
  func fetchProductImageBase64(productId: NSNumber,
@@ -23,22 +23,17 @@ export type PensaEventPayloads = {
23
23
  onScanUploadFailed: OnScanUploadFailed;
24
24
  onCantScanReported: OnCantScanReported;
25
25
  };
26
+ export type PensaScanMetadata = {
27
+ guid: string | null;
28
+ serverUploadStarted: string | null;
29
+ };
26
30
  export type PensaScanStatus = {
27
- captureType: string | null;
28
31
  created: string | null;
29
32
  fastStatus: string | null;
30
- frameHeight: number | null;
31
- frameWidth: number | null;
32
- hasOutOfServiceSegment: boolean | null;
33
33
  id: number;
34
- imageCaptureQuality: string | null;
35
- publish: boolean | null;
36
- scanAreaId: number | null;
37
- scanMetadataGuid: string | null;
38
- scanMetadataServerUploadStarted: string | null;
34
+ metadata: PensaScanMetadata | null;
39
35
  scanTimestamp: string | null;
40
- scannerId: number | null;
41
- shelfScanPeriodId: number | null;
36
+ scannerId: string | null;
42
37
  status: string | null;
43
38
  };
44
39
  export type PensaOnDemandProduct = {
@@ -46,6 +41,7 @@ export type PensaOnDemandProduct = {
46
41
  brandId: number | null;
47
42
  category: string | null;
48
43
  categoryId: number | null;
44
+ facings: number | null;
49
45
  manufacturer: string | null;
50
46
  manufacturerId: number | null;
51
47
  product: string | null;
@@ -56,6 +52,12 @@ export type PensaOnDemandReportBucket = {
56
52
  productList: PensaOnDemandProduct[];
57
53
  };
58
54
  export type PensaOnDemandReport = {
59
- itemsSeen: PensaOnDemandReportBucket | null;
55
+ facingsSeen: PensaOnDemandReportBucket | null;
56
+ projectId: number | null;
57
+ projectName: string | null;
58
+ projectReportId: number | null;
59
+ projectReportName: string | null;
60
+ shelfId: number | null;
61
+ shelfName: string | null;
60
62
  };
61
63
  //# 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,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,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,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,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7C,CAAC"}
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,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,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensasystems/pensa-react-native",
3
- "version": "0.1.0-beta-3",
3
+ "version": "0.1.0-beta-5",
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/types.ts CHANGED
@@ -28,22 +28,18 @@ export type PensaEventPayloads = {
28
28
  onCantScanReported: OnCantScanReported;
29
29
  };
30
30
 
31
+ export type PensaScanMetadata = {
32
+ guid: string | null;
33
+ serverUploadStarted: string | null;
34
+ };
35
+
31
36
  export type PensaScanStatus = {
32
- captureType: string | null;
33
37
  created: string | null;
34
38
  fastStatus: string | null;
35
- frameHeight: number | null;
36
- frameWidth: number | null;
37
- hasOutOfServiceSegment: boolean | null;
38
39
  id: number;
39
- imageCaptureQuality: string | null;
40
- publish: boolean | null;
41
- scanAreaId: number | null;
42
- scanMetadataGuid: string | null;
43
- scanMetadataServerUploadStarted: string | null;
40
+ metadata: PensaScanMetadata | null;
44
41
  scanTimestamp: string | null;
45
- scannerId: number | null;
46
- shelfScanPeriodId: number | null;
42
+ scannerId: string | null;
47
43
  status: string | null;
48
44
  };
49
45
 
@@ -52,6 +48,7 @@ export type PensaOnDemandProduct = {
52
48
  brandId: number | null;
53
49
  category: string | null;
54
50
  categoryId: number | null;
51
+ facings: number | null;
55
52
  manufacturer: string | null;
56
53
  manufacturerId: number | null;
57
54
  product: string | null;
@@ -64,5 +61,11 @@ export type PensaOnDemandReportBucket = {
64
61
  };
65
62
 
66
63
  export type PensaOnDemandReport = {
67
- itemsSeen: PensaOnDemandReportBucket | null;
64
+ facingsSeen: PensaOnDemandReportBucket | null;
65
+ projectId: number | null;
66
+ projectName: string | null;
67
+ projectReportId: number | null;
68
+ projectReportName: string | null;
69
+ shelfId: number | null;
70
+ shelfName: string | null;
68
71
  };