chore: Adjust Chatwoot Config to deploy frontend as a separate app (#2347)

This commit is contained in:
Pranav Raj S
2021-05-28 19:21:16 +05:30
committed by GitHub
parent 3b39eb3e33
commit 25ba852b68
16 changed files with 53 additions and 60 deletions

View File

@@ -2,31 +2,35 @@
<loading-state :message="$t('CONFIRM_EMAIL')"></loading-state>
</template>
<script>
/* eslint-disable */
import LoadingState from '../../components/widgets/LoadingState';
import Auth from '../../api/auth';
import { DEFAULT_REDIRECT_URL } from '../../constants';
export default {
props: {
confirmationToken: String,
redirectUrl: String,
config: String,
},
components: {
LoadingState,
},
props: {
confirmationToken: {
type: String,
default: '',
},
},
mounted() {
this.confirmToken();
},
methods: {
confirmToken() {
Auth.verifyPasswordToken({
confirmationToken: this.confirmationToken
}).then(res => {
window.location = res.data.redirect_url;
}).catch(res => {
window.location = '/';
});
}
}
}
async confirmToken() {
try {
const {
data: { redirect_url: redirectURL },
} = await Auth.verifyPasswordToken({
confirmationToken: this.confirmationToken,
});
window.location = redirectURL;
} catch (error) {
window.location = DEFAULT_REDIRECT_URL;
}
},
},
};
</script>

View File

@@ -46,12 +46,11 @@
</template>
<script>
/* global bus */
import { required, minLength } from 'vuelidate/lib/validators';
import Auth from '../../api/auth';
import WootSubmitButton from '../../components/buttons/FormSubmitButton';
import { DEFAULT_REDIRECT_URL } from '../../constants';
export default {
components: {
@@ -81,7 +80,7 @@ export default {
// If url opened without token
// redirect to login
if (!this.resetPasswordToken) {
window.location = '/';
window.location = DEFAULT_REDIRECT_URL;
}
},
validations: {
@@ -118,7 +117,7 @@ export default {
Auth.setNewPassword(credentials)
.then(res => {
if (res.status === 200) {
window.location = '/';
window.location = DEFAULT_REDIRECT_URL;
}
})
.catch(() => {

View File

@@ -30,7 +30,6 @@
<script>
import { required, minLength, email } from 'vuelidate/lib/validators';
import Auth from '../../api/auth';
import { frontendURL } from '../../helper/URLHelper';
export default {
data() {
@@ -71,7 +70,6 @@ export default {
successMessage = res.data.message;
}
this.showAlert(successMessage);
window.location = frontendURL('login');
})
.catch(error => {
let errorMessage = this.$t('RESET_PASSWORD.API.ERROR_MESSAGE');

View File

@@ -79,6 +79,7 @@ import Auth from '../../api/auth';
import { mapGetters } from 'vuex';
import globalConfigMixin from 'shared/mixins/globalConfigMixin';
import alertMixin from 'shared/mixins/alertMixin';
import { DEFAULT_REDIRECT_URL } from '../../constants';
export default {
mixins: [globalConfigMixin, alertMixin],
@@ -132,7 +133,7 @@ export default {
try {
const response = await Auth.register(this.credentials);
if (response.status === 200) {
window.location = '/';
window.location = DEFAULT_REDIRECT_URL;
}
} catch (error) {
let errorMessage = this.$t('REGISTER.API.ERROR_MESSAGE');

View File

@@ -49,7 +49,6 @@
</template>
<script>
/* global bus */
/* eslint no-console: 0 */
import { required, minLength } from 'vuelidate/lib/validators';

View File

@@ -44,7 +44,6 @@
</template>
<script>
/* global bus */
import { required, url, minLength } from 'vuelidate/lib/validators';
import WootSubmitButton from '../../../../components/buttons/FormSubmitButton';

View File

@@ -1,4 +1,3 @@
/* eslint no-console: 0 */
import VueRouter from 'vue-router';
import auth from '../api/auth';
@@ -7,14 +6,13 @@ import dashboard from './dashboard/dashboard.routes';
import authRoute from './auth/auth.routes';
import { frontendURL } from '../helper/URLHelper';
const loggedInUser = auth.getCurrentUser() || {};
const routes = [
...login.routes,
...dashboard.routes,
...authRoute.routes,
{
path: '/',
redirect: frontendURL(`accounts/${loggedInUser.account_id}/dashboard`),
redirect: '/app',
},
];
@@ -41,10 +39,7 @@ const generateRoleWiseRoute = route => {
// returns an object with roles as keys and routeArr as values
generateRoleWiseRoute(routes);
export const router = new VueRouter({
mode: 'history',
routes, // short for routes: routes
});
export const router = new VueRouter({ mode: 'history', routes });
const unProtectedRoutes = ['login', 'auth_signup', 'auth_reset_password'];
@@ -117,7 +112,10 @@ const validateRouteAccess = (to, from, next) => {
router.beforeEach((to, from, next) => {
if (!to.name) {
const user = auth.getCurrentUser();
return next(frontendURL(`accounts/${user.account_id}/dashboard`));
if (user) {
return next(frontendURL(`accounts/${user.account_id}/dashboard`));
}
return next('/app/login');
}
return validateRouteAccess(to, from, next);

View File

@@ -13,10 +13,6 @@ jest.mock('./login/login.routes', () => ({
}));
jest.mock('../constants', () => {
return {
APP_BASE_URL: '/',
get apiUrl() {
return `${this.APP_BASE_URL}/`;
},
GRAVATAR_URL: 'https://www.gravatar.com/avatar',
CHANNELS: {
FACEBOOK: 'facebook',