Restructure omni services and add Chatwoot research snapshot
This commit is contained in:
6
research/chatwoot/app/javascript/v3/api/apiClient.js
Normal file
6
research/chatwoot/app/javascript/v3/api/apiClient.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const { apiHost = '' } = window.chatwootConfig || {};
|
||||
const wootAPI = axios.create({ baseURL: `${apiHost}/` });
|
||||
|
||||
export default wootAPI;
|
||||
97
research/chatwoot/app/javascript/v3/api/auth.js
Normal file
97
research/chatwoot/app/javascript/v3/api/auth.js
Normal file
@@ -0,0 +1,97 @@
|
||||
import {
|
||||
setAuthCredentials,
|
||||
throwErrorMessage,
|
||||
clearLocalStorageOnLogout,
|
||||
} from 'dashboard/store/utils/api';
|
||||
import wootAPI from './apiClient';
|
||||
import {
|
||||
getLoginRedirectURL,
|
||||
getCredentialsFromEmail,
|
||||
} from '../helpers/AuthHelper';
|
||||
|
||||
export const login = async ({
|
||||
ssoAccountId,
|
||||
ssoConversationId,
|
||||
...credentials
|
||||
}) => {
|
||||
try {
|
||||
const response = await wootAPI.post('auth/sign_in', credentials);
|
||||
|
||||
// Check if MFA is required
|
||||
if (response.status === 206 && response.data.mfa_required) {
|
||||
// Return MFA data instead of throwing error
|
||||
return {
|
||||
mfaRequired: true,
|
||||
mfaToken: response.data.mfa_token,
|
||||
};
|
||||
}
|
||||
|
||||
setAuthCredentials(response);
|
||||
clearLocalStorageOnLogout();
|
||||
window.location = getLoginRedirectURL({
|
||||
ssoAccountId,
|
||||
ssoConversationId,
|
||||
user: response.data.data,
|
||||
});
|
||||
return null;
|
||||
} catch (error) {
|
||||
// Check if it's an MFA required response
|
||||
if (error.response?.status === 206 && error.response?.data?.mfa_required) {
|
||||
return {
|
||||
mfaRequired: true,
|
||||
mfaToken: error.response.data.mfa_token,
|
||||
};
|
||||
}
|
||||
throwErrorMessage(error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
export const register = async creds => {
|
||||
try {
|
||||
const { fullName, accountName } = getCredentialsFromEmail(creds.email);
|
||||
const response = await wootAPI.post('api/v1/accounts.json', {
|
||||
account_name: accountName,
|
||||
user_full_name: fullName,
|
||||
email: creds.email,
|
||||
password: creds.password,
|
||||
h_captcha_client_response: creds.hCaptchaClientResponse,
|
||||
});
|
||||
setAuthCredentials(response);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
throwErrorMessage(error);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
export const verifyPasswordToken = async ({ confirmationToken }) => {
|
||||
try {
|
||||
const response = await wootAPI.post('auth/confirmation', {
|
||||
confirmation_token: confirmationToken,
|
||||
});
|
||||
setAuthCredentials(response);
|
||||
} catch (error) {
|
||||
throwErrorMessage(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const setNewPassword = async ({
|
||||
resetPasswordToken,
|
||||
password,
|
||||
confirmPassword,
|
||||
}) => {
|
||||
try {
|
||||
const response = await wootAPI.put('auth/password', {
|
||||
reset_password_token: resetPasswordToken,
|
||||
password_confirmation: confirmPassword,
|
||||
password,
|
||||
});
|
||||
setAuthCredentials(response);
|
||||
} catch (error) {
|
||||
throwErrorMessage(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const resetPassword = async ({ email }) =>
|
||||
wootAPI.post('auth/password', { email });
|
||||
6
research/chatwoot/app/javascript/v3/api/testimonials.js
Normal file
6
research/chatwoot/app/javascript/v3/api/testimonials.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import wootConstants from 'dashboard/constants/globals';
|
||||
import wootAPI from './apiClient';
|
||||
|
||||
export const getTestimonialContent = () => {
|
||||
return wootAPI.get(wootConstants.TESTIMONIAL_URL);
|
||||
};
|
||||
Reference in New Issue
Block a user