summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib/models/IValidationResult.ts
blob: 9a21b13f2497f4fb8a9ab1ef4e6b53446f5427ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
export interface IValidationResult {
    errors: Array<IValidationError>,
    has_errors: Function,
    add_error: Function,
    remove_error: Function,
}

export interface IValidationError {
    _id?: string,
    title: string,
    text?: string
}

export default class ValidationResult implements IValidationResult {
    errors: IValidationError[]
    has_errors(): boolean {
        return this.errors?.length > 0;
    }
    add_error(prop: string, error: IValidationError): void {
        if (!this.errors) this.errors = [];
        error._id = prop;
        this.errors.push(error);
    }
    remove_error(property: string): void {
        const new_errors = [];
        for (const error of this.errors) {
            if (error._id != property) new_errors.push(error)
        }
        this.errors = new_errors;
    }
}