saleor-dashboard/src/utils/errors/account.ts
2020-07-07 12:14:12 +02:00

71 lines
2.3 KiB
TypeScript

import { AccountErrorFragment } from "@saleor/fragments/types/AccountErrorFragment";
import { commonMessages } from "@saleor/intl";
import { AccountErrorCode } from "@saleor/types/globalTypes";
import { defineMessages, IntlShape } from "react-intl";
import commonErrorMessages from "./common";
const messages = defineMessages({
invalidPassword: {
defaultMessage: "Invalid password"
},
outOfScopeGroup: {
defaultMessage: "Group is out of your permission scope"
},
outOfScopeUser: {
defaultMessage: "User is out of your permissions scope"
},
passwordNumeric: {
defaultMessage: "Password cannot be entirely numeric"
},
tooCommon: {
defaultMessage: "This password is too commonly used"
},
tooShort: {
defaultMessage: "This password is too short"
},
tooSimilar: {
defaultMessage: "These passwords are too similar"
},
unique: {
defaultMessage: "This needs to be unique"
}
});
function getAccountErrorMessage(
err: AccountErrorFragment,
intl: IntlShape
): string {
if (err) {
switch (err.code) {
case AccountErrorCode.GRAPHQL_ERROR:
return intl.formatMessage(commonErrorMessages.graphqlError);
case AccountErrorCode.INVALID:
return intl.formatMessage(commonErrorMessages.invalid);
case AccountErrorCode.INVALID_PASSWORD:
return intl.formatMessage(messages.invalidPassword);
case AccountErrorCode.OUT_OF_SCOPE_USER:
return intl.formatMessage(messages.outOfScopeUser);
case AccountErrorCode.OUT_OF_SCOPE_GROUP:
return intl.formatMessage(messages.outOfScopeGroup);
case AccountErrorCode.PASSWORD_ENTIRELY_NUMERIC:
return intl.formatMessage(messages.passwordNumeric);
case AccountErrorCode.PASSWORD_TOO_COMMON:
return intl.formatMessage(messages.tooCommon);
case AccountErrorCode.PASSWORD_TOO_SHORT:
return intl.formatMessage(messages.tooShort);
case AccountErrorCode.PASSWORD_TOO_SIMILAR:
return intl.formatMessage(messages.tooSimilar);
case AccountErrorCode.REQUIRED:
return intl.formatMessage(commonMessages.requiredField);
case AccountErrorCode.UNIQUE:
return intl.formatMessage(messages.unique);
default:
return intl.formatMessage(commonErrorMessages.unknownError);
}
}
return undefined;
}
export default getAccountErrorMessage;