pimatic
Version:
A home automation server and framework for the Raspberry PI running on node.js
112 lines (104 loc) • 2.07 kB
JavaScript
var TodoApp, api, declapi, printHtmlDocs, t;
declapi = require('../index.js');
t = declapi.types;
api = {};
api.todo = {
actions: {
listTasks: {
rest: {
type: "GET",
url: "/api/tasks"
},
description: "Lists all tasks",
params: {},
result: {
tasks: {
type: t.array
}
}
},
getTask: {
description: "Get a task by id",
rest: {
type: "GET",
url: "/api/tasks/:taskId"
},
params: {
taskId: {
type: t.string
}
},
result: {
task: {
type: t.object
}
}
},
addTask: {
description: "Adds a task",
rest: {
type: "POST",
url: "/api/tasks"
},
params: {
taskId: {
type: t.string
},
task: {
type: t.object,
properties: {
description: {
type: t.string
},
done: {
type: t.boolean,
optional: true
}
}
}
},
result: {
task: {
type: t.object,
properties: {
description: {
type: t.string
},
done: {
type: t.boolean
}
}
}
}
}
}
};
TodoApp = {
tasks: [],
listTasks: function() {
return this.tasks;
},
getTask: function(taskId) {
var i, len, ref;
ref = this.tasks;
for (i = 0, len = ref.length; i < len; i++) {
t = ref[i];
if (t.id === taskId) {
return t;
}
}
return null;
},
addTask: function(taskId, task) {
if (!task.done) {
task.done = false;
}
task.id = taskId;
this.tasks.push(task);
return task;
}
};
printHtmlDocs = function() {
return console.log(declapi.docs().genDocsForActions(api.todo.actions));
};
printHtmlDocs();