react-native-smallcase-gateway 1.0.2 → 1.1.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.1.0](https://github.com/smallcase/react-native-smallcase-gateway/compare/v1.0.2...v1.1.0) (2022-04-07)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * transaction error response in onSuccess callback ([6d36aeb](https://github.com/smallcase/react-native-smallcase-gateway/commit/6d36aebc0af379d7d7782baa7e59bc3092654d76))
11
+
5
12
  ### [1.0.2](https://github.com/smallcase/react-native-smallcase-gateway/compare/v1.0.0...v1.0.2) (2022-04-04)
6
13
 
7
14
 
@@ -82,7 +82,7 @@ repositories {
82
82
  dependencies {
83
83
  //noinspection GradleDynamicVersion
84
84
  implementation 'com.facebook.react:react-native:+' // From node_modules
85
- implementation 'com.smallcase.gateway:sdk:3.1.21'
85
+ implementation 'com.smallcase.gateway:sdk:3.2.0'
86
86
  implementation "androidx.core:core-ktx:1.3.1"
87
87
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
88
88
  }
@@ -13,6 +13,7 @@ import com.smallcase.gateway.data.listeners.TransactionResponseListener
13
13
  import com.smallcase.gateway.data.models.*
14
14
  import com.smallcase.gateway.data.requests.InitRequest
15
15
  import com.smallcase.gateway.portal.SmallcaseGatewaySdk
16
+ import com.smallcase.gateway.data.listeners.LeadGenResponseListener
16
17
 
17
18
 
18
19
  class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactContextBaseJavaModule(reactContext!!) {
@@ -32,7 +33,6 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
32
33
  isAmoEnabled: Boolean,
33
34
  preProvidedBrokers: ReadableArray,
34
35
  promise: Promise) {
35
- Log.d(TAG, "setConfigEnvironment: start")
36
36
 
37
37
  try {
38
38
  val brokerList = ArrayList<String>()
@@ -75,6 +75,12 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
75
75
  SmallcaseGatewaySdk.setHybridSDKVersion(sdkVersion)
76
76
  }
77
77
 
78
+ @ReactMethod
79
+ fun getSdkVersion(reactNativeSdkVersion: String, promise: Promise) {
80
+ val sdkString = "android:${SmallcaseGatewaySdk.getSdkVersion()},react-native:$reactNativeSdkVersion"
81
+ promise.resolve(sdkString)
82
+ }
83
+
78
84
  @ReactMethod
79
85
  fun init(sdkToken: String, promise: Promise) {
80
86
  Log.d(TAG, "init: start")
@@ -84,7 +90,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
84
90
  authRequest = initReq,
85
91
  gatewayInitialisationListener = object : DataListener<InitialisationResponse> {
86
92
  override fun onFailure(errorCode: Int, errorMessage: String) {
87
- val err = createErrorJSON(errorCode, errorMessage)
93
+ val err = createErrorJSON(errorCode, errorMessage, null)
88
94
  promise.reject("error", err)
89
95
  }
90
96
 
@@ -116,21 +122,15 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
116
122
  preProvidedBrokers = safeBrokerList,
117
123
  transactionResponseListener = object : TransactionResponseListener {
118
124
  override fun onSuccess(transactionResult: TransactionResult) {
119
- if (transactionResult.success) {
120
- val res = resultToWritableMap(transactionResult)
121
- promise.resolve(res)
122
- } else {
123
- val err = createErrorJSON(
124
- transactionResult.errorCode,
125
- transactionResult.error
126
- )
127
- promise.reject("error", err)
128
- }
125
+
126
+ val res = resultToWritableMap(transactionResult)
127
+ promise.resolve(res)
128
+
129
129
 
130
130
  }
131
131
 
132
- override fun onError(errorCode: Int, errorMessage: String) {
133
- val err = createErrorJSON(errorCode, errorMessage)
132
+ override fun onError(errorCode: Int, errorMessage: String, data: String?) {
133
+ val err = createErrorJSON(errorCode, errorMessage, data)
134
134
  promise.reject("error", err)
135
135
  }
136
136
  })
@@ -145,7 +145,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
145
145
 
146
146
  SmallcaseGatewaySdk.launchSmallPlug(currentActivity!!, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener {
147
147
  override fun onFailure(errorCode: Int, errorMessage: String) {
148
- val err = createErrorJSON(errorCode, errorMessage)
148
+ val err = createErrorJSON(errorCode, errorMessage, null)
149
149
 
150
150
  promise.reject("error", err)
151
151
  }
@@ -169,7 +169,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
169
169
  }
170
170
 
171
171
  override fun onFailure(errorCode: Int, errorMessage: String) {
172
- val err = createErrorJSON(errorCode, errorMessage)
172
+ val err = createErrorJSON(errorCode, errorMessage, null)
173
173
  promise.reject("error", err)
174
174
  }
175
175
  })
@@ -187,7 +187,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
187
187
  }
188
188
 
189
189
  override fun onLogoutFailed(errorCode: Int, error: String) {
190
- val err = createErrorJSON(errorCode, error)
190
+ val err = createErrorJSON(errorCode, error, null)
191
191
  promise.reject("error", err)
192
192
  }
193
193
  })
@@ -208,27 +208,13 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
208
208
 
209
209
  @ReactMethod
210
210
  fun triggerLeadGenWithStatus(userDetails: ReadableMap, promise: Promise) {
211
- val activity = currentActivity;
211
+ val activity = currentActivity
212
212
  if (activity != null) {
213
- SmallcaseGatewaySdk.triggerLeadGen(activity,readableMapToStrHashMap(userDetails), object : TransactionResponseListener {
214
- override fun onSuccess(transactionResult: TransactionResult) {
215
- if (transactionResult.success) {
216
- val res = resultToWritableMap(transactionResult)
217
- promise.resolve(res)
218
- } else {
219
- val err = createErrorJSON(
220
- transactionResult.errorCode,
221
- transactionResult.error
222
- )
223
- promise.reject("error", err)
224
- }
225
- }
226
213
 
227
- override fun onError(errorCode: Int, errorMessage: String) {
228
- val err = createErrorJSON(errorCode, errorMessage)
229
- promise.reject("error", err)
214
+ SmallcaseGatewaySdk.triggerLeadGen(activity, readableMapToStrHashMap(userDetails), object: LeadGenResponseListener {
215
+ override fun onSuccess(leadResponse: String) {
216
+ promise.resolve(leadResponse)
230
217
  }
231
-
232
218
  })
233
219
  }
234
220
  }
@@ -263,15 +249,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
263
249
  val writableMap: WritableMap = Arguments.createMap()
264
250
 
265
251
  writableMap.putString("data", result.data)
266
- writableMap.putBoolean("success", result.success)
267
- writableMap.putString("error", result.error)
268
- result.errorCode?.let {
269
- writableMap.putInt("errorCode", it)
270
- }
271
252
  writableMap.putString("transaction", result.transaction.name)
272
253
  return writableMap
273
254
  }
274
255
 
256
+
275
257
  private fun resultToWritableMap(result: SmallPlugResult): WritableMap {
276
258
  val writableMap: WritableMap = Arguments.createMap()
277
259
 
@@ -281,11 +263,12 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
281
263
  return writableMap
282
264
  }
283
265
 
284
- private fun createErrorJSON(errorCode: Int?, errorMessage: String?): WritableMap {
266
+ private fun createErrorJSON(errorCode: Int?, errorMessage: String?, data: String?): WritableMap {
285
267
  val errObj = Arguments.createMap()
286
268
 
287
269
  errorCode?.let { errObj.putInt("errorCode", it) }
288
270
  errorMessage?.let { errObj.putString("errorMessage", it) }
271
+ data?.let { errObj.putString("data", it) }
289
272
 
290
273
  return errObj
291
274
  }
@@ -13,6 +13,19 @@ RCT_REMAP_METHOD(setHybridSdkVersion, sdkVersion: (NSString *)sdkVersion) {
13
13
  [SCGateway.shared setHybridSDKVersionWithVersion:sdkVersion];
14
14
  }
15
15
 
16
+ RCT_REMAP_METHOD(getSdkVersion,
17
+ reactNativeSdkVersion: (NSString *)reactNativeSdkVersion
18
+ initWithResolver:(RCTPromiseResolveBlock)resolve
19
+ rejecter:(RCTPromiseRejectBlock)reject) {
20
+
21
+ NSString *nativeSdkString = [NSString stringWithFormat: @"ios:%@", [SCGateway.shared getSdkVersion]];
22
+ NSString *reactNativeSdkString = [NSString stringWithFormat: @",react-native:%@", reactNativeSdkVersion];
23
+
24
+ NSString *result = [nativeSdkString stringByAppendingString: reactNativeSdkString];
25
+
26
+ resolve(result);
27
+ }
28
+
16
29
  RCT_REMAP_METHOD(setConfigEnvironment,
17
30
  envName:(NSString *)envName
18
31
  gateway:(NSString *)gateway
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-smallcase-gateway",
3
3
  "title": "React Native Smallcase Gateway",
4
- "version": "1.0.2",
4
+ "version": "1.1.0",
5
5
  "description": "smallcase gateway bindings for react native",
6
6
  "main": "index.js",
7
7
  "files": [
@@ -23,6 +23,6 @@ Pod::Spec.new do |s|
23
23
  s.requires_arc = true
24
24
 
25
25
  s.dependency "React-Core"
26
- s.dependency 'SCGateway', '3.1.18'
26
+ s.dependency 'SCGateway', '3.1.19'
27
27
  end
28
28
 
@@ -139,20 +139,6 @@ const triggerLeadGen = (userDetails, utmParams) => {
139
139
  return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm);
140
140
  };
141
141
 
142
- // /**
143
- // * triggers the lead gen flow
144
- // *
145
- // * @param {userDetails} [userDetails]
146
- // * @param {Object} [utmParams]
147
- // * * @returns {Promise}
148
- // */
149
- // const triggerLeadGen = async (userDetails, utmParams) => {
150
- // const safeParams = safeObject(userDetails);
151
- // const safeUtm = safeObject(utmParams);
152
-
153
- // return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm)
154
- // }
155
-
156
142
  /**
157
143
  * triggers the lead gen flow
158
144
  *
@@ -176,6 +162,15 @@ const archiveSmallcase = async (iscid) => {
176
162
  return SmallcaseGatewayNative.archiveSmallcase(safeIscid);
177
163
  };
178
164
 
165
+ /**
166
+ * Returns the native android/ios and react-native sdk version
167
+ * (internal-tracking)
168
+ * @returns {Promise}
169
+ */
170
+ const getSdkVersion = async () => {
171
+ return SmallcaseGatewayNative.getSdkVersion(version);
172
+ }
173
+
179
174
  const SmallcaseGateway = {
180
175
  init,
181
176
  logoutUser,
@@ -184,7 +179,8 @@ const SmallcaseGateway = {
184
179
  archiveSmallcase,
185
180
  triggerTransaction,
186
181
  setConfigEnvironment,
187
- launchSmallplug
182
+ launchSmallplug,
183
+ getSdkVersion
188
184
  };
189
185
 
190
186
  export default SmallcaseGateway;