model-layer
Version:
373 lines (339 loc) • 13.8 kB
text/typescript
// tslint:disable: max-classes-per-file
import {BaseError} from "./BaseError";
import {eol} from "../utils";
export class CircularStructureToJSONError extends BaseError {
getMessage() {
return {
ru: `Невозможно преобразовать цикличную структуру в JSON`,
en: `Cannot converting circular structure to JSON`,
};
}
}
export class NoToJSONMethodError extends BaseError {
getMessage(data: {className: string}) {
return {
ru: `невозможно преобразовать [object: ${data.className}] в json, объявите метод toJSON для этого поля`,
en: `cannot convert [object: ${data.className}] to json, need toJSON method for this field`
};
}
}
export class NoCloneMethodError extends BaseError {
getMessage(data: {className: string}) {
return {
ru: `невозможно копировать [object: ${data.className}], объявите метод clone для этого поля`,
en: `cannot clone [object: ${data.className}], need clone method for this field`
};
}
}
export class NoEqualMethodError extends BaseError<{className: string}> {
getMessage(data: {className: string}) {
return {
ru: `невозможно сравнить [object: ${data.className}], объявите метод equal для этого поля`,
en: `cannot equal [object: ${data.className}], need equal method for this field`
};
}
}
export class InvalidValueForCustomClassError extends BaseError<{
className: string;
key: string;
invalidValue: string;
}> {
getMessage(data: {className: string, key: string, invalidValue: any}) {
return {
ru: `некорректное значение для класса ${ data.className }, поле ${data.key}: ${data.invalidValue}`,
en: `invalid value for ${ data.className }, field ${data.key}: ${data.invalidValue}`
};
}
}
export class UnknownTypeError extends BaseError<{
key: string;
type: string;
}> {
getMessage(data: {key: string, type: string}) {
return {
ru: `поле ${data.key}, неизвестный тип: ${data.type}`,
en: `field ${data.key}, unknown type: ${data.type}`
};
}
}
export class ReservedWordForPrimaryKeyError extends BaseError<{
key: string;
}> {
getMessage(data: {key: string, type: string}) {
return {
ru: `поле ${data.key} не может быть первичным ключом, потому что это слово занято`,
en: `field ${data.key} cannot be primary key, because it reserved word`
};
}
}
export class InvalidValidationError extends BaseError<{
invalidValue: string;
}> {
getMessage(data: {invalidValue: any}) {
return {
ru: `validate должен быть функцией или регулярным выражением: ${data.invalidValue}`,
en: `validate should be function or RegExp: ${data.invalidValue}`
};
}
}
export class InvalidKeyValidationError extends BaseError<{
invalidValue: string;
}> {
getMessage(data: {invalidValue: any}) {
return {
ru: `key validation должен быть функцией или регулярным выражением: ${data.invalidValue}`,
en: `key validation should be function or RegExp: ${data.invalidValue}`
};
}
}
export class ConflictFloorCeilRoundError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один тип округления: floor, round, ceil`,
en: `conflicting parameters: use only round or only ceil or only floor`
};
}
}
export class ConflictNullAndZeroParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один обработки null: nullAsZero, zeroAsNull`,
en: `conflicting parameters: use only nullAsZero or only zeroAsNull`
};
}
}
export class InvalidNumberError extends BaseError<{
key: string;
invalidValue: string;
}> {
getMessage(data: {key: string, invalidValue: any}) {
return {
ru: `некорректное число для поля ${data.key}: ${data.invalidValue}`,
en: `invalid number for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidRoundError extends BaseError<{
roundType: string;
invalidValue: string;
}> {
getMessage(data: {roundType: string, invalidValue: any}) {
return {
ru: `некорректное значение для параметра ${data.roundType}: ${data.invalidValue}`,
en: `invalid ${data.roundType}: ${data.invalidValue}`
};
}
}
export class ConflictNullAndFalseParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один обработки null: nullAsFalse, falseAsNull`,
en: `conflicting parameters: use only nullAsFalse or only falseAsNull`
};
}
}
export class InvalidBooleanError extends BaseError<{
key: string;
invalidValue: string;
}> {
getMessage(data: {key: string, invalidValue: any}) {
return {
ru: `некорректный boolean для поля ${data.key}: ${data.invalidValue}`,
en: `invalid boolean for ${data.key}: ${data.invalidValue}`
};
}
}
export class ConflictNullAndEmptyStringParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один обработки null: nullAsEmpty, emptyAsNull`,
en: `conflicting parameters: use only nullAsEmpty or only emptyAsNull`
};
}
}
export class ConflictLowerUpperParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один преобразования регистра: lower, upper`,
en: `conflicting parameters: use only lower or only upper`
};
}
}
export class InvalidStringError extends BaseError<{
key: string;
invalidValue: string;
}> {
getMessage(data: {key: string, invalidValue: any}) {
return {
ru: `некорректная строка для поля ${data.key}: ${data.invalidValue}`,
en: `invalid string for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidDateError extends BaseError<{
key: string;
invalidValue: string;
}> {
getMessage(data: {key: string, invalidValue: any}) {
return {
ru: `некорректная дата для поля ${data.key}: ${data.invalidValue}`,
en: `invalid date for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidCollectionError extends BaseError<{
key: string;
className: string;
invalidValue: string;
}> {
getMessage(data: {className: string, key: string, invalidValue: any}) {
return {
ru: `некорректная коллекция ${data.className} для поля ${data.key}: ${data.invalidValue}`,
en: `invalid collection ${data.className} for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidModelError extends BaseError<{
key: string;
className: string;
invalidValue: string;
modelError?: string;
}> {
getMessage(data: {className: string, key: string, invalidValue: any, modelError: any}) {
const postfix = data.modelError ?
`,${eol} ${data.modelError}` :
"";
return {
ru: `некорректная модель ${data.className} для поля ${data.key}: ${data.invalidValue}${ postfix }`,
en: `invalid model ${data.className} for ${data.key}: ${data.invalidValue}${ postfix }`
};
}
}
export class InvalidOrValueError extends BaseError<{
key: string;
typesNames: string[];
invalidValue: string;
}> {
getMessage(data: {key: string, typesNames: string[], invalidValue: any}) {
return {
ru: `некорректное значение для типов: ${data.typesNames.join(" or ")}, для поля ${data.key}: ${data.invalidValue}`,
en: `invalid value for types: ${data.typesNames.join(" or ")}, for ${data.key}: ${data.invalidValue}`
};
}
}
export class RequiredOrArrayError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `необходимо указать перечисление типов`,
en: `required 'or' array of type descriptions`
};
}
}
export class EmptyOrArrayError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `перечисление типов не должно быть пустым массивом`,
en: `empty 'or' array of type descriptions`
};
}
}
export class InvalidOrTypeError extends BaseError<{
index: number;
invalidValue: string;
}> {
getMessage(data: {index: number, invalidValue: any}) {
return {
ru: `некорректное значение для типа or[${ data.index }]: ${ data.invalidValue }`,
en: `invalid type description or[${ data.index }]: ${ data.invalidValue }`
};
}
}
export class ConflictNullAndEmptyObjectParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один обработки null: nullAsEmpty, emptyAsNull`,
en: `conflicting parameters: use only nullAsEmpty or only emptyAsNull`
};
}
}
export class InvalidObjectError extends BaseError<{
elementType: string;
key: string;
invalidValue: string;
}> {
getMessage(data: {key: string, elementType: string, invalidValue: any}) {
return {
ru: `некорректный объект {*: ${data.elementType}} для поля ${data.key}: ${data.invalidValue}`,
en: `invalid object {*: ${data.elementType}} for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidObjectElementError extends BaseError<{
modelKey: string;
objectKey: string;
elementType: string;
invalidValue: string;
childError: string;
}> {
getMessage(data: {modelKey: string, objectKey: string, elementType: string, invalidValue: any, childError: any}) {
return {
ru: `некорректное значение для типа ${data.elementType} в свойстве объекта object[${ data.objectKey }] для поля модели ${data.modelKey}: ${data.invalidValue},${eol} ${data.childError}`,
en: `invalid value for type ${data.elementType} in property object[${ data.objectKey }] for model field ${data.modelKey}: ${data.invalidValue},${eol} ${data.childError}`
};
}
}
export class ConflictNullAndEmptyArrayParameterError extends BaseError<{
}> {
getMessage({}) {
return {
ru: `разрешено использовать только один обработки null: nullAsEmpty, emptyAsNull`,
en: `conflicting parameters: use only nullAsEmpty or only emptyAsNull`
};
}
}
export class InvalidArrayError extends BaseError<{
elementType: string;
key: string;
invalidValue: string;
}> {
getMessage(data: {elementType: string, key: string, invalidValue: any}) {
return {
ru: `некорректный массив ${data.elementType}[] для поля ${data.key}: ${data.invalidValue}`,
en: `invalid array ${data.elementType}[] for ${data.key}: ${data.invalidValue}`
};
}
}
export class InvalidArrayElementError extends BaseError<{
modelKey: string;
index: number;
elementType: string;
invalidValue: string;
childError: string;
}> {
getMessage(data: {modelKey: string, index: number, elementType: string, invalidValue: any, childError: any}) {
return {
ru: `некорректно значение для элемента массива ${data.elementType}[] по индексу ${data.index} для поля модели ${data.modelKey}: ${data.invalidValue},${eol} ${data.childError}`,
en: `invalid element for array ${data.elementType}[] at ${data.index} for model field ${data.modelKey}: ${data.invalidValue},${eol} ${data.childError}`
};
}
}
export class DuplicateValueForUniqueArrayError extends BaseError<{
key: string;
invalidArr: string;
duplicateValue: string;
}> {
getMessage(data: {key: string, duplicateValue: any, invalidArr: any}) {
return {
ru: `${data.key} не уникальный массив, дублируется значение ${data.duplicateValue} внутри массива: ${ data.invalidArr }`,
en: `${data.key} is not unique, duplicated value ${data.duplicateValue} inside arr: ${ data.invalidArr }`
};
}
}