-
Notifications
You must be signed in to change notification settings - Fork 0
/
validator.js
64 lines (54 loc) · 1.49 KB
/
validator.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import { NoteModel } from './noteModel.js';
export class Validator{
errors = {
title: [],
content: []
};
/**
* Return array of errors for the content
*
* @param {*} content
* @returns Array
*/
validateContent(content){
if(content == "" || content == null){
this.errors.content.push("* Content Cannot be Empty");
}
return this.errors;
}
/**
* Returns array of errors for the whole note(title, content)
*
* @param {*} note
* @returns Array
*/
validate(note){
this.errors.title = [];
this.errors.content = [];
if(! this.unique(`an-${note.title.trimEnd()}`) || ! this.unique(`an-imp__${note.title.trimEnd()}`)){
this.errors.title.push(`* ${note.title} Already Exists`);
}
if(note.title == "" || note.title == null){
this.errors.title.push(`* Title Cannot Be Empty`);
}
if(note.title.length > 100){
this.errors.title.push("* Title Must Be Less Than 100 Characters");
}
if(note.content == "" || note.content == null){
this.errors.content.push("* Content Cannot be Empty");
}
return this.errors;
}
/**
* Check the local storage if the title is unique.
*
* @param {String} title
* @returns
*/
unique(title){
if(NoteModel.get(title) == null){
return true;
}
return false;
}
}