react-native-lightspeedsdk
Version:
A react-native interface for using the LightspeedSDK
110 lines (90 loc) • 3.27 kB
JavaScript
const NativeUserCoordinator = require('react-native').NativeModules.LSUserCoordinator;
import {NativeEventEmitter} from 'react-native';
import Booster from './models/Booster';
import PanelistAchievementHistory from './models/PanelistAchievementHistory';
import PanelistAchievementSummary from './models/PanelistAchievementSummary';
import Opportunities from './models/Opportunities';
import UserProfile from './models/UserProfile';
import UpdateProfileRequest from './models/UpdateProfileRequest';
import HitOrMissInfo from './models/HitOrMissInfo';
const UserEventEmitter = new NativeEventEmitter(NativeUserCoordinator);
module.exports = {
addProfileUpdateListener(listener: Function){
return UserEventEmitter.addListener(NativeUserCoordinator.UserUpdatedNotification, listener);
},
removeProfileUpdateListener(listener: Function) {
UserEventEmitter.removeListener(NativeUserCoordinator.UserUpdatedNotification, listener);
},
getBoosterInfo(): Promise<?Booster> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getBoosterInfo().then((map) => {
if (map) {
resolve(new Booster(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
getAchievementHistory(): Promise<?PanelistAchievementHistory> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getAchievementHistory().then((map) => {
if (map) {
resolve(new PanelistAchievementHistory(map));
} else {
resolve(null);
}
}).catch(error => reject(error));;
});
},
getAchievementSummary(): Promise<?PanelistAchievementSummary> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getAchievementSummary().then((map) => {
if (map) {
resolve(new PanelistAchievementSummary(map));
} else {
resolve(null);
}
}).catch(error => reject(error));;
});
},
getOpportunities(locationEnabled: bool): Promise<?PanelistAchievementSummary> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getOpportunities(locationEnabled).then((map) => {
if (map) {
resolve(new Opportunities(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
getPanelistProfile(): Promise<?UserProfile> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getPanelistProfile().then((map) => {
if (map) {
resolve(new UserProfile(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
updatePanelistProfile(request: UpdateProfileRequest): Promise<?Object> {
return NativeUserCoordinator.updatePanelistProfile(request);
},
perksLogin(totalPoints): Promise<?Object> {
return NativeUserCoordinator.perksLogin(totalPoints);
},
getHitOrMissInfo(): Promise<?HitOrMissInfo> {
return new Promise((resolve, reject) => {
NativeUserCoordinator.getHitOrMissInfo().then((map) => {
if (map) {
resolve(new HitOrMissInfo(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
};