aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/lib/models/internal/IValidationResult.ts
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-10-09 18:33:20 +0200
committerivarlovlie <git@ivarlovlie.no>2022-10-09 18:33:20 +0200
commita57845f08a6eb9bc32c2173f15472e0c29722cf6 (patch)
tree68724e66a4caadf78c464a9cd93f62c8aaed7401 /code/app/src/lib/models/internal/IValidationResult.ts
parentb7e39b59fd0fc7b5610ebff29035bf622079e0d8 (diff)
downloadgreatoffice-a57845f08a6eb9bc32c2173f15472e0c29722cf6.tar.xz
greatoffice-a57845f08a6eb9bc32c2173f15472e0c29722cf6.zip
refactor: Restructure and create new models
Diffstat (limited to 'code/app/src/lib/models/internal/IValidationResult.ts')
-rw-r--r--code/app/src/lib/models/internal/IValidationResult.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/code/app/src/lib/models/internal/IValidationResult.ts b/code/app/src/lib/models/internal/IValidationResult.ts
new file mode 100644
index 0000000..9a21b13
--- /dev/null
+++ b/code/app/src/lib/models/internal/IValidationResult.ts
@@ -0,0 +1,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;
+ }
+}