Implement authentication and access control

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent e1bdcda191
commit 327cb78f1a
27 files changed
+600 -167

No files matched your search

+23 -7
View File
@@ -37,16 +37,32 @@ function stageSpv(task) {
}
function commit(tasks, callback) {
let devices = {};
for (let t of tasks) {
t.status = "pending";
queue.add(t);
devices[t.device] = devices[t.device] || [];
devices[t.device].push(t);
queueTask(t);
}
return store.postTasks(tasks, (deviceId, connectionRequestStatus, tasks2) => {
for (let t of tasks2)
if (t.status === "pending") t.status = "stale";
else if (t.status === "done") queue.delete(t);
if (callback) callback(deviceId, connectionRequestStatus, tasks2);
return new Promise(resolve => {
let counter = 1;
for (let [deviceId, tasks2] of Object.entries(devices))
store
.postTasks(deviceId, tasks)
.then(connectionRequestStatus => {
for (let t of tasks2)
if (t.status === "pending") t.status = "stale";
else if (t.status === "done") queue.delete(t);
callback(deviceId, null, connectionRequestStatus, tasks2);
if (--counter === 0) resolve();
})
.catch(err => {
for (let t of tasks2) t.status = "stale";
callback(deviceId, err, null, tasks2);
if (--counter === 0) resolve();
});
if (--counter === 0) resolve();
});
}