Skip to content

Commit 9504fd1

Browse files
author
Ace Nassri
committed
Move logic into parent functions
1 parent b110bc4 commit 9504fd1

File tree

1 file changed

+26
-55
lines changed

1 file changed

+26
-55
lines changed

datastore/tasks.js

Lines changed: 26 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,12 @@ function addTask (description, callback) {
8484
]
8585
}, function (err) {
8686
if (err) {
87-
callback(err);
88-
return;
87+
return callback(err);
8988
}
9089

91-
callback(null, taskKey);
90+
var taskId = taskKey.path.pop();
91+
console.log('Task %d created successfully.', taskId);
92+
return callback(null, taskKey);
9293
});
9394
}
9495
// [END add_entity]
@@ -126,7 +127,8 @@ function markDone (taskId, callback) {
126127
}
127128

128129
// The transaction completed successfully.
129-
callback();
130+
console.log('Task %d updated successfully.', options.taskId);
131+
return callback(null);
130132
});
131133
});
132134
});
@@ -138,7 +140,14 @@ function listTasks (callback) {
138140
var query = datastore.createQuery('Task')
139141
.order('created');
140142

141-
datastore.runQuery(query, callback);
143+
datastore.runQuery(query, function (err, tasks) {
144+
if (err) {
145+
return callback(err);
146+
}
147+
148+
console.log('Found %d task(s)!', tasks.length);
149+
return callback(null, tasks);
150+
});
142151
}
143152
// [END retrieve_entities]
144153

@@ -149,37 +158,24 @@ function deleteTask (taskId, callback) {
149158
taskId
150159
]);
151160

152-
datastore.delete(taskKey, callback);
153-
}
154-
// [END delete_entity]
155-
156-
// [START format_results]
157-
function formatTasks (tasks) {
158-
return tasks
159-
.map(function (task) {
160-
var taskKey = task.key.path.pop();
161-
var status;
162-
163-
if (task.data.done) {
164-
status = 'done';
165-
} else {
166-
status = 'created ' + new Date(task.data.created);
167-
}
161+
datastore.delete(taskKey, function (err) {
162+
if (err) {
163+
return callback(err);
164+
}
168165

169-
return taskKey + ' : ' + task.data.description + ' (' + status + ')';
170-
})
171-
.join('\n');
166+
return callback();
167+
});
172168
}
173-
// [END format_results]
169+
// [END delete_entity]
174170

175171
var cli = require('yargs');
172+
var makeHandler = require('../utils').makeHandler
176173

177174
var program = module.exports = {
178175
addEntity: addTask,
179176
updateEntity: markDone,
180177
retrieveEntities: listTasks,
181178
deleteEntity: deleteTask,
182-
formatTasks: formatTasks,
183179
main: function (args) {
184180
// Run the command-line program
185181
cli.help().strict().parse(args).argv;
@@ -189,41 +185,16 @@ var program = module.exports = {
189185
cli
190186
.demand(1)
191187
.command('new <description>', 'Adds a task with a description <description>.', {}, function (options) {
192-
addTask(options.description, function (err, taskKey) {
193-
if (err) {
194-
throw err;
195-
}
196-
197-
var taskId = taskKey.path.pop();
198-
console.log('Task %d created successfully.', taskId);
199-
});
188+
addTask(options.description, makeHandler());
200189
})
201190
.command('done <taskId>', 'Marks the specified task as done.', {}, function (options) {
202-
markDone(options.taskId, function (err) {
203-
if (err) {
204-
throw err;
205-
}
206-
207-
console.log('Task %d updated successfully.', options.taskId);
208-
});
191+
markDone(options.taskId, makeHandler());
209192
})
210193
.command('list', 'Lists all tasks ordered by creation time.', {}, function (options) {
211-
listTasks(function (err, tasks) {
212-
if (err) {
213-
throw err;
214-
}
215-
216-
console.log(formatTasks(tasks));
217-
});
194+
listTasks(makeHandler());
218195
})
219196
.command('delete <taskId>', 'Deletes a task.', {}, function (options) {
220-
deleteTask(options.taskId, function (err) {
221-
if (err) {
222-
throw err;
223-
}
224-
225-
console.log('Task %d deleted successfully.', options.taskId);
226-
});
197+
deleteTask(options.taskId, makeHandler());
227198
})
228199
.example('node $0 new "Buy milk"', 'Adds a task with description "Buy milk".')
229200
.example('node $0 done 12345', 'Marks task 12345 as Done.')

0 commit comments

Comments
 (0)