Files
frontend-app-authn/src/register/data/sagas.js
Zainab Amir fa3a70e9a9 Revert "feat: fire identify call and register event" (#953)
* Revert "feat: fire identify call and register event (#951)
2023-06-22 11:59:22 +05:00

59 lines
1.8 KiB
JavaScript

import { camelCaseObject } from '@edx/frontend-platform';
import { logError, logInfo } from '@edx/frontend-platform/logging';
import { call, put, takeEvery } from 'redux-saga/effects';
import {
fetchRealtimeValidationsBegin,
fetchRealtimeValidationsFailure,
fetchRealtimeValidationsSuccess,
REGISTER_FORM_VALIDATIONS,
REGISTER_NEW_USER,
registerNewUserBegin,
registerNewUserFailure,
registerNewUserSuccess,
} from './actions';
import { INTERNAL_SERVER_ERROR } from './constants';
import { getFieldsValidations, registerRequest } from './service';
export function* handleNewUserRegistration(action) {
try {
yield put(registerNewUserBegin());
const { redirectUrl, success } = yield call(registerRequest, action.payload.registrationInfo);
yield put(registerNewUserSuccess(
redirectUrl,
success,
));
} catch (e) {
const statusCodes = [400, 403, 409];
if (e.response && statusCodes.includes(e.response.status)) {
yield put(registerNewUserFailure(camelCaseObject(e.response.data)));
logInfo(e);
} else {
yield put(registerNewUserFailure({ errorCode: INTERNAL_SERVER_ERROR }));
logError(e);
}
}
}
export function* fetchRealtimeValidations(action) {
try {
yield put(fetchRealtimeValidationsBegin());
const { fieldValidations } = yield call(getFieldsValidations, action.payload.formPayload);
yield put(fetchRealtimeValidationsSuccess(camelCaseObject(fieldValidations)));
} catch (e) {
if (e.response && e.response.status === 403) {
yield put(fetchRealtimeValidationsFailure());
logInfo(e);
} else {
logError(e);
}
}
}
export default function* saga() {
yield takeEvery(REGISTER_NEW_USER.BASE, handleNewUserRegistration);
yield takeEvery(REGISTER_FORM_VALIDATIONS.BASE, fetchRealtimeValidations);
}