@63pokupki/nodejs-common
Version:
common nodejs functionality
221 lines (189 loc) • 6.67 kB
text/typescript
/**
* Класс констроирующий правила для одного поля
*/
class ModelOneRuleC {
private aRule: { [key: string]: any };
constructor(sColumn: string) {
this.aRule = {};
this.aRule['key'] = sColumn;
}
/**
* [str, int, enum, text] - тип приавила
*
* @param string sType
* @return ModelOneRuleC
*/
public type(sType: string): ModelOneRuleC {
this.aRule['type'] = sType;
return this;
}
/**
* [rgexp<string>, enum(array)] - условие валидации
*
* @param mixed if
* @return ModelOneRuleC
*/
public if(ifType: any): ModelOneRuleC {
this.aRule['if'] = ifType;
return this;
}
/**
* [true, false] - обязательное поле?
*
* @param boolean bRequire
* @return ModelOneRuleC
*/
public require(): ModelOneRuleC {
this.aRule['require'] = true;
return this;
}
/**
* [column] От какого поля зависит
*
* @param string sDepend
* @return ModelOneRuleC
*/
public depend(sDepend: string): ModelOneRuleC {
this.aRule['depend'] = sDepend;
return this;
}
/**
* [текст ошибки] - Сообщение в случае если проверка не прошла
*
* @param string sError
* @return ModelOneRuleC
*/
public error(sError: string): ModelOneRuleC {
this.aRule['error'] = sError;
return this;
}
/**
* [клич ошибки, сообшение ошибки] - Ключ и сообщение ошибки в случае если проверка не прошла
*
* @param string sError
* @return ModelOneRuleC
*/
public errorEx(sKey:string, sError:string): ModelOneRuleC{
this.aRule['error_key'] = {key:sKey, msg:sError};
this.error(sError); // Вывод стандартных ошибок
return this;
}
/**
* Значение по умолчанию
*
* @param mixed val
* @return ModelOneRuleC
*/
public def(val: any): ModelOneRuleC {
this.aRule['def'] = val;
return this;
}
/**
* Максимальная длинна строки
*
* @param [type] iVal
* @return ModelOneRuleC
*/
public maxLen(iVal: number): ModelOneRuleC {
this.aRule['max_len'] = iVal;
return this;
}
/**
* Минимальная длинна строки
*
* @param [type] iVal
* @return ModelOneRuleC
*/
public minLen(iVal: number): ModelOneRuleC {
this.aRule['min_len'] = iVal;
return this;
}
/**
* Больше
* @param iVal - Числовое сравнение [больше]
*/
public more(iVal: number): ModelOneRuleC {
this.aRule['more'] = iVal;
return this;
}
/**
* Больше или равно
* @param iVal - Числовое сравнение [больше или равно]
*/
public moreOrEq(iVal: number): ModelOneRuleC {
this.aRule['more_or_equal'] = iVal;
return this;
}
/**
* Меньше
* @param iVal - Числовое сравнение [меньше]
*/
public less(iVal: number): ModelOneRuleC {
this.aRule['less'] = iVal;
return this;
}
/**
* Меньше или равно
* @param iVal - Числовое сравнение [меньше или равно]
*/
public lessOrEq(iVal: number): ModelOneRuleC {
this.aRule['less_or_equal'] = iVal;
return this;
}
/**
* Получить правило
*
* @return array
*/
public get(): { [key: string]: any } {
if (!this.aRule['type']) { // Тип
this.aRule['type'] = false;
}
if (!this.aRule['if']) { // Условие
this.aRule['if'] = false;
}
if (!this.aRule['require']) { // Поле обязательно для заполнения
this.aRule['require'] = false;
}
// if( !this.aRule['max_len'] ){ // Максимальная длинна строки
// this.aRule['max_len'] = false;
// }
// if( !this.aRule['more'] ){ // Больше
// this.aRule['more'] = false;
// }
// if( !this.aRule['less'] ){ // Больше
// this.aRule['less'] = false;
// }
if (!this.aRule['depend']) { // Зависемость от другова поля
this.aRule['depend'] = false;
}
if (!this.aRule['error']) { // Текст об ошибке
this.aRule['error'] = false;
}
return this.aRule;
}
/**
* Получить название колонки
*
* @return string
*/
public getKey(): string {
return this.aRule['key'];
}
//ФОРМАТ ПРАВИЛА [0:type, 1:condition, 2:required, 3:depend, 4:msg_error]
// 'refund_tpl_name' : ['str', "/^[0-9a-zA-Zа-яА-Я ]{2,30}/u", true, false, 'refund_tpl_name неверный формат'],
// 'user_id' : ['int', "/^[0-9]{1,11}/", true, false, 'user_id не верный формат'],
// 'refund_money' : ['int', "/^[0-9]{1,11}/", false, false, 'refund_money неверный формат'],
// 'refund_type' : ['enum', ['card', 'account'], true, false, 'refund_type неверный формат'],
// 'refund_card' : ['str', "/^[0-9]{16,18}/", false, ['refund_type':'card'], 'refund_card неверный формат'],
// 'refund_card_account' : ['str', "/^[0-9]{20}/", false, ['refund_type':'account'], 'refund_card_account неверный формат'],
// 'refund_bik' : ['str', "/^[0-9]{9,9}/", false, ['refund_type':'account'], 'refund_bik неверный формат'],
// 'refund_inn' : ['str', "/^[0-9]{10,10}/", false, ['refund_type':'account'], 'refund_inn неверный формат'],
// 'refund_kpp' : ['str', "/^[0-9]{9,9}/", false, ['refund_type':'account'], 'refund_kpp неверный формат'],
// 'refund_firstname' : ['str', "/^[а-яА-Я]{2,30}/u", false, false, 'refund_firstname неверный формат'],
// 'refund_lastname' : ['str', "/^[а-яА-Я]{2,30}/u", false, false, 'refund_lastname неверный формат'],
// 'refund_fathername' : ['str', "/^[а-яА-Я]{2,30}/u", false, false, 'refund_fathername неверный формат'],
// 'refund_fullname' : ['text', false, false, false, 'refund_fullname неверный формат'],
// 'refund_reason' : ['text', false, false, false, 'refund_reason неверный формат'],
}
export { ModelOneRuleC };