@stokr/components-library
Version:
STOKR - Components Library
287 lines (282 loc) • 8.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _axios = _interopRequireDefault(require("../model/axios"));
var _axios2 = _interopRequireDefault(require("axios"));
var _jsCookie = _interopRequireDefault(require("js-cookie"));
var _getCookieDomain = _interopRequireDefault(require("../utils/get-cookie-domain"));
var _firebaseConfig = require("../firebase-config");
var _auth = require("firebase/auth");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class Auth {
static setAccessToken(token) {
this.logout();
const cookieDomain = (0, _getCookieDomain.default)();
const inOneHour = 1 / 24;
cookieDomain.expires = inOneHour;
_jsCookie.default.set('STOKR_ACCESS_TOKEN', token, cookieDomain);
}
static getAccessToken() {
return _jsCookie.default.get('STOKR_ACCESS_TOKEN');
}
static logout() {
const cookieDomain = (0, _getCookieDomain.default)();
_jsCookie.default.remove('STOKR_ACCESS_TOKEN', cookieDomain);
}
static login(email, password) {
return new Promise((resolve, reject) => {
(0, _auth.signInWithEmailAndPassword)(_firebaseConfig.auth, email, password).then(userCredential => {
const user = userCredential.user;
resolve(user);
}).catch(error => {
reject(error);
});
});
}
static createUser(email, password) {
return new Promise((resolve, reject) => {
(0, _auth.createUserWithEmailAndPassword)(_firebaseConfig.auth, email, password).then(userCredential => {
// Signed in
const user = userCredential.user;
resolve(user);
}).catch(error => {
reject(error);
});
});
}
static twoFactor(data) {
return new Promise((resolve, reject) => {
_axios.default.post("auth/confirm2fa", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static resendActivationEmail(email) {
return new Promise((resolve, reject) => {
_axios.default.post("auth/resend-activation-email", {
email: email
}).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static handleVerifyEmail(actionCode, continueUrl) {
return new Promise((resolve, reject) => {
(0, _auth.applyActionCode)(_firebaseConfig.auth, actionCode).then(resp => {
// Email address has been verified.
resolve(resp);
}).catch(error => {
reject(error);
});
});
}
static handleResetPassword(actionCode, newPassword, continueUrl) {
return new Promise((resolve, reject) => {
// Verify the password reset code is valid.
(0, _auth.verifyPasswordResetCode)(_firebaseConfig.auth, actionCode).then(email => {
const accountEmail = email;
(0, _auth.confirmPasswordReset)(_firebaseConfig.auth, actionCode, newPassword).then(resp => {
// Password reset has been confirmed and new password updated.
//signInWithEmailAndPassword(accountEmail, newPassword)
resolve(accountEmail);
}).catch(error => {
// Error occurred during confirmation. The code might have expired or the
// password is too weak.
reject(error);
});
}).catch(error => {
// Invalid or expired action code. Ask user to try to reset the password
// again.
reject(error);
});
});
}
static getUser() {
return new Promise((resolve, reject) => {
_axios.default.post("user/get").then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static getFirebaseUser() {
return new Promise((resolve, reject) => {
(0, _auth.onAuthStateChanged)(_firebaseConfig.auth, user => {
if (user) {
resolve(user);
} else {
reject('User is signed out');
}
});
});
}
static refreshIdToken() {
return new Promise((resolve, reject) => {
var user = _firebaseConfig.auth.currentUser;
if (!user) reject('User not available');
user.getIdToken(true).then(idToken => {
resolve(idToken);
}).catch(error => {
reject(error);
});
});
}
static signInWithToken(token) {
return new Promise((resolve, reject) => {
(0, _auth.signInWithCustomToken)(_firebaseConfig.auth, token).then(userCredential => {
// Signed in
const user = userCredential.user;
resolve(user);
}).catch(error => {
reject(error);
});
});
}
static updateUserPassword(user, newPassword) {
return new Promise((resolve, reject) => {
(0, _auth.updatePassword)(user, newPassword).then(() => {
resolve();
}).catch(error => {
reject(error);
});
});
}
static requestUpdateEmail(data) {
return new Promise((resolve, reject) => {
_axios.default.post("user/requestUpdateEmail", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static checkPrivateInvestor(data) {
return new Promise((resolve, reject) => {
_axios.default.post("private-investor/check", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static checkIfUserSubscribed(data) {
return new Promise((resolve, reject) => {
_axios.default.post("emails/checksubscription", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static fetchTrackingUserLastTime(data) {
return new Promise((resolve, reject) => {
_axios.default.post("tracking-user/getLast", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static updateUser(data) {
return new Promise((resolve, reject) => {
_axios.default.post("user/update", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static updateFirebaseUser(user, data) {
return new Promise((resolve, reject) => {
(0, _auth.updateProfile)(user, data).then(() => {
resolve();
}).catch(error => {
reject(error);
});
});
}
static sendWelcomeEmail() {
return new Promise((resolve, reject) => {
_axios.default.post("user/welcomeEmail").then(() => {
resolve();
}).catch(err => {
reject(err);
});
});
}
static createWallet(data) {
return new Promise((resolve, reject) => {
_axios.default.post("wallets/create", data).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static uploaProofOfAddress(data, ip) {
return new Promise(async (resolve, reject) => {
_axios.default.post("https://kycdocs.stokr-staging.de/kyc/upload?ip=".concat(ip), data, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
static validateGreenWalletId(id) {
return new Promise(async (resolve, reject) => {
_axios.default.post("wallets/validate-gaid", {
gaid: id
}).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
/**
* Upload Photo
* @param data
*/
static uploadPhoto(data) {
return new Promise((resolve, reject) => {
_axios2.default.post("".concat(process.env.REACT_APP_PHOTO_API_URL, "/media/picture/create"), data, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
/**
* Delete Photo
* @param data
*/
static deletePhoto(data) {
return new Promise((resolve, reject) => {
_axios2.default.post("".concat(process.env.REACT_APP_PHOTO_API_URL, "/media/picture/delete"), data, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
resolve(response.data);
}).catch(err => {
reject(err);
});
});
}
}
var _default = exports.default = Auth;