Skip to content

Commit 024d766

Browse files
use datastore directly from cli.
1 parent 334cb2a commit 024d766

6 files changed

Lines changed: 213 additions & 269 deletions

File tree

apps/cli/cli.js

100644100755
Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818

1919
'use strict';
2020

21-
var todos = require('./');
21+
var todos = require('../../server/todos.js');
22+
2223
var inquirer = require('inquirer');
2324
var actions = {
2425
add: add,
2526
deleteCompleted: deleteCompleted,
26-
exit: process.kill,
2727
displayTodos: displayTodos,
28-
displayTodosAndDelete: displayTodosAndDelete
28+
displayTodosAndDelete: displayTodosAndDelete,
29+
exit: process.kill
2930
};
3031

3132
// Start the prompts.
@@ -71,19 +72,21 @@ function add() {
7172
message: 'What do you need to do?',
7273
name: 'text'
7374
}, function(answers) {
74-
todos.add(answers.text, function(err) {
75+
todos.insert({
76+
text: answers.text
77+
}, function(err) {
7578
if (err) {
76-
throw new Error(err);
79+
throw err;
7780
}
7881
init();
7982
});
8083
});
8184
}
8285

8386
function displayTodos() {
84-
todos.getTodos(function(err, entities) {
87+
todos.getAll(function(err, entities) {
8588
if (err) {
86-
throw new Error(err);
89+
throw err;
8790
}
8891
if (entities.length === 0) {
8992
console.log('There are no todos!\n');
@@ -96,8 +99,8 @@ function displayTodos() {
9699
type: 'checkbox',
97100
choices: entities.map(function(entity) {
98101
return {
99-
name: entity.text,
100-
checked: entity.done,
102+
name: entity.data.text,
103+
checked: entity.data.done,
101104
value: entity
102105
};
103106
})
@@ -107,45 +110,55 @@ function displayTodos() {
107110
if (answers.completed.some(function(completed) {
108111
return completed.id === entity.id;
109112
})) {
110-
entity.done = true;
113+
entity.data.done = true;
111114
} else {
112-
entity.done = false;
115+
entity.data.done = false;
113116
}
114117
return entity;
115118
});
116119

117-
todos.update(entities, function(err) {
118-
if (err) {
119-
throw new Error(err);
120-
}
121-
init();
120+
var updated = 0;
121+
entities.forEach(function(entity) {
122+
todos.update(entity.id, entity.data, function(err) {
123+
if (err) {
124+
throw err;
125+
}
126+
if (++updated === entities.length) {
127+
init();
128+
}
129+
});
122130
});
123131
});
124132
});
125133
}
126134

127135
function displayTodosAndDelete() {
128-
todos.getTodos(function(err, entities) {
136+
todos.getAll(function(err, entities) {
129137
if (err) {
130-
throw new Error(err);
138+
throw err;
131139
}
132140
inquirer.prompt({
133141
message: 'What would you like to delete?',
134142
name: 'completed',
135143
type: 'checkbox',
136144
choices: entities.map(function(entity) {
137145
return {
138-
name: entity.text,
146+
name: entity.data.text,
139147
checked: false,
140148
value: entity
141149
};
142150
})
143151
}, function(answers) {
144-
todos.delete(answers.completed, function(err) {
145-
if (err) {
146-
throw new Error(err);
147-
}
148-
init();
152+
var deleted = 0;
153+
answers.completed.forEach(function(todo) {
154+
todos.delete(todo.id, function(err) {
155+
if (err) {
156+
throw err;
157+
}
158+
if (++deleted === answers.completed.length) {
159+
init();
160+
}
161+
})
149162
});
150163
});
151164
});
@@ -154,7 +167,7 @@ function displayTodosAndDelete() {
154167
function deleteCompleted() {
155168
todos.deleteCompleted(function(err) {
156169
if (err) {
157-
throw new Error(err);
170+
throw err;
158171
}
159172
init();
160173
});

apps/cli/index.js

Lines changed: 0 additions & 98 deletions
This file was deleted.

server/actions.js

Lines changed: 0 additions & 134 deletions
This file was deleted.

0 commit comments

Comments
 (0)