airbridge-react-native-sdk
Version:
Airbridge SDK for React Native
138 lines • 4.04 kB
JavaScript
import { NativeModules } from 'react-native';
import { createInteractor } from '../architecture/Interactor';
import { check } from '../utility/check';
import { log } from '../utility/log';
import { checkJSONElement, createJSONElement } from '../utility/json';
export const createDependency = () => { };
createDependency.RegisterModule = () => ({
interactor: createInteractor(NativeModules.RegisterInteractor),
});
export const createRegisterModule = () => {
// create dependency
const { interactor } = createDependency.RegisterModule();
// define method
const setUserID = (id) => {
if (!check.string(id)) {
log.unmatchedType('id', 'string');
return;
}
interactor.setUserID(id);
};
const clearUserID = () => {
interactor.clearUserID();
};
const setUserEmail = (email) => {
if (!check.string(email)) {
log.unmatchedType('email', 'string');
return;
}
interactor.setUserEmail(email);
};
const clearUserEmail = () => {
interactor.clearUserEmail();
};
const setUserPhone = (phone) => {
if (!check.string(phone)) {
log.unmatchedType('phone', 'string');
return;
}
interactor.setUserPhone(phone);
};
const clearUserPhone = () => {
interactor.clearUserPhone();
};
const setUserAttribute = (key, value) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
if (check.defined(value) && !checkJSONElement(value)) {
log.nonJSONValue('value');
value = createJSONElement(value);
}
interactor.setUserAttribute({ key, value });
};
const removeUserAttribute = (key) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
interactor.removeUserAttribute(key);
};
const clearUserAttributes = () => {
interactor.clearUserAttributes();
};
const setUserAlias = (key, value) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
if (!check.string(value)) {
log.unmatchedType('value', 'string');
return;
}
interactor.setUserAlias(key, value);
};
const removeUserAlias = (key) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
interactor.removeUserAlias(key);
};
const clearUserAlias = () => {
interactor.clearUserAlias();
};
const clearUser = () => {
interactor.clearUser();
};
const setDeviceAlias = (key, value) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
if (!check.string(value)) {
log.unmatchedType('value', 'string');
return;
}
interactor.setDeviceAlias(key, value);
};
const removeDeviceAlias = (key) => {
if (!check.string(key)) {
log.unmatchedType('key', 'string');
return;
}
interactor.removeDeviceAlias(key);
};
const clearDeviceAlias = () => {
interactor.clearDeviceAlias();
};
const registerPushToken = (token) => {
if (!check.string(token)) {
log.unmatchedType('token', 'string');
return;
}
interactor.registerPushToken(token);
};
// create object
return {
setUserID,
clearUserID,
setUserEmail,
clearUserEmail,
setUserPhone,
clearUserPhone,
setUserAttribute,
removeUserAttribute,
clearUserAttributes,
setUserAlias,
removeUserAlias,
clearUserAlias,
clearUser,
setDeviceAlias,
removeDeviceAlias,
clearDeviceAlias,
registerPushToken,
};
};
//# sourceMappingURL=Register.js.map