react-native-lightspeedsdk
Version:
A react-native interface for using the LightspeedSDK
122 lines (103 loc) • 4.17 kB
JavaScript
const NativeSurveyCoordinator = require('react-native').NativeModules.LSSurveyCoordinator;
import Survey from './models/Survey';
import LocationSurvey from './models/LocationSurvey';
import SurveyInfo from './models/SurveyInfo';
import SurveyStart from './models/SurveyStart';
import SurveyActivity from './models/SurveyActivity';
import type {SurveyStatus, SurveyType} from './enums';
module.exports = {
getSurveys(): Promise<?Array<Survey>> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.getSurveys().then((surveyMaps)=> {
let transformAchievements = function (surveyMap) {
return new Survey(surveyMap);
}
let surveys = surveyMaps.map(transformAchievements);
resolve(surveys);
}).catch(error => reject(error));
});
},
getSurveysUsingCoordinates(latitude: number, longitude): Promise<?Array<Survey>> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.getSurveysUsingCoordinates(latitude, longitude).then((surveyMaps)=> {
let transformAchievements = function (surveyMap) {
return new Survey(surveyMap);
}
let surveys = surveyMaps.map(transformAchievements);
resolve(surveys);
}).catch(error => reject(error));
});
},
validatedSurveyStart(surveyId: number, latitude: number, longitude: number, geoLocationId: number): Promise<?SurveyStart> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.validatedSurveyStart(surveyId, latitude, longitude, geoLocationId).then((map)=> {
if (map) {
resolve(new SurveyStart(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
locationSurveyStart(surveyId: number, latitude: number, longitude: number): Promise<?SurveyStart> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.locationSurveyStart(surveyId, latitude, longitude).then((map)=> {
if (map) {
resolve(new SurveyStart(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
surveyStart(surveyId: number): Promise<?SurveyStart> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.surveyStart(surveyId).then((map)=> {
if (map) {
resolve(new SurveyStart(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
surveyComplete(surveyStartTrackId: number, surveyStatus: SurveyStatus): Promise<?Object> {
return NativeSurveyCoordinator.surveyComplete(surveyStartTrackId, surveyStatus);
},
reserveSurvey(survey: Survey): Promise<?ReserveSurvey> {
return NativeSurveyCoordinator.reserveSurvey(survey);
},
getLocationSurveys(latitude: number, longitude:number, surveyType:SurveyType, boundingBox:number, maxResults:number): Promise<?Array<LocationSurvey>> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.getLocationSurveys(latitude, longitude, surveyType, boundingBox, maxResults).then((surveyMaps)=> {
let transformSurveys = function (surveyMap) {
return new LocationSurvey(surveyMap);
}
let surveys = surveyMaps.map(transformSurveys);
resolve(surveys);
}).catch(error => reject(error));
});
},
getSurveyInfo(surveyId: number): Promise<?SurveyInfo> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.getSurveyInfo(surveyId).then((map)=> {
if (map) {
resolve(new SurveyInfo(map));
} else {
resolve(null);
}
}).catch(error => reject(error));
});
},
getSurveyActivity(): Promise<?Array<SurveyActivity>> {
return new Promise((resolve, reject) => {
NativeSurveyCoordinator.getSurveyActivity().then((maps)=> {
let transformer = function (activityMap) {
return new SurveyActivity(activityMap);
}
let surveyActivities= maps.map(transformer);
resolve(surveyActivities);
}).catch(error => reject(error));
});
},
};