rm silly error, updated /docs, util fn
This commit is contained in:
parent
d13071f858
commit
49d65805e9
@ -3,7 +3,7 @@ import assert_valid from require "lapis.validate"
|
|||||||
|
|
||||||
import APIKeys, Users, Tasks from require "models"
|
import APIKeys, Users, Tasks from require "models"
|
||||||
import locate from require "locator"
|
import locate from require "locator"
|
||||||
import api_request, abort from locate "helpers.api"
|
import api_request, abort, assert_model from locate "helpers.api"
|
||||||
-- import random from locate "calc"
|
-- import random from locate "calc"
|
||||||
-- import escape_similar_to from locate "db"
|
-- import escape_similar_to from locate "db"
|
||||||
|
|
||||||
@ -11,16 +11,14 @@ get_task = =>
|
|||||||
if @params.id
|
if @params.id
|
||||||
assert_valid @params, {
|
assert_valid @params, {
|
||||||
{"id", exists: true, min_length: 1, "Attempted to select by task id, but no id specified."}
|
{"id", exists: true, min_length: 1, "Attempted to select by task id, but no id specified."}
|
||||||
{"id", is_integer: true, "Task id is not an integer."}
|
{"id", is_integer: true, "Task id specified is not an integer."}
|
||||||
}
|
}
|
||||||
@task, err = Tasks\find id: @params.id, user_id: @user.id
|
@task = assert_model Tasks\find id: @params.id, user_id: @user.id
|
||||||
abort 500, err if err
|
|
||||||
elseif @params.content
|
elseif @params.content
|
||||||
assert_valid @params, {
|
assert_valid @params, {
|
||||||
{"content", exists: true, min_length: 1, "Attempted to select by task content, but no content specified."}
|
{"content", exists: true, min_length: 1, "Attempted to select by task content, but no content specified."}
|
||||||
}
|
}
|
||||||
@task, err = Tasks\find content: @params.content, user_id: @user.id
|
@task = assert_model Tasks\find content: @params.content, user_id: @user.id
|
||||||
abort 500, err if err
|
|
||||||
else
|
else
|
||||||
abort "Task id or content not specified."
|
abort "Task id or content not specified."
|
||||||
|
|
||||||
@ -47,11 +45,10 @@ class API extends Application
|
|||||||
{"content", exists: true, min_length: 1, "Task content not specified."}
|
{"content", exists: true, min_length: 1, "Task content not specified."}
|
||||||
}
|
}
|
||||||
|
|
||||||
task, err = Tasks\create {
|
task = assert_model Tasks\create {
|
||||||
user_id: @user.id
|
user_id: @user.id
|
||||||
content: @params.content
|
content: @params.content
|
||||||
}
|
}
|
||||||
abort 500, err unless task
|
|
||||||
|
|
||||||
return json: { success: true, :task }
|
return json: { success: true, :task }
|
||||||
|
|
||||||
@ -61,15 +58,13 @@ class API extends Application
|
|||||||
|
|
||||||
[do: "/do"]: api_request =>
|
[do: "/do"]: api_request =>
|
||||||
get_task(@)
|
get_task(@)
|
||||||
@task, err = @task\update done: true
|
@task = assert_model @task\update done: true
|
||||||
abort 500, err unless @task
|
|
||||||
|
|
||||||
return json: { success: true, :task }
|
return json: { success: true, :task }
|
||||||
|
|
||||||
[undo: "/undo"]: api_request =>
|
[undo: "/undo"]: api_request =>
|
||||||
get_task(@)
|
get_task(@)
|
||||||
@task, err = @task\update done: false
|
@task = assert_model @task\update done: false
|
||||||
abort 500, err unless @task
|
|
||||||
|
|
||||||
return json: { success: true, :task }
|
return json: { success: true, :task }
|
||||||
|
|
||||||
@ -90,7 +85,7 @@ class API extends Application
|
|||||||
@params.count or= 50
|
@params.count or= 50
|
||||||
@params.page or= 1
|
@params.page or= 1
|
||||||
@params.order or= "asc"
|
@params.order or= "asc"
|
||||||
abort "Invalid page. (Must be a positive integer.)" if @params.page < 1
|
@params.page = 1 if @params.page < 1
|
||||||
|
|
||||||
local Paginator
|
local Paginator
|
||||||
if @params.done == nil
|
if @params.done == nil
|
||||||
@ -107,12 +102,12 @@ class API extends Application
|
|||||||
return json: { success: true, page: @params.page, pages: num_pages, :tasks }
|
return json: { success: true, page: @params.page, pages: num_pages, :tasks }
|
||||||
|
|
||||||
[random: "/random"]: api_request =>
|
[random: "/random"]: api_request =>
|
||||||
assert_valid @params, {
|
-- assert_valid @params, {
|
||||||
{"count", exists: true, is_integer: true, optional: true, "Count is not an integer."}
|
-- {"count", exists: true, is_integer: true, optional: true, "Count is not an integer."}
|
||||||
{"done", exists: true, one_of: {true, false}, optional: true, "Done is not a boolean."}
|
-- {"done", exists: true, one_of: {true, false}, optional: true, "Done is not a boolean."}
|
||||||
}
|
-- }
|
||||||
@params.count or= 1
|
-- @params.count or= 1
|
||||||
@params.done = false if @params.done == nil
|
-- @params.done = false if @params.done == nil
|
||||||
|
|
||||||
abort 501, "Not implemented."
|
abort 501, "Not implemented."
|
||||||
|
|
||||||
@ -133,9 +128,7 @@ class API extends Application
|
|||||||
-- abort!
|
-- abort!
|
||||||
|
|
||||||
[new_key: "/key/new"]: api_request =>
|
[new_key: "/key/new"]: api_request =>
|
||||||
api_key, err = APIKeys\create(@user)
|
api_key = assert_model APIKeys\create(@user)
|
||||||
abort 500, err unless api_key
|
|
||||||
|
|
||||||
return json: { success: true, :api_key }
|
return json: { success: true, :api_key }
|
||||||
|
|
||||||
[delete_key: "/key/delete"]: api_request =>
|
[delete_key: "/key/delete"]: api_request =>
|
||||||
@ -144,14 +137,12 @@ class API extends Application
|
|||||||
{"id", exists: true, min_length: 1, "Attempted to select by API key id, but no id specified."}
|
{"id", exists: true, min_length: 1, "Attempted to select by API key id, but no id specified."}
|
||||||
{"id", is_integer: true, "API key id is not an integer."}
|
{"id", is_integer: true, "API key id is not an integer."}
|
||||||
}
|
}
|
||||||
@key_to_delete, err = APIKeys\find id: @params.id, user_id: @user.id
|
@key_to_delete = assert_model APIKeys\find id: @params.id, user_id: @user.id
|
||||||
abort 500, err if err
|
|
||||||
elseif @params.key
|
elseif @params.key
|
||||||
assert_valid @params, {
|
assert_valid @params, {
|
||||||
{"key", exists: true, min_length: 32, max_length: 32, "Invalid api_key specified."}
|
{"key", exists: true, min_length: 32, max_length: 32, "Invalid api_key specified."}
|
||||||
}
|
}
|
||||||
@key_to_delete, err = APIKeys\find key: @params.key, user_id: @user.id
|
@key_to_delete = assert_model APIKeys\find key: @params.key, user_id: @user.id
|
||||||
abort 500, err if err
|
|
||||||
else
|
else
|
||||||
abort 400, "No api_key specified."
|
abort 400, "No api_key specified."
|
||||||
|
|
||||||
|
@ -5,9 +5,15 @@ class Docs extends Application
|
|||||||
@name: "docs_"
|
@name: "docs_"
|
||||||
|
|
||||||
[index: ""]: =>
|
[index: ""]: =>
|
||||||
|
@title = "Simplex API Docs"
|
||||||
@html ->
|
@html ->
|
||||||
h3 "Hi there."
|
h2 "Select API Version"
|
||||||
a href: @url_for("docs_v1"), "click here"
|
ol ->
|
||||||
|
li ->
|
||||||
|
a href: @url_for("docs_v1"), "API v1"
|
||||||
|
text " (current, supported indefinitely*)"
|
||||||
|
|
||||||
|
p "* APIs are supported indefinitely unless an incompatible change is planned, in which case they will be available for 6 months before being retired."
|
||||||
|
|
||||||
[v1: "/v1"]: =>
|
[v1: "/v1"]: =>
|
||||||
@title = "Simplex API v1"
|
@title = "Simplex API v1"
|
||||||
|
@ -23,7 +23,12 @@ abort = (status, message) ->
|
|||||||
else
|
else
|
||||||
yield_error status
|
yield_error status
|
||||||
|
|
||||||
|
assert_model = (result, err) ->
|
||||||
|
abort 500, err if err
|
||||||
|
return result
|
||||||
|
|
||||||
{
|
{
|
||||||
:api_request
|
:api_request
|
||||||
:abort
|
:abort
|
||||||
|
:assert_model
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user