Skip to content

Commit d2a7677

Browse files
committed
feat: Add a bridge for getPlacement method
1 parent f507f71 commit d2a7677

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

ios/QubitSDKModule/QubitSDKModule.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,15 @@ @interface RCT_EXTERN_REMAP_MODULE(QubitSDK, QubitSDKModule, NSObject)
2828
resolver:(RCTPromiseResolveBlock) resolver
2929
rejecter:(RCTPromiseRejectBlock) rejecter)
3030
RCT_EXTERN_METHOD(experienceShown:(NSString *) callback)
31+
RCT_EXTERN_METHOD(getPlacement:
32+
(NSString *) placementId
33+
mode:(NSString *) mode
34+
attributes:(NSString *) attributes
35+
campaignId:(NSString *) campaignId
36+
experienceId:(NSString *) experienceId
37+
resolver:(RCTPromiseResolveBlock) resolver
38+
rejecter:(RCTPromiseRejectBlock) rejecter)
39+
RCT_EXTERN_METHOD(placementImpression:(NSString *) callback)
40+
RCT_EXTERN_METHOD(placementClickthrough:(NSString *) callback)
3141

3242
@end

ios/QubitSDKModule/QubitSDKModule.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,30 @@ class QubitSDKModule: NSObject {
6161
func experienceShown(callback: String) {
6262
QBExperienceEntityCallback(callback: callback).shown()
6363
}
64+
65+
@objc(getPlacement:mode:attributes:campaignId:experienceId:resolver:rejecter:)
66+
func getPlacement(placementId: String, mode: String, attributes: String, campaignId: String, experienceId: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
67+
QubitSDK.getPlacement(with: placementId,
68+
mode: mode,
69+
attributes: attributes,
70+
campaignId: campaignId,
71+
experienceId: experienceId,
72+
onSuccess: { result in
73+
resolver( result )
74+
}, onError: { error in
75+
rejecter("Error", "QubitSDKModule: getPlacement failed.", error)
76+
})
77+
}
78+
79+
@objc(placementImpression:)
80+
func placementImpression(callback: String) {
81+
QBPlacementEntityCallback(impressionUrl: callback).impression()
82+
}
83+
84+
@objc(placementClickthrough:)
85+
func placementClickthrough(callback: String) {
86+
QBPlacementEntityCallback(clickthroughUrl: callback).clickthrough()
87+
}
6488

6589
@objc
6690
static func requiresMainQueueSetup() -> Bool {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "qubit-sdk-react-native",
3-
"version": "1.0.7",
3+
"version": "1.0.11",
44
"description": "React Native bridge for using native Qubit SDK libraries on iOS and Android",
55
"main": "./dist/index.js",
66
"types": "./dist/index.d.ts",

qubit-sdk-react-native.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ Pod::Spec.new do |s|
2121

2222
s.dependency "React"
2323
s.dependency "QubitSDK"
24-
s.swift_versions = ['4.0', '4.1', '4.2', '5.0']
24+
s.swift_versions = ['4.0', '4.1', '4.2', '5.0', '5.1', '5.2', '5.3']
2525
end

0 commit comments

Comments
 (0)