You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Application-Web/Documentation/validation.puml

81 lines
2.1 KiB

@startuml
abstract class Validator {
+ validate(name: string, val: mixed): array {abstract}
+ then(other: Validator): Validator
}
class ComposedValidator extends Validator {
+ __construct(first: Validator, then: Validator)
+ validate(name: string, val: mixed): array
}
ComposedValidator -->"- first" Validator
ComposedValidator -->"- then" Validator
class SimpleFunctionValidator extends Validator {
- predicate: callable
- error_factory: callable
+ __construct(predicate: callable, errorsFactory: callable)
+ validate(name: string, val: mixed): array
}
class ValidationFail implements JsonSerialize {
- kind: string
- message: string
+ __construct(kind: string, message: string)
+ getMessage(): string
+ getKind(): string
+ <u>notFound(message: string): ValidationFail
+ <u>unauthorized(message:string): ValidationFail
+ <u>error(message:string): ValidationFail
}
class FieldValidationFail extends ValidationFail {
- fieldName: string
+ __construct(fieldName: string, message: string)
+ getFieldName(): string
+ jsonSerialize()
+ <u>invalidChars(fieldName: string): FieldValidationFail
+ <u>empty(fieldName: string): FieldValidationFail
+ <u>missing(fieldName: string): FieldValidationFail
}
class Validation {
<u> + validate(val: mixed, valName: string, failures: &array, validators: Validator...): bool
}
Validation ..> Validator
class DefaultValidators {
+ <u>nonEmpty(): Validator
+ <u>shorterThan(limit: int): Validator
+ <u>userString(maxLen: int): Validator
+ <u>regex(regex:string, msg:string): Validator
+ <u>hex(msg:string): Validator
+ <u>name(msg:string): Validator
+ <u>nameWithSpaces(): Validator
+ <u>lenBetween(min:int, max:int): Validator
+ <u>email(msg:string): Validator
+ <u>isInteger(): Validator
+ <u>isIntInRange(min:int, max:int): Validator
+ <u>isURL(): Validator
}
DefaultValidators ..> Validator
class FunctionValidator{
- validate_fn: callable
+ __construct(validate_fn:callable)
+ validate(name:string, val:mixed): array
}
Validator <|-- FunctionValidator
@enduml