mychips-react-sdk
Version:
MyChips Offerwall
118 lines • 3.39 kB
JavaScript
import AsyncStorage from '@react-native-async-storage/async-storage';
export class UserService {
static USER_ID_KEY = 'user_id';
static ADVERTISING_ID_KEY = 'advertising_id';
static GENDER_KEY = 'gender';
static AGE_KEY = 'age';
static EMAIL_KEY = 'email';
static CURRENCY_KEY = 'partner_virtual_currency';
async setId(userId) {
try {
await AsyncStorage.setItem(UserService.USER_ID_KEY, userId);
} catch (error) {
console.error('Failed to set user ID', error);
}
}
async getOrCreateId() {
try {
let userId = await AsyncStorage.getItem(UserService.USER_ID_KEY);
if (!userId) {
userId = this.generateUUID();
await this.setId(userId);
}
return userId;
} catch (error) {
console.error('Failed to get or create user ID', error);
throw error;
}
}
async setAdvertisingId(advertisingId) {
try {
await AsyncStorage.setItem(UserService.ADVERTISING_ID_KEY, advertisingId);
} catch (error) {
console.error('Failed to set advertising ID', error);
}
}
async getAdvertisingId() {
try {
const advertisingId = await AsyncStorage.getItem(UserService.ADVERTISING_ID_KEY);
return advertisingId || '';
} catch (error) {
console.error('Failed to get advertising ID', error);
return '';
}
}
async setAge(age) {
try {
await AsyncStorage.setItem(UserService.AGE_KEY, age.toString());
} catch (error) {
console.error('Failed to set age', error);
}
}
async getAge() {
try {
const age = await AsyncStorage.getItem(UserService.AGE_KEY);
return age ? parseInt(age, 10) : -1;
} catch (error) {
console.error('Failed to get age', error);
return -1;
}
}
async setGender(gender) {
try {
await AsyncStorage.setItem(UserService.GENDER_KEY, gender.toString());
} catch (error) {
console.error('Failed to set gender', error);
}
}
async getGender() {
try {
const gender = await AsyncStorage.getItem(UserService.GENDER_KEY);
return gender || '';
} catch (error) {
console.error('Failed to get gender', error);
return '';
}
}
async setEmail(email) {
try {
await AsyncStorage.setItem(UserService.EMAIL_KEY, email);
} catch (error) {
console.error('Failed to set email', error);
}
}
async getEmail() {
try {
const email = await AsyncStorage.getItem(UserService.EMAIL_KEY);
return email || '';
} catch (error) {
console.error('Failed to get email', error);
return '';
}
}
async setCurrentTotalCurrency(vc) {
try {
await AsyncStorage.setItem(UserService.CURRENCY_KEY, vc.toString());
} catch (error) {
console.error('Failed to set currency', error);
}
}
async getCurrentTotalCurrency() {
try {
const currency = await AsyncStorage.getItem(UserService.CURRENCY_KEY);
return currency ? parseFloat(currency) : -1;
} catch (error) {
console.error('Failed to get currency', error);
return -1;
}
}
generateUUID() {
// Generate a simple UUID
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
const r = Math.random() * 16 | 0;
const v = c === 'x' ? r : r & 0x3 | 0x8;
return v.toString(16);
});
}
}
//# sourceMappingURL=UserService.js.map