Skip to content

Commit 9c17123

Browse files
Merge pull request #49 from singular-labs/feature/ULA-1722-link-shortener-impl
Feature/ula 1722 link shortener impl
2 parents d73e5b7 + 03cb3a9 commit 9c17123

File tree

6 files changed

+79
-5
lines changed

6 files changed

+79
-5
lines changed

Singular.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@ export class Singular {
3535
SingularBridge.setReactSDKVersion(SDK_NAME, SDK_VERSION);
3636
}
3737

38+
static createReferrerShortLink(baseLink, referrerName, referrerId, passthroughParams, completionHandler){
39+
let eventSubscription = this._singularNativeEmitter.addListener(
40+
'ShortLinkHandler',
41+
(res) => {
42+
eventSubscription.remove();
43+
if (completionHandler) {
44+
completionHandler(res.data, res.error && res.error.length ? res.error: undefined);
45+
}
46+
});
47+
SingularBridge.createReferrerShortLink(baseLink, referrerName, referrerId, JSON.stringify(passthroughParams));
48+
}
49+
3850
static setCustomUserId(customUserId) {
3951
SingularBridge.setCustomUserId(customUserId);
4052
}

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ repositories {
4141

4242
dependencies {
4343
implementation 'com.facebook.react:react-native:+'
44-
implementation 'com.singular.sdk:singular_sdk:12.0.5'
44+
implementation 'com.singular.sdk:singular_sdk:12.0.6'
4545
implementation 'com.android.support:support-annotations:28.0.0'
4646
}

android/src/main/java/net/singular/react_native/SingularBridgeModule.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.singular.sdk.SingularConfig;
1919
import com.singular.sdk.SingularLinkHandler;
2020
import com.singular.sdk.SingularLinkParams;
21+
import com.singular.sdk.ShortLinkHandler;
2122

2223
import org.json.JSONArray;
2324
import org.json.JSONException;
@@ -317,4 +318,49 @@ public static void onNewIntent(Intent intent) {
317318
Singular.init(reactContext, config);
318319
}
319320
}
321+
322+
323+
324+
@ReactMethod
325+
public void createReferrerShortLink(String baseLink,
326+
String referrerName,
327+
String referrerId,
328+
String args){
329+
330+
JSONObject params = null;
331+
try{
332+
params = new JSONObject(args);
333+
}catch (JSONException e){
334+
e.printStackTrace();
335+
}
336+
337+
Singular.createReferrerShortLink(baseLink,
338+
referrerName,
339+
referrerId,
340+
params,
341+
new ShortLinkHandler() {
342+
@Override
343+
public void onSuccess(final String link) {
344+
WritableMap params = Arguments.createMap();
345+
params.putString("data", link);
346+
params.putString("error", "");
347+
reactContext.
348+
getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
349+
.emit("ShortLinkHandler", params);
350+
351+
}
352+
353+
@Override
354+
public void onError(final String error) {
355+
WritableMap params = Arguments.createMap();
356+
params.putString("data", "");
357+
params.putString("error", error);
358+
reactContext.
359+
getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
360+
.emit("ShortLinkHandler", params);
361+
}
362+
});
363+
364+
365+
}
320366
}

ios/SingularBridge.m

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ +(void)startSessionWithUserActivity:(NSUserActivity*)userActivity{
4545
RCT_EXPORT_MODULE();
4646

4747
- (NSArray<NSString *> *)supportedEvents {
48-
return @[@"SingularLinkHandler", @"ConversionValueUpdatedHandler"];
48+
return @[@"SingularLinkHandler", @"ConversionValueUpdatedHandler", @"ShortLinkHandler"];
4949
}
5050

5151
// Init method using a json string representing the config
@@ -109,6 +109,22 @@ +(void)startSessionWithUserActivity:(NSUserActivity*)userActivity{
109109
[Singular start:singularConfig];
110110
}
111111

112+
RCT_EXPORT_METHOD(createReferrerShortLink:(NSString *)baseLink
113+
referrerName:(NSString *)referrerName
114+
referrerId:(NSString *)referrerId
115+
passthroughParams:(NSString *)args){
116+
[Singular createReferrerShortLink:baseLink
117+
referrerName:referrerName
118+
referrerId:referrerId
119+
passthroughParams:[SingularBridge jsonToDictionary:args]
120+
completionHandler:^(NSString *data, NSError *error) {
121+
[eventEmitter sendEventWithName:@"ShortLinkHandler" body:@{
122+
@"data": data? data: @"",
123+
@"error": error ? error.description: @""
124+
}];
125+
}];
126+
}
127+
112128
RCT_EXPORT_METHOD(setCustomUserId:(NSString*)customUserId){
113129
[Singular setCustomUserId:customUserId];
114130
}

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "singular-react-native",
3-
"version": "3.1.7",
3+
"version": "3.1.8",
44
"peerDependencies": {
55
"react-native": ">=0.46.4"
66
},

0 commit comments

Comments
 (0)