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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.4"
24
+ s.dependency "PensaSdk", "~> 1.0.5"
25
25
  end
@@ -37,6 +37,19 @@ RCT_EXTERN_METHOD(showStoreChecklist:(NSString *)globalStoreId
37
37
  withResolver:(RCTPromiseResolveBlock)resolve
38
38
  withRejecter:(RCTPromiseRejectBlock)reject)
39
39
 
40
+ RCT_EXTERN_METHOD(fetchScanStatuses:(NSArray *)scanIds
41
+ withResolver:(RCTPromiseResolveBlock)resolve
42
+ withRejecter:(RCTPromiseRejectBlock)reject)
43
+
44
+ RCT_EXTERN_METHOD(fetchOnDemandReports:(nonnull NSNumber *)scanId
45
+ projectId:(nullable NSNumber *)projectId
46
+ withResolver:(RCTPromiseResolveBlock)resolve
47
+ withRejecter:(RCTPromiseRejectBlock)reject)
48
+
49
+ RCT_EXTERN_METHOD(fetchProductImageBase64:(nonnull NSNumber *)productId
50
+ withResolver:(RCTPromiseResolveBlock)resolve
51
+ withRejecter:(RCTPromiseRejectBlock)reject)
52
+
40
53
  + (BOOL)requiresMainQueueSetup
41
54
  {
42
55
  return NO;
@@ -118,4 +118,96 @@ class PensaSdkReactNative: NSObject {
118
118
  resolve(nil)
119
119
  }
120
120
  }
121
+
122
+ @objc(fetchScanStatuses:withResolver:withRejecter:)
123
+ func fetchScanStatuses(scanIds: [NSNumber],
124
+ resolve: @escaping RCTPromiseResolveBlock,
125
+ reject: @escaping RCTPromiseRejectBlock) {
126
+ let ids = scanIds.map { $0.intValue }
127
+
128
+ Pensa.shared.fetchScanStatuses(
129
+ scanIds: ids,
130
+ onSuccess: { statuses in
131
+ let mapped: [[String: Any]] = statuses.map { status in
132
+ var dict: [String: Any] = [:]
133
+ dict["captureType"] = status.captureType ?? NSNull()
134
+ dict["created"] = status.created ?? NSNull()
135
+ 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
+ dict["scanTimestamp"] = status.scanTimestamp ?? NSNull()
146
+ dict["scannerId"] = status.scannerId as Any
147
+ dict["shelfScanPeriodId"] = status.shelfScanPeriodId as Any
148
+ dict["status"] = status.status ?? NSNull()
149
+ return dict
150
+ }
151
+ resolve(mapped)
152
+ },
153
+ onError: { error in
154
+ reject("FETCH_SCAN_STATUSES_FAILED", error.localizedDescription, error)
155
+ }
156
+ )
157
+ }
158
+
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 {
173
+ 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
185
+ }
186
+ result["itemsSeen"] = ["productList": products]
187
+ } else {
188
+ result["itemsSeen"] = NSNull()
189
+ }
190
+
191
+ resolve(result)
192
+ },
193
+ onError: { error in
194
+ reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
195
+ }
196
+ )
197
+ }
198
+
199
+ @objc(fetchProductImageBase64:withResolver:withRejecter:)
200
+ func fetchProductImageBase64(productId: NSNumber,
201
+ resolve: @escaping RCTPromiseResolveBlock,
202
+ reject: @escaping RCTPromiseRejectBlock) {
203
+ Pensa.shared.fetchProductImageBase64(
204
+ productId: productId.intValue,
205
+ onSuccess: { base64 in
206
+ resolve(base64)
207
+ },
208
+ onError: { error in
209
+ reject("FETCH_PRODUCT_IMAGE_BASE64_FAILED", error.localizedDescription, error)
210
+ }
211
+ )
212
+ }
121
213
  }
@@ -37,6 +37,15 @@ export const showStockingScreen = () => {
37
37
  export const showStoreChecklist = (globalStoreId, guid, sectionKey) => {
38
38
  return PensaSdkReactNative.showStoreChecklist(globalStoreId, guid, sectionKey);
39
39
  };
40
+ export const fetchScanStatuses = scanIds => {
41
+ return PensaSdkReactNative.fetchScanStatuses(scanIds);
42
+ };
43
+ export const fetchOnDemandReports = (scanId, projectId) => {
44
+ return PensaSdkReactNative.fetchOnDemandReports(scanId, projectId ?? null);
45
+ };
46
+ export const fetchProductImageBase64 = productId => {
47
+ return PensaSdkReactNative.fetchProductImageBase64(productId);
48
+ };
40
49
  export * from "./events.js";
41
50
  export * from "./types.js";
42
51
  //# sourceMappingURL=index.js.map
@@ -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"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,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,cAAc,aAAU;AACxB,cAAc,YAAS","ignoreList":[]}
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","fetchProductImageBase64","productId"],"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,KACe;EACjC,OAAOtB,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IACf,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAClCC,SAAiB,IACG;EACpB,OAAOxB,mBAAmB,CAACuB,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import type { PensaOnDemandReport, PensaScanStatus } from './types';
1
2
  export declare const initPensa: (config: {
2
3
  clientId: string;
3
4
  clientSecret: string;
@@ -11,6 +12,9 @@ export declare const showStoresScreen: () => Promise<void>;
11
12
  export declare const showScanArea: (scanId: number, storeId?: number, globalStoreId?: string) => Promise<void>;
12
13
  export declare const showStockingScreen: () => Promise<void>;
13
14
  export declare const showStoreChecklist: (globalStoreId: string, guid?: string, sectionKey?: string) => Promise<void>;
15
+ export declare const fetchScanStatuses: (scanIds: number[]) => Promise<PensaScanStatus[]>;
16
+ export declare const fetchOnDemandReports: (scanId: number, projectId?: number) => Promise<PensaOnDemandReport>;
17
+ export declare const fetchProductImageBase64: (productId: number) => Promise<string>;
14
18
  export * from './events';
15
19
  export * from './types';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAmBA,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,cAAc,UAAU,CAAC;AACzB,cAAc,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;AAmBpE,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,KACjB,OAAO,CAAC,mBAAmB,CAK7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAEhB,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -23,4 +23,39 @@ export type PensaEventPayloads = {
23
23
  onScanUploadFailed: OnScanUploadFailed;
24
24
  onCantScanReported: OnCantScanReported;
25
25
  };
26
+ export type PensaScanStatus = {
27
+ captureType: string | null;
28
+ created: string | null;
29
+ fastStatus: string | null;
30
+ frameHeight: number | null;
31
+ frameWidth: number | null;
32
+ hasOutOfServiceSegment: boolean | null;
33
+ id: number;
34
+ imageCaptureQuality: string | null;
35
+ publish: boolean | null;
36
+ scanAreaId: number | null;
37
+ scanMetadataGuid: string | null;
38
+ scanMetadataServerUploadStarted: string | null;
39
+ scanTimestamp: string | null;
40
+ scannerId: number | null;
41
+ shelfScanPeriodId: number | null;
42
+ status: string | null;
43
+ };
44
+ export type PensaOnDemandProduct = {
45
+ brand: string | null;
46
+ brandId: number | null;
47
+ category: string | null;
48
+ categoryId: number | null;
49
+ manufacturer: string | null;
50
+ manufacturerId: number | null;
51
+ product: string | null;
52
+ productId: number | null;
53
+ upc: string | null;
54
+ };
55
+ export type PensaOnDemandReportBucket = {
56
+ productList: PensaOnDemandProduct[];
57
+ };
58
+ export type PensaOnDemandReport = {
59
+ itemsSeen: PensaOnDemandReportBucket | null;
60
+ };
26
61
  //# 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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensasystems/pensa-react-native",
3
- "version": "0.1.0-beta-2",
3
+ "version": "0.1.0-beta-3",
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,4 +1,5 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
+ import type { PensaOnDemandReport, PensaScanStatus } from './types';
2
3
 
3
4
  const LINKING_ERROR =
4
5
  `The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
@@ -73,5 +74,27 @@ export const showStoreChecklist = (
73
74
  );
74
75
  };
75
76
 
77
+ export const fetchScanStatuses = (
78
+ scanIds: number[]
79
+ ): Promise<PensaScanStatus[]> => {
80
+ return PensaSdkReactNative.fetchScanStatuses(scanIds);
81
+ };
82
+
83
+ export const fetchOnDemandReports = (
84
+ scanId: number,
85
+ projectId?: number
86
+ ): Promise<PensaOnDemandReport> => {
87
+ return PensaSdkReactNative.fetchOnDemandReports(
88
+ scanId,
89
+ projectId ?? null
90
+ );
91
+ };
92
+
93
+ export const fetchProductImageBase64 = (
94
+ productId: number
95
+ ): Promise<string> => {
96
+ return PensaSdkReactNative.fetchProductImageBase64(productId);
97
+ };
98
+
76
99
  export * from './events';
77
100
  export * from './types';
package/src/types.ts CHANGED
@@ -27,3 +27,42 @@ export type PensaEventPayloads = {
27
27
  onScanUploadFailed: OnScanUploadFailed;
28
28
  onCantScanReported: OnCantScanReported;
29
29
  };
30
+
31
+ export type PensaScanStatus = {
32
+ captureType: string | null;
33
+ created: string | null;
34
+ fastStatus: string | null;
35
+ frameHeight: number | null;
36
+ frameWidth: number | null;
37
+ hasOutOfServiceSegment: boolean | null;
38
+ id: number;
39
+ imageCaptureQuality: string | null;
40
+ publish: boolean | null;
41
+ scanAreaId: number | null;
42
+ scanMetadataGuid: string | null;
43
+ scanMetadataServerUploadStarted: string | null;
44
+ scanTimestamp: string | null;
45
+ scannerId: number | null;
46
+ shelfScanPeriodId: number | null;
47
+ status: string | null;
48
+ };
49
+
50
+ export type PensaOnDemandProduct = {
51
+ brand: string | null;
52
+ brandId: number | null;
53
+ category: string | null;
54
+ categoryId: number | null;
55
+ manufacturer: string | null;
56
+ manufacturerId: number | null;
57
+ product: string | null;
58
+ productId: number | null;
59
+ upc: string | null;
60
+ };
61
+
62
+ export type PensaOnDemandReportBucket = {
63
+ productList: PensaOnDemandProduct[];
64
+ };
65
+
66
+ export type PensaOnDemandReport = {
67
+ itemsSeen: PensaOnDemandReportBucket | null;
68
+ };