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 +16 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/smallcase/gateway/reactnative/SmallcaseGatewayModule.kt +30 -41
- package/ios/SmallcaseGateway.m +18 -2
- package/package.json +1 -2
- package/react-native-smallcase-gateway.podspec +1 -1
- package/src/SmallcaseGateway.js +14 -15
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
|
|
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
222
|
-
|
|
223
|
-
promise.
|
|
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
|
}
|
package/ios/SmallcaseGateway.m
CHANGED
|
@@ -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.
|
|
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"
|
package/src/SmallcaseGateway.js
CHANGED
|
@@ -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;
|