react-native-smallcase-gateway 1.0.0 → 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,22 @@
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
+
12
+ ### [1.0.2](https://github.com/smallcase/react-native-smallcase-gateway/compare/v1.0.0...v1.0.2) (2022-04-04)
13
+
14
+
15
+ ### Features
16
+
17
+ * log SDK version with transactionId ([8b833b3](https://github.com/smallcase/react-native-smallcase-gateway/commit/8b833b366c0b8f9a030f920134d82c0f84fa6c7f))
18
+
19
+ ### [1.0.1](https://github.com/smallcase/react-native-smallcase-gateway/compare/v1.0.0...v1.0.1) (2022-03-15)
20
+
5
21
  ## [1.0.0](https://github.com/smallcase/react-native-smallcase-gateway/compare/v0.10.0...v1.0.0) (2022-01-21)
6
22
 
7
23
 
@@ -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.13'
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>()
@@ -69,6 +69,18 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
69
69
  }
70
70
  }
71
71
 
72
+ @ReactMethod
73
+ fun setHybridSdkVersion(sdkVersion: String) {
74
+ SmallcaseGatewaySdk.setSDKType("react-native")
75
+ SmallcaseGatewaySdk.setHybridSDKVersion(sdkVersion)
76
+ }
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
+
72
84
  @ReactMethod
73
85
  fun init(sdkToken: String, promise: Promise) {
74
86
  Log.d(TAG, "init: start")
@@ -78,7 +90,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
78
90
  authRequest = initReq,
79
91
  gatewayInitialisationListener = object : DataListener<InitialisationResponse> {
80
92
  override fun onFailure(errorCode: Int, errorMessage: String) {
81
- val err = createErrorJSON(errorCode, errorMessage)
93
+ val err = createErrorJSON(errorCode, errorMessage, null)
82
94
  promise.reject("error", err)
83
95
  }
84
96
 
@@ -110,21 +122,15 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
110
122
  preProvidedBrokers = safeBrokerList,
111
123
  transactionResponseListener = object : TransactionResponseListener {
112
124
  override fun onSuccess(transactionResult: TransactionResult) {
113
- if (transactionResult.success) {
114
- val res = resultToWritableMap(transactionResult)
115
- promise.resolve(res)
116
- } else {
117
- val err = createErrorJSON(
118
- transactionResult.errorCode,
119
- transactionResult.error
120
- )
121
- promise.reject("error", err)
122
- }
125
+
126
+ val res = resultToWritableMap(transactionResult)
127
+ promise.resolve(res)
128
+
123
129
 
124
130
  }
125
131
 
126
- override fun onError(errorCode: Int, errorMessage: String) {
127
- val err = createErrorJSON(errorCode, errorMessage)
132
+ override fun onError(errorCode: Int, errorMessage: String, data: String?) {
133
+ val err = createErrorJSON(errorCode, errorMessage, data)
128
134
  promise.reject("error", err)
129
135
  }
130
136
  })
@@ -139,7 +145,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
139
145
 
140
146
  SmallcaseGatewaySdk.launchSmallPlug(currentActivity!!, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener {
141
147
  override fun onFailure(errorCode: Int, errorMessage: String) {
142
- val err = createErrorJSON(errorCode, errorMessage)
148
+ val err = createErrorJSON(errorCode, errorMessage, null)
143
149
 
144
150
  promise.reject("error", err)
145
151
  }
@@ -163,7 +169,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
163
169
  }
164
170
 
165
171
  override fun onFailure(errorCode: Int, errorMessage: String) {
166
- val err = createErrorJSON(errorCode, errorMessage)
172
+ val err = createErrorJSON(errorCode, errorMessage, null)
167
173
  promise.reject("error", err)
168
174
  }
169
175
  })
@@ -181,7 +187,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
181
187
  }
182
188
 
183
189
  override fun onLogoutFailed(errorCode: Int, error: String) {
184
- val err = createErrorJSON(errorCode, error)
190
+ val err = createErrorJSON(errorCode, error, null)
185
191
  promise.reject("error", err)
186
192
  }
187
193
  })
@@ -202,27 +208,13 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
202
208
 
203
209
  @ReactMethod
204
210
  fun triggerLeadGenWithStatus(userDetails: ReadableMap, promise: Promise) {
205
- val activity = currentActivity;
211
+ val activity = currentActivity
206
212
  if (activity != null) {
207
- SmallcaseGatewaySdk.triggerLeadGen(activity,readableMapToStrHashMap(userDetails), object : TransactionResponseListener {
208
- override fun onSuccess(transactionResult: TransactionResult) {
209
- if (transactionResult.success) {
210
- val res = resultToWritableMap(transactionResult)
211
- promise.resolve(res)
212
- } else {
213
- val err = createErrorJSON(
214
- transactionResult.errorCode,
215
- transactionResult.error
216
- )
217
- promise.reject("error", err)
218
- }
219
- }
220
213
 
221
- override fun onError(errorCode: Int, errorMessage: String) {
222
- val err = createErrorJSON(errorCode, errorMessage)
223
- promise.reject("error", err)
214
+ SmallcaseGatewaySdk.triggerLeadGen(activity, readableMapToStrHashMap(userDetails), object: LeadGenResponseListener {
215
+ override fun onSuccess(leadResponse: String) {
216
+ promise.resolve(leadResponse)
224
217
  }
225
-
226
218
  })
227
219
  }
228
220
  }
@@ -257,15 +249,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
257
249
  val writableMap: WritableMap = Arguments.createMap()
258
250
 
259
251
  writableMap.putString("data", result.data)
260
- writableMap.putBoolean("success", result.success)
261
- writableMap.putString("error", result.error)
262
- result.errorCode?.let {
263
- writableMap.putInt("errorCode", it)
264
- }
265
252
  writableMap.putString("transaction", result.transaction.name)
266
253
  return writableMap
267
254
  }
268
255
 
256
+
269
257
  private fun resultToWritableMap(result: SmallPlugResult): WritableMap {
270
258
  val writableMap: WritableMap = Arguments.createMap()
271
259
 
@@ -275,11 +263,12 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext?) : ReactCont
275
263
  return writableMap
276
264
  }
277
265
 
278
- private fun createErrorJSON(errorCode: Int?, errorMessage: String?): WritableMap {
266
+ private fun createErrorJSON(errorCode: Int?, errorMessage: String?, data: String?): WritableMap {
279
267
  val errObj = Arguments.createMap()
280
268
 
281
269
  errorCode?.let { errObj.putInt("errorCode", it) }
282
270
  errorMessage?.let { errObj.putString("errorMessage", it) }
271
+ data?.let { errObj.putString("data", it) }
283
272
 
284
273
  return errObj
285
274
  }
@@ -8,6 +8,24 @@
8
8
 
9
9
  RCT_EXPORT_MODULE()
10
10
 
11
+ RCT_REMAP_METHOD(setHybridSdkVersion, sdkVersion: (NSString *)sdkVersion) {
12
+ [SCGateway.shared setSDKTypeWithType:@"react-native"];
13
+ [SCGateway.shared setHybridSDKVersionWithVersion:sdkVersion];
14
+ }
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
+
11
29
  RCT_REMAP_METHOD(setConfigEnvironment,
12
30
  envName:(NSString *)envName
13
31
  gateway:(NSString *)gateway
@@ -75,8 +93,6 @@ RCT_REMAP_METHOD(init,
75
93
  reject(@"init", @"Error during init", error);
76
94
  }
77
95
  }];
78
-
79
-
80
96
  }
81
97
 
82
98
  RCT_REMAP_METHOD(archiveSmallcase,
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.0",
4
+ "version": "1.1.0",
5
5
  "description": "smallcase gateway bindings for react native",
6
6
  "main": "index.js",
7
7
  "files": [
@@ -15,7 +15,6 @@
15
15
  "scripts": {
16
16
  "commit": "yarn cz",
17
17
  "test": "jest --coverage",
18
- "postinstall": "sh init-githooks.sh 2>/dev/null || :",
19
18
  "release:minor": "standard-version --release-as minor",
20
19
  "release:patch": "standard-version --release-as patch",
21
20
  "release:major": "standard-version --release-as major"
@@ -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.9'
26
+ s.dependency 'SCGateway', '3.1.19'
27
27
  end
28
28
 
@@ -1,6 +1,7 @@
1
1
  import { NativeModules } from "react-native";
2
2
  import { ENV } from "./constants";
3
3
  import { safeObject } from "./util";
4
+ import { version } from "../package.json";
4
5
  const { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;
5
6
 
6
7
  /**
@@ -34,6 +35,8 @@ let defaultBrokerList = [];
34
35
  const setConfigEnvironment = async (envConfig) => {
35
36
  const safeConfig = safeObject(envConfig);
36
37
 
38
+ await SmallcaseGatewayNative.setHybridSdkVersion(version);
39
+
37
40
  const {
38
41
  brokerList,
39
42
  gatewayName,
@@ -136,20 +139,6 @@ const triggerLeadGen = (userDetails, utmParams) => {
136
139
  return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm);
137
140
  };
138
141
 
139
- // /**
140
- // * triggers the lead gen flow
141
- // *
142
- // * @param {userDetails} [userDetails]
143
- // * @param {Object} [utmParams]
144
- // * * @returns {Promise}
145
- // */
146
- // const triggerLeadGen = async (userDetails, utmParams) => {
147
- // const safeParams = safeObject(userDetails);
148
- // const safeUtm = safeObject(utmParams);
149
-
150
- // return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm)
151
- // }
152
-
153
142
  /**
154
143
  * triggers the lead gen flow
155
144
  *
@@ -173,6 +162,15 @@ const archiveSmallcase = async (iscid) => {
173
162
  return SmallcaseGatewayNative.archiveSmallcase(safeIscid);
174
163
  };
175
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
+
176
174
  const SmallcaseGateway = {
177
175
  init,
178
176
  logoutUser,
@@ -181,7 +179,8 @@ const SmallcaseGateway = {
181
179
  archiveSmallcase,
182
180
  triggerTransaction,
183
181
  setConfigEnvironment,
184
- launchSmallplug
182
+ launchSmallplug,
183
+ getSdkVersion
185
184
  };
186
185
 
187
186
  export default SmallcaseGateway;