@@ -7,28 +7,28 @@ sort_users = (list) ->
77 table.sort list, ( a, b) -> a. name < b. name
88 list
99
10- -- below, the tests do not require the payload to be validated
10+ -- The tests do not require the payload to be validated.
11+ -- Also, I'm not concerned about accepting references to user's tables,
12+ -- or returning references to internal tables.
1113
1214class RestApi
13- new : ( database) =>
14- @db = { k, v for k, v in pairs database} -- clone it
15+ new : ( @db ) =>
1516
1617 GET : ( url, payload) => @route ' GET' , url, payload
1718 POST : ( url, payload) => @route ' POST' , url, payload
1819
1920 route : ( method, url, payload) =>
2021 subject = url\ match ' ^/(%w+)'
2122 func = " #{subject}_#{method}"
22- return { error : " Unknown function '#{func}' " } if not @[ func]
23+ return { error : " Unknown endpoint: #{method} #{url} " } if not @[ func]
2324 @[ func] @, payload
2425
2526 users_GET : ( payload) =>
26- users = @db . users or {}
2727 filter = if payload
2828 ( user) -> contains payload. users, user. name
2929 else
3030 ( user) -> true
31- { users : sort_users [ u for u in * users when filter u]}
31+ { users : sort_users [ u for u in * @db . users when filter u]}
3232
3333 add_POST : ( payload) =>
3434 user = {
0 commit comments