From d614937b5bfcce90e069ca092b38567205aa96eb Mon Sep 17 00:00:00 2001 From: Peteranny Date: Mon, 9 Dec 2024 01:38:55 +0800 Subject: [PATCH] remove ERROR_CODE --- src/actions/auth.js | 59 +++++++++-------- .../InterviewForm/TypeForm/index.js | 5 +- .../TimeSalaryForm/TypeForm.js | 5 +- .../WorkExperiencesForm/TypeForm.js | 5 +- .../common/SubmittableFormBuilder.js | 5 +- src/components/common/FormBuilder/index.js | 7 +-- src/constants/errorCode.js | 20 ------ src/constants/errorCodeMsg.js | 63 ++++++++++++------- 8 files changed, 80 insertions(+), 89 deletions(-) delete mode 100644 src/constants/errorCode.js diff --git a/src/actions/auth.js b/src/actions/auth.js index a47f47d27..95095eba0 100644 --- a/src/actions/auth.js +++ b/src/actions/auth.js @@ -7,7 +7,21 @@ import { queryMeApi } from 'apis/me'; import authStatus from 'constants/authStatus'; import { pushErrorNotificationAndRollbarAndThrowError } from 'actions/toastNotification'; import { GraphqlError } from 'utils/errors'; -import * as ERROR_CODE from 'constants/errorCode'; +import { + ER0001, + ER0002, + ER0003, + ER0004, + ER0006, + ER0009, + ER0010, + ER0011, + ER0012, + ER0013, + ER0014, + ER0015, + ER0016, +} from 'constants/errorCodeMsg'; export const SET_LOGIN = '@@auth/SET_LOGIN'; export const SET_USER = '@@auth/SET_USER'; @@ -45,7 +59,7 @@ const FBSDKLogin = FB => { */ export const loginWithFB = FBSDK => async (dispatch, getState) => { if (!FBSDK) { - dispatch(pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0001)); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0001)); } let fbLoginResponse = null; @@ -53,13 +67,11 @@ export const loginWithFB = FBSDK => async (dispatch, getState) => { // invoke FB SDK Login to get FB-issued access token fbLoginResponse = await FBSDKLogin(FBSDK); } catch (error) { - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0002, error), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0002, error)); } if (!fbLoginResponse || !fbLoginResponse.status) { - dispatch(pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0003)); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0003)); } switch (fbLoginResponse.status) { @@ -67,7 +79,7 @@ export const loginWithFB = FBSDK => async (dispatch, getState) => { return; case authStatus.NOT_AUTHORIZED: dispatch(setLogin(authStatus.NOT_AUTHORIZED)); - dispatch(pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0004)); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0004)); break; case authStatus.CONNECTED: try { @@ -79,29 +91,20 @@ export const loginWithFB = FBSDK => async (dispatch, getState) => { } catch (error) { if (error instanceof GraphqlError && error.codes) { if (error.codes[0] === 'UNAUTHENTICATED') { - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0014), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0014)); break; } else if (error.codes[0] === 'FORBIDDEN') { - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0015), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0015)); break; } } - dispatch( - pushErrorNotificationAndRollbarAndThrowError( - ERROR_CODE.ER0016, - error, - ), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0016, error)); } break; default: dispatch( pushErrorNotificationAndRollbarAndThrowError( - ERROR_CODE.ER0006, + ER0006, null, fbLoginResponse, ), @@ -122,7 +125,7 @@ export const loginWithGoogle = credentialResponse => async ( ) => { // TODO: 當登入失敗 if (!credentialResponse || !credentialResponse.credential) { - dispatch(pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0009)); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0009)); } const idToken = credentialResponse.credential; try { @@ -130,25 +133,19 @@ export const loginWithGoogle = credentialResponse => async ( if (response && response.token) { await dispatch(loginWithToken(response.token)); } else { - dispatch(pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0010)); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0010)); } } catch (error) { if (error instanceof GraphqlError && error.codes) { if (error.codes[0] === 'UNAUTHENTICATED') { - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0011), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0011)); return; } else if (error.codes[0] === 'FORBIDDEN') { - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0012), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0012)); return; } } - dispatch( - pushErrorNotificationAndRollbarAndThrowError(ERROR_CODE.ER0013, error), - ); + dispatch(pushErrorNotificationAndRollbarAndThrowError(ER0013, error)); } }; diff --git a/src/components/ShareExperience/InterviewForm/TypeForm/index.js b/src/components/ShareExperience/InterviewForm/TypeForm/index.js index 49fc74853..a84973c6f 100644 --- a/src/components/ShareExperience/InterviewForm/TypeForm/index.js +++ b/src/components/ShareExperience/InterviewForm/TypeForm/index.js @@ -9,8 +9,7 @@ import Header, { CompanyJobTitleHeader } from '../../common/TypeFormHeader'; import SubmittableFormBuilder from '../../common/SubmittableFormBuilder'; import { createInterviewExperience } from 'actions/experiences'; import { GA_CATEGORY, GA_ACTION } from 'constants/gaConstants'; -import * as ERROR_CODE from 'constants/errorCode'; -import { ERROR_CODE_MSG } from 'constants/errorCodeMsg'; +import { ER0008, ERROR_CODE_MSG } from 'constants/errorCodeMsg'; import { DATA_KEY_COMPANY_NAME, DATA_KEY_JOB_TITLE, @@ -166,7 +165,7 @@ const TypeForm = ({ open, onClose }) => { category: GA_CATEGORY.SHARE_INTERVIEW_TYPE_FORM, action: GA_ACTION.UPLOAD_FAIL, }); - const errorCode = ERROR_CODE.ER0008; + const errorCode = ER0008; rollbar.error( `[${errorCode}] ${ERROR_CODE_MSG[errorCode].internal} ${error.message}`, error, diff --git a/src/components/ShareExperience/TimeSalaryForm/TypeForm.js b/src/components/ShareExperience/TimeSalaryForm/TypeForm.js index e6dcb3f25..4c502b717 100644 --- a/src/components/ShareExperience/TimeSalaryForm/TypeForm.js +++ b/src/components/ShareExperience/TimeSalaryForm/TypeForm.js @@ -39,7 +39,7 @@ import { DATA_KEY_HAS_OVERTIME_SALARY, DATA_KEY_HAS_COMPENSATORY_DAYOFF, } from '../constants'; -import { ERROR_CODE_MSG } from 'constants/errorCodeMsg'; +import { ER0007, ERROR_CODE_MSG } from 'constants/errorCodeMsg'; import { evolve } from '../utils'; import { generateTabURL, pageType, tabType } from 'constants/companyJobTitle'; @@ -53,7 +53,6 @@ import { getUserPseudoId } from 'utils/GAUtils'; import rollbar from 'utils/rollbar'; import { GA_MEASUREMENT_ID } from '../../../config'; -import * as ERROR_CODE from 'constants/errorCode'; const header =
; @@ -168,7 +167,7 @@ const TypeForm = ({ open, onClose, hideProgressBar = false }) => { : GA_CATEGORY.SHARE_TIME_SALARY_TYPE_FORM, action: GA_ACTION.UPLOAD_FAIL, }); - const errorCode = ERROR_CODE.ER0007; + const errorCode = ER0007; rollbar.error( `[${errorCode}] ${ERROR_CODE_MSG[errorCode].internal} ${error.message}`, error, diff --git a/src/components/ShareExperience/WorkExperiencesForm/TypeForm.js b/src/components/ShareExperience/WorkExperiencesForm/TypeForm.js index 80e962f4e..7c8c47879 100644 --- a/src/components/ShareExperience/WorkExperiencesForm/TypeForm.js +++ b/src/components/ShareExperience/WorkExperiencesForm/TypeForm.js @@ -37,8 +37,7 @@ import { tabType } from '../../../constants/companyJobTitle'; import { createWorkExperienceWithRating } from 'actions/experiences'; import { transferKeyToSnakecase } from 'utils/objectUtil'; import { GA_CATEGORY, GA_ACTION } from 'constants/gaConstants'; -import * as ERROR_CODE from 'constants/errorCode'; -import { ERROR_CODE_MSG } from 'constants/errorCodeMsg'; +import { ER0020, ERROR_CODE_MSG } from 'constants/errorCodeMsg'; import { sendEvent } from 'utils/hotjarUtil'; import rollbar from 'utils/rollbar'; @@ -140,7 +139,7 @@ const TypeForm = ({ open, onClose, hideProgressBar = false }) => { category: GA_CATEGORY.SHARE_WORK, action: GA_ACTION.UPLOAD_FAIL, }); - const errorCode = ERROR_CODE.ER0020; + const errorCode = ER0020; rollbar.error( `[${errorCode}] ${ERROR_CODE_MSG[errorCode].internal} ${error.message}`, error, diff --git a/src/components/ShareExperience/common/SubmittableFormBuilder.js b/src/components/ShareExperience/common/SubmittableFormBuilder.js index 0d38df01c..bd5fd59c5 100644 --- a/src/components/ShareExperience/common/SubmittableFormBuilder.js +++ b/src/components/ShareExperience/common/SubmittableFormBuilder.js @@ -10,8 +10,7 @@ import ConfirmModal from 'common/FormBuilder/Modals/ConfirmModal'; import Footer from './TypeFormFooter'; import { useExperienceCount, useSalaryWorkTimeCount } from 'hooks/useCount'; import rollbar from 'utils/rollbar'; -import * as ERROR_CODE from 'constants/errorCode'; -import { ERROR_CODE_MSG } from 'constants/errorCodeMsg'; +import { ER0018, ERROR_CODE_MSG } from 'constants/errorCodeMsg'; const SubmittableTypeForm = ({ open, @@ -39,7 +38,7 @@ const SubmittableTypeForm = ({ setSubmittedDraft(draft); setSubmitStatus('success'); } catch (error) { - const errorCode = ERROR_CODE.ER0018; + const errorCode = ER0018; rollbar.error( `[${errorCode}] ${ERROR_CODE_MSG[errorCode].internal} ${error}`, error, diff --git a/src/components/common/FormBuilder/index.js b/src/components/common/FormBuilder/index.js index 00f10f46a..7e1f34457 100644 --- a/src/components/common/FormBuilder/index.js +++ b/src/components/common/FormBuilder/index.js @@ -24,8 +24,7 @@ import AnimatedPager from './AnimatedPager'; import styles from './FormBuilder.module.css'; import { OptionPropType } from './QuestionBuilder/Checkbox/PropTypes'; import rollbar from 'utils/rollbar'; -import * as ERROR_CODE from 'constants/errorCode'; -import { ERROR_CODE_MSG } from 'constants/errorCodeMsg'; +import { ER0019, ER0021, ERROR_CODE_MSG } from 'constants/errorCodeMsg'; import { useDispatch } from 'react-redux'; import { pushErrorNotificationAndRollbar } from 'actions/toastNotification'; @@ -124,11 +123,11 @@ const FormBuilder = ({ if (warning) { if (onValidateFail) onValidateFail({ dataKey, value: draft[dataKey], warning }); - else dispatch(pushErrorNotificationAndRollbar(ERROR_CODE.ER0021)); + else dispatch(pushErrorNotificationAndRollbar(ER0021)); } else if (isSubmittable) { onSubmit(draft); } else { - const errorCode = ERROR_CODE.ER0019; + const errorCode = ER0019; rollbar.error( `[${errorCode}] ${ERROR_CODE_MSG[errorCode].internal}`, null, diff --git a/src/constants/errorCode.js b/src/constants/errorCode.js deleted file mode 100644 index a3f3a7898..000000000 --- a/src/constants/errorCode.js +++ /dev/null @@ -1,20 +0,0 @@ -export const ER0001 = 'ER0001'; -export const ER0002 = 'ER0002'; -export const ER0003 = 'ER0003'; -export const ER0004 = 'ER0004'; -export const ER0005 = 'ER0005'; -export const ER0006 = 'ER0006'; -export const ER0007 = 'ER0007'; -export const ER0008 = 'ER0008'; -export const ER0009 = 'ER0009'; -export const ER0010 = 'ER0010'; -export const ER0011 = 'ER0011'; -export const ER0012 = 'ER0012'; -export const ER0013 = 'ER0013'; -export const ER0014 = 'ER0014'; -export const ER0015 = 'ER0015'; -export const ER0016 = 'ER0016'; -export const ER0018 = 'ER0018'; -export const ER0019 = 'ER0019'; -export const ER0020 = 'ER0020'; -export const ER0021 = 'ER0021'; diff --git a/src/constants/errorCodeMsg.js b/src/constants/errorCodeMsg.js index d9c28c301..d66a8ddf5 100644 --- a/src/constants/errorCodeMsg.js +++ b/src/constants/errorCodeMsg.js @@ -1,89 +1,108 @@ -import * as ERROR_CODE from './errorCode'; - const LOGIN_ERROR_MSG = '登入時發生錯誤,請再重試一次。若錯誤持續發生,請聯繫 findyourgoodjob@gmail.com'; const LOGIN_ERROR_MSG_CLEAN_BROWSER_DATA = '登入時發生錯誤,請清除瀏覽器資料,再重試一次。若錯誤持續發生,請聯繫 findyourgoodjob@gmail.com'; +export const ER0001 = 'ER0001'; +export const ER0002 = 'ER0002'; +export const ER0003 = 'ER0003'; +export const ER0004 = 'ER0004'; +export const ER0005 = 'ER0005'; +export const ER0006 = 'ER0006'; +export const ER0007 = 'ER0007'; +export const ER0008 = 'ER0008'; +export const ER0009 = 'ER0009'; +export const ER0010 = 'ER0010'; +export const ER0011 = 'ER0011'; +export const ER0012 = 'ER0012'; +export const ER0013 = 'ER0013'; +export const ER0014 = 'ER0014'; +export const ER0015 = 'ER0015'; +export const ER0016 = 'ER0016'; +export const ER0018 = 'ER0018'; +export const ER0019 = 'ER0019'; +export const ER0020 = 'ER0020'; +export const ER0021 = 'ER0021'; + // maintain a list of global error code export const ERROR_CODE_MSG = { - [ERROR_CODE.ER0001]: { + [ER0001]: { external: LOGIN_ERROR_MSG, internal: 'FB SDK is not ready', }, - [ERROR_CODE.ER0002]: { + [ER0002]: { external: LOGIN_ERROR_MSG, internal: 'FB SDK login failed', }, - [ERROR_CODE.ER0003]: { + [ER0003]: { external: LOGIN_ERROR_MSG, internal: 'FB login response is empty or does not have status field', }, - [ERROR_CODE.ER0004]: { + [ER0004]: { external: LOGIN_ERROR_MSG, internal: 'FB login failed: unauthorized', }, - [ERROR_CODE.ER0005]: { + [ER0005]: { external: LOGIN_ERROR_MSG, internal: 'Graphql mutation facebookLogin failed', }, - [ERROR_CODE.ER0006]: { + [ER0006]: { external: LOGIN_ERROR_MSG_CLEAN_BROWSER_DATA, internal: 'FB login failed: unknown auth status', }, - [ERROR_CODE.ER0007]: { + [ER0007]: { internal: 'Submit salary failed', }, - [ERROR_CODE.ER0008]: { + [ER0008]: { internal: 'Submit interview failed', }, - [ERROR_CODE.ER0009]: { + [ER0009]: { external: LOGIN_ERROR_MSG, internal: 'Cannot get id_token from Google auth API', }, - [ERROR_CODE.ER0010]: { + [ER0010]: { external: LOGIN_ERROR_MSG, internal: 'Cannot get token from Graphql googleLogin mutation response', }, - [ERROR_CODE.ER0011]: { + [ER0011]: { external: LOGIN_ERROR_MSG, internal: 'Graphql googleLogin mutation API failed with codes=UNAUTHENTICATED', }, - [ERROR_CODE.ER0012]: { + [ER0012]: { external: LOGIN_ERROR_MSG, internal: 'Graphql googleLogin mutation API failed with codes=FORBIDDEN, probably this user is deactivated', }, - [ERROR_CODE.ER0013]: { + [ER0013]: { external: LOGIN_ERROR_MSG, internal: 'Unknown error during Graphql googleLogin mutation', }, - [ERROR_CODE.ER0014]: { + [ER0014]: { external: LOGIN_ERROR_MSG, internal: 'Graphql facebookLogin mutation API failed with codes=UNAUTHENTICATED', }, - [ERROR_CODE.ER0015]: { + [ER0015]: { external: LOGIN_ERROR_MSG, internal: 'Graphql facebookLogin mutation API failed with codes=FORBIDDEN, probably this user is deactivated', }, - [ERROR_CODE.ER0016]: { + [ER0016]: { external: LOGIN_ERROR_MSG, internal: 'Unknown error during Graphql facebookLogin mutation', }, - [ERROR_CODE.ER0018]: { + [ER0018]: { internal: 'Unexpected error during submitting form data', }, - [ERROR_CODE.ER0019]: { + [ER0019]: { internal: 'Not submittable', }, - [ERROR_CODE.ER0020]: { + [ER0020]: { internal: 'Submit work experience failed', }, - [ERROR_CODE.ER0021]: { + [ER0021]: { internal: 'Warning without validation failure', }, };