-
Notifications
You must be signed in to change notification settings - Fork 0
/
notes.js
65 lines (63 loc) · 1.72 KB
/
notes.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
65
const fs = require('fs');
var fetchNotes = () => {
//Initializing notes array try..catch used to check if file exists.
try{
var notesString = fs.readFileSync('notes-data.json');
return JSON.parse(notesString);
}catch(e){
return [];
}
}
var saveNotes = (notes) => {
fs.writeFileSync('notes-data.json',JSON.stringify(notes));
}
var addNote = function (title, body) {
//Notes Array
var notes = fetchNotes();
// Note to be added.
var note = {
title,
body
}
var duplicateNotes = notes.filter((note) => note.title === title);
if(duplicateNotes.length == 0){
notes.push(note);
saveNotes(notes);
}else{
console.log('Trying to add duplicate Note.');
}
}
var readNote = function (title) {
var notes = fetchNotes();
// console.log('Title to search :'+title);
var noteToSearch = undefined;
// Remember we can never return from forEach loop.
notes.forEach((note) => {
if(note.title === title){
// console.log('Title we got:'+JSON.stringify(note));
noteToSearch = note;
}
});
return noteToSearch;
}
var removeNote = function(title){
var notes = fetchNotes();
var newNotes = notes.filter((note)=> note.title !== title);
return notes.length !== newNotes.length;
}
var listAll = function(){
var notes = fetchNotes();
console.log(`Printing ${notes.length} note(s).`);
notes.forEach(function(note){
console.log('Title :'+note.title);
console.log('Body :'+note.body);
console.log('--------');
});
}
// If key and value are same then we can remove key.
module.exports = {
addNote,
readNote,
removeNote,
listAll
}