diff --git a/Insomnia.json b/Insomnia.json index 623a129..57cf871 100644 --- a/Insomnia.json +++ b/Insomnia.json @@ -1 +1 @@ -{"_type":"export","__export_format":4,"__export_date":"2024-12-08T11:58:20.686Z","__export_source":"insomnia.desktop.app:v10.2.0","resources":[{"_id":"req_b9110b757d1548688b5527bed5224a3c","parentId":"fld_867eac443b0a4bcc980e172973a955aa","modified":1732488415392,"created":1732487891610,"url":"{{ _.URL }}/","name":"/","description":"# /api/\nCheck that the API is live.\n\nShould return \n```\n{\n\t\"success\": true\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732487891610,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_867eac443b0a4bcc980e172973a955aa","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489771305,"created":1732487889273,"name":"root","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768419,"_type":"request_group"},{"_id":"wrk_150958d3b6154c1ea5fdd4f7756245d0","parentId":null,"modified":1733606494596,"created":1733606494596,"name":"clowder.cloud backend","description":"","scope":"collection","_type":"workspace"},{"_id":"req_f6cfc46f4d754179a1a2015b94c2b4b4","parentId":"fld_867eac443b0a4bcc980e172973a955aa","modified":1732488469497,"created":1732487945191,"url":"{{ _.URL }}/endpoints","name":"/endpoints","description":"# /api/endpoints\nList all available endpoints\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\t\"/api\": {\n\t\t\t\"description\": \"Index of API\",\n\t\t\t\"method\": \"GET\",\n\t\t\t\"authentication\": \"none\",\n\t\t\t\"result\": {\n\t\t\t\t\"success\": true\n\t\t\t}\n\t\t},\n\t\t\"/api/endpoints\": {\n\t\t\t\"description\": \"List all endpoints\",\n\t\t\t\"method\": \"GET\",\n\t\t\t\"authentication\": \"none\",\n\t\t\t\"result\": {\n\t\t\t\t\"success\": true,\n\t\t\t\t\"data\": {\n\t\t\t\t\t\"/api\": {\n\t\t\t\t\t\t\"description\": \"Index of API\",\n\t\t\t\t\t\t\"method\": \"GET\",\n\t\t\t\t\t\t\"authentication\": \"none\",\n\t\t\t\t\t\t\"result\": {\n\t\t\t\t\t\t\t\"success\": true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[...]\n\t}\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732487891510,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b0e6063f0a0245eb8e9a711bb7bcf153","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489531846,"created":1732487990528,"url":"{{ _.URL }}/devices/create","name":"/devices/create - Create a new device","description":"# /api/devices/create\nCreate a new GPS device\n\nRequires Authorization header, set to the users username\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"GPS Device\",\n\t\t\"uuid\": \"...\",\n\t\t\"owner_id\": \"cm3op7iwu0000jrcqa60tc9kv\",\n\t\t\"last_pulse_at\": null,\n\t\t\"last_location\": {},\n\t\t\"location_history\": [],\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"POST","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732487990528,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_1cff01fa097e4b678c64f20bd4026256","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489772761,"created":1732487975283,"name":"devices","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768369,"_type":"request_group"},{"_id":"req_f36cef42ce394a3c9a1048a0325c16eb","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489005849,"created":1732488085659,"url":"{{ _.URL }}/devices/update","name":"/devices/update - Send GPS update","description":"# /api/devices/update\nSend data to the server as a GPS device\n\nBody should be\n```\n{\n\t\"id\": \"device-id\",\n\t\"lat\": 41.303921,\n\t\"lon\": -81.901693\n}\n```\n\nShould return no content","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"id\": \"{{ _.device_id }}\",\n\t\"lat\": 41.303921,\n\t\"lon\": -81.901693\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732487990428,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_840ec9537a0c4f3c9181a21b10dd5e38","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489538168,"created":1732488584419,"url":"{{ _.URL }}/devices/delete","name":"/devices/delete - Delete a device","description":"# /api/devices/delete\nDelete a GPS device\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"device_uuid\": \"device-uuid\"\n}\n```\n\nShould return no content","method":"DELETE","body":{"mimeType":"application/json","text":"{\n\t\"device_uuid\": \"5804f943-4aaf-432f-83d8-62028827ac57\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732487990328,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4764817b2a5a4f4b9566312e793e1777","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489344154,"created":1732489081735,"url":"{{ _.URL }}/users/{{ _.user_id }}/devices","name":"/users/:id/devices - List a users devices","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081735,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_d09e8a4c4707453a93f1aa7c33a9f250","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489773829,"created":1732489057407,"name":"users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768344,"_type":"request_group"},{"_id":"req_de121bc151dd46458d5df51045068cbe","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608322257,"created":1733608310177,"url":"{{ _.URL }}/users/","name":"/users - Fetch all users","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081685,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f44446664d1f4997b0da7e979d20369d","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608655429,"created":1733608548498,"url":"{{ _.URL }}/users/","name":"/users - Create new user","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"A new user\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081660,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6010f69661b0426d8ae969945e2585ca","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489357937,"created":1732489264494,"url":"{{ _.URL }}/users/{{ _.user_id }}/cats","name":"/users/:id/cats - List a users cats","description":"# /api/users/:id/cats\nList all of a users cats\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"...\",\n\t\t\t\"description\": \"...\",\n\t\t\t\"picture_url\": \"...\",\n\t\t\t\"device_id\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081635,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_cc0a2d0efcdc4f87a48a0d166ae577a8","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608217525,"created":1732489466033,"url":"{{ _.URL }}/users/settings","name":"/users/settings - Fetch a user's settings","description":"# /api/users/settings\nGets the current user\n\nRequires Authorization header, set to the users username\n\nShould return \n```\n{\n\t\"sucess\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"username\": \"...\",\n\t\t\"requested_privacy\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489081535,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a7b2bfd2aa704680afabb980e083ed0d","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489755238,"created":1732489578042,"url":"{{ _.URL }}/users/settings","name":"/users/settings - Update a users settings","description":"# /api/users/settings\nUpdate a users settings\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"requested_privacy\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"sucess\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"username\": \"...\",\n\t\t\"requested_privacy\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"PATCH","body":{"mimeType":"application/json","text":"{\n\t\"requested_privacy\": \"PRIVATE\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489081435,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_85b6225c9de743a6bb35b93f907ffd19","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1732489891405,"created":1732489775976,"url":"{{ _.URL }}/cats/create","name":"/cats/create","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Catty Cat McCatFace\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775976,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_c9fab552fa3d4239817839aec7951fdc","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489768319,"created":1732489768319,"name":"cats","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768319,"_type":"request_group"},{"_id":"req_40d1723de20d482bacd866009d9967a4","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658578344,"created":1733658513238,"url":"{{ _.URL }}/cats/leaderboard/:range","name":"/leaderboard/:range","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{"mimeType":"application/json","text":""},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775926,"isPrivate":false,"pathParameters":[{"name":"range","value":"weekly"}],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_17496b42b93846b09f426196bc528928","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658870408,"created":1733658610464,"url":"{{ _.URL }}/cats/nearby/:id/:distance","name":"/nearby/:id/:distance","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{"mimeType":"application/json","text":""},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775901,"isPrivate":false,"pathParameters":[{"name":"id","value":"cm3pr1rkb000008l8fs7icr9g"},{"name":"distance","value":"1000"}],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_00f02c0b2e0e4cbcb0a13eb6a659d297","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658459810,"created":1732489906110,"url":"{{ _.URL }}/cats/update","name":"/cats/update","description":"# /api/cats/update\nUpdate a cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"cat_id\": \"...\",\n\t[...]\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": \"...\",\n\t\t\"picture_url\": \"...\",\n\t\t\"device_id\": \"...\",\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"PATCH","body":{"mimeType":"application/json","text":"{\n\t\t\t\t\t\"cat_id\": \"cm4fjesok0001xntyd0rsa616\",\n\t\t\t\t\t\"name\": \"Daisy, Eater of Worlds\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775876,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_32990425061d4ed3ad235afecc5dcc7d","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732488222091,"created":1732487793437,"name":"Base Environment","data":{"URL":"http://localhost:9090/api","username":"","device_id":""},"dataPropertyOrder":{"&":["URL","username","device_id"]},"color":null,"isPrivate":false,"metaSortKey":1732487793437,"_type":"environment"},{"_id":"jar_d83350f20a9449c585658bf52366b696","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732487793438,"created":1732487793438,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"env_c4b54ea98e9a4e62bdd1721cc65c9993","parentId":"env_32990425061d4ed3ad235afecc5dcc7d","modified":1732489136840,"created":1732487807740,"name":"Authorized","data":{"username":"user1","device_id":"5804f943-4aaf-432f-83d8-62028827ac57","user_id":"cm3op7iwu0000jrcqa60tc9kv"},"dataPropertyOrder":{"&":["username","device_id","user_id"]},"color":null,"isPrivate":false,"metaSortKey":1732487807741,"_type":"environment"}]} \ No newline at end of file +{"_type":"export","__export_format":4,"__export_date":"2024-12-08T12:15:04.479Z","__export_source":"insomnia.desktop.app:v10.2.0","resources":[{"_id":"req_f6cfc46f4d754179a1a2015b94c2b4b4","parentId":"fld_867eac443b0a4bcc980e172973a955aa","modified":1733660084160,"created":1732487945191,"url":"{{ _.URL }}/","name":"/ - Endpoints","description":"# /api/endpoints\nList all available endpoints\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\t\"/api\": {\n\t\t\t\"description\": \"Index of API\",\n\t\t\t\"method\": \"GET\",\n\t\t\t\"authentication\": \"none\",\n\t\t\t\"result\": {\n\t\t\t\t\"success\": true\n\t\t\t}\n\t\t},\n\t\t\"/api/endpoints\": {\n\t\t\t\"description\": \"List all endpoints\",\n\t\t\t\"method\": \"GET\",\n\t\t\t\"authentication\": \"none\",\n\t\t\t\"result\": {\n\t\t\t\t\"success\": true,\n\t\t\t\t\"data\": {\n\t\t\t\t\t\"/api\": {\n\t\t\t\t\t\t\"description\": \"Index of API\",\n\t\t\t\t\t\t\"method\": \"GET\",\n\t\t\t\t\t\t\"authentication\": \"none\",\n\t\t\t\t\t\t\"result\": {\n\t\t\t\t\t\t\t\"success\": true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[...]\n\t}\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732487891510,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_867eac443b0a4bcc980e172973a955aa","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489771305,"created":1732487889273,"name":"root","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768419,"_type":"request_group"},{"_id":"wrk_150958d3b6154c1ea5fdd4f7756245d0","parentId":null,"modified":1733606494596,"created":1733606494596,"name":"clowder.cloud backend","description":"","scope":"collection","_type":"workspace"},{"_id":"req_b0e6063f0a0245eb8e9a711bb7bcf153","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489531846,"created":1732487990528,"url":"{{ _.URL }}/devices/create","name":"/devices/create - Create a new device","description":"# /api/devices/create\nCreate a new GPS device\n\nRequires Authorization header, set to the users username\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"GPS Device\",\n\t\t\"uuid\": \"...\",\n\t\t\"owner_id\": \"cm3op7iwu0000jrcqa60tc9kv\",\n\t\t\"last_pulse_at\": null,\n\t\t\"last_location\": {},\n\t\t\"location_history\": [],\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"POST","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732487990528,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_1cff01fa097e4b678c64f20bd4026256","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489772761,"created":1732487975283,"name":"devices","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768369,"_type":"request_group"},{"_id":"req_f36cef42ce394a3c9a1048a0325c16eb","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489005849,"created":1732488085659,"url":"{{ _.URL }}/devices/update","name":"/devices/update - Send GPS update","description":"# /api/devices/update\nSend data to the server as a GPS device\n\nBody should be\n```\n{\n\t\"id\": \"device-id\",\n\t\"lat\": 41.303921,\n\t\"lon\": -81.901693\n}\n```\n\nShould return no content","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"id\": \"{{ _.device_id }}\",\n\t\"lat\": 41.303921,\n\t\"lon\": -81.901693\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732487990428,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_840ec9537a0c4f3c9181a21b10dd5e38","parentId":"fld_1cff01fa097e4b678c64f20bd4026256","modified":1732489538168,"created":1732488584419,"url":"{{ _.URL }}/devices/delete","name":"/devices/delete - Delete a device","description":"# /api/devices/delete\nDelete a GPS device\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"device_uuid\": \"device-uuid\"\n}\n```\n\nShould return no content","method":"DELETE","body":{"mimeType":"application/json","text":"{\n\t\"device_uuid\": \"5804f943-4aaf-432f-83d8-62028827ac57\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732487990328,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4764817b2a5a4f4b9566312e793e1777","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489344154,"created":1732489081735,"url":"{{ _.URL }}/users/{{ _.user_id }}/devices","name":"/users/:id/devices - List a users devices","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081735,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_d09e8a4c4707453a93f1aa7c33a9f250","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489773829,"created":1732489057407,"name":"users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768344,"_type":"request_group"},{"_id":"req_de121bc151dd46458d5df51045068cbe","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608322257,"created":1733608310177,"url":"{{ _.URL }}/users/","name":"/users - Fetch all users","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081685,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f44446664d1f4997b0da7e979d20369d","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608655429,"created":1733608548498,"url":"{{ _.URL }}/users/","name":"/users - Create new user","description":"# /api/users/:id/devices\nList all of a users devices\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"GPS Device\",\n\t\t\t\"uuid\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"last_pulse_at\": null,\n\t\t\t\"last_location\": {},\n\t\t\t\"location_history\": [],\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"A new user\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081660,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6010f69661b0426d8ae969945e2585ca","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489357937,"created":1732489264494,"url":"{{ _.URL }}/users/{{ _.user_id }}/cats","name":"/users/:id/cats - List a users cats","description":"# /api/users/:id/cats\nList all of a users cats\n\nShould return\n```\n{\n\t\"success\": true,\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": \"...\",\n\t\t\t\"name\": \"...\",\n\t\t\t\"description\": \"...\",\n\t\t\t\"picture_url\": \"...\",\n\t\t\t\"device_id\": \"...\",\n\t\t\t\"owner_id\": \"...\",\n\t\t\t\"updated_at\": \"...\",\n\t\t\t\"created_at\": \"...\"\n\t\t},\n\t\t[...]\n\t]\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{},"metaSortKey":-1732489081635,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_cc0a2d0efcdc4f87a48a0d166ae577a8","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1733608217525,"created":1732489466033,"url":"{{ _.URL }}/users/settings","name":"/users/settings - Fetch a user's settings","description":"# /api/users/settings\nGets the current user\n\nRequires Authorization header, set to the users username\n\nShould return \n```\n{\n\t\"sucess\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"username\": \"...\",\n\t\t\"requested_privacy\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{},"parameters":[],"headers":[{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489081535,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a7b2bfd2aa704680afabb980e083ed0d","parentId":"fld_d09e8a4c4707453a93f1aa7c33a9f250","modified":1732489755238,"created":1732489578042,"url":"{{ _.URL }}/users/settings","name":"/users/settings - Update a users settings","description":"# /api/users/settings\nUpdate a users settings\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"requested_privacy\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"sucess\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"username\": \"...\",\n\t\t\"requested_privacy\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"PATCH","body":{"mimeType":"application/json","text":"{\n\t\"requested_privacy\": \"PRIVATE\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489081435,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_85b6225c9de743a6bb35b93f907ffd19","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1732489891405,"created":1732489775976,"url":"{{ _.URL }}/cats/create","name":"/cats/create","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Catty Cat McCatFace\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775976,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_c9fab552fa3d4239817839aec7951fdc","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732489768319,"created":1732489768319,"name":"cats","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1732489768319,"_type":"request_group"},{"_id":"req_40d1723de20d482bacd866009d9967a4","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658578344,"created":1733658513238,"url":"{{ _.URL }}/cats/leaderboard/:range","name":"/leaderboard/:range","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{"mimeType":"application/json","text":""},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775926,"isPrivate":false,"pathParameters":[{"name":"range","value":"weekly"}],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_17496b42b93846b09f426196bc528928","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658870408,"created":1733658610464,"url":"{{ _.URL }}/cats/nearby/:id/:distance","name":"/nearby/:id/:distance","description":"# /api/cats/create\nCreate a new cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"name\": \"...\"\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": null,\n\t\t\"picture_url\": null,\n\t\t\"device_id\": null,\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"GET","body":{"mimeType":"application/json","text":""},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775901,"isPrivate":false,"pathParameters":[{"name":"id","value":"cm3pr1rkb000008l8fs7icr9g"},{"name":"distance","value":"1000"}],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_00f02c0b2e0e4cbcb0a13eb6a659d297","parentId":"fld_c9fab552fa3d4239817839aec7951fdc","modified":1733658459810,"created":1732489906110,"url":"{{ _.URL }}/cats/update","name":"/cats/update","description":"# /api/cats/update\nUpdate a cat\n\nRequires Authorization header, set to the users username\n\nBody should be\n```\n{\n\t\"cat_id\": \"...\",\n\t[...]\n}\n```\n\nShould return \n```\n{\n\t\"success\": true,\n\t\"data\": {\n\t\t\"id\": \"...\",\n\t\t\"name\": \"...\",\n\t\t\"description\": \"...\",\n\t\t\"picture_url\": \"...\",\n\t\t\"device_id\": \"...\",\n\t\t\"owner_id\": \"...\",\n\t\t\"updated_at\": \"...\",\n\t\t\"created_at\": \"...\"\n\t}\n}\n```","method":"PATCH","body":{"mimeType":"application/json","text":"{\n\t\t\t\t\t\"cat_id\": \"cm4fjesok0001xntyd0rsa616\",\n\t\t\t\t\t\"name\": \"Daisy, Eater of Worlds\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"},{"name":"User-Agent","value":"insomnia/10.1.1"}],"authentication":{"type":"apikey","disabled":false,"key":"Authorization","value":"{{ _.username }}","addTo":"header"},"metaSortKey":-1732489775876,"isPrivate":false,"pathParameters":[],"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_32990425061d4ed3ad235afecc5dcc7d","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732488222091,"created":1732487793437,"name":"Base Environment","data":{"URL":"http://localhost:9090/api","username":"","device_id":""},"dataPropertyOrder":{"&":["URL","username","device_id"]},"color":null,"isPrivate":false,"metaSortKey":1732487793437,"_type":"environment"},{"_id":"jar_d83350f20a9449c585658bf52366b696","parentId":"wrk_150958d3b6154c1ea5fdd4f7756245d0","modified":1732487793438,"created":1732487793438,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"env_c4b54ea98e9a4e62bdd1721cc65c9993","parentId":"env_32990425061d4ed3ad235afecc5dcc7d","modified":1732489136840,"created":1732487807740,"name":"Authorized","data":{"username":"user1","device_id":"5804f943-4aaf-432f-83d8-62028827ac57","user_id":"cm3op7iwu0000jrcqa60tc9kv"},"dataPropertyOrder":{"&":["username","device_id","user_id"]},"color":null,"isPrivate":false,"metaSortKey":1732487807741,"_type":"environment"}]} \ No newline at end of file diff --git a/src/controllers/root.ts b/src/controllers/root.ts index d6f3b6f..05f0e78 100644 --- a/src/controllers/root.ts +++ b/src/controllers/root.ts @@ -1,26 +1,9 @@ import { Request, Response } from 'express'; import endpointsJson from '../endpoints.json'; -export function index(request: Request, response: Response) { - response.status(200).json({ - success: true, - }); -} - export function endpoints(request: Request, response: Response) { - const data = {}; - endpointsJson.forEach((endpoint) => { - const copy = JSON.parse(JSON.stringify(endpoint)); - delete copy.path; - Object.assign(data, { - [endpoint.path]: { - ...copy, - }, - }); - }); - response.status(200).json({ success: true, - data: data, + data: { endpoints: endpointsJson }, }); } diff --git a/src/endpoints.json b/src/endpoints.json index caccf2a..1177f5f 100644 --- a/src/endpoints.json +++ b/src/endpoints.json @@ -1,15 +1,5 @@ -[ - { - "path": "/api", - "description": "Index of API", - "method": "GET", - "authentication": "none", - "result": { - "success": true - } - }, - { - "path": "/api/endpoints", +{ + "/api": { "description": "List all endpoints", "method": "GET", "authentication": "none", @@ -25,74 +15,72 @@ } } }, - { - "path": "/api/devices/create", - "description": "Register a new device", + "/api/cats/create": { + "description": "Register a new cat", "method": "POST", "authentication": "username", - "body": {}, + "body": { + "name": "string, optional", + "description": "string, optional", + "picture_url": "string, optional" + }, "result": { - "success": true + "success": true, + "data": {} } }, - { - "path": "/api/devices/update", - "description": "Update information ", + "/api/cats/update": { + "description": "Update a cats social information", "method": "PATCH", - "authentication": "device-uuid", + "authentication": "username", "body": { - "id": "string", - "lat": "number", - "lon": "number" + "cat_id": "string", + "name": "string, optional", + "description": "string, optional", + "picture_url": "string, optional" }, - "result": {} - }, - { - "path": "/api/users/:id/devices", - "description": "List all of a users devices", - "method": "GET", - "authentication": "none", "result": { "success": true, - "data": [ - { - "id": "cm3owzqrd0001z4qlshsse6re", - "name": "GPS Device", - "uuid": "31ee122b-0bc3-446f-bf67-ea945cef4c1c", - "owner_id": "cm3op7iwu0000jrcqa60tc9kv", - "last_pulse_at": null, - "last_location": {}, - "location_history": [], - "updated_at": "2024-11-19T20:36:00.698Z", - "created_at": "2024-11-19T20:36:00.698Z" - } - ] + "data": { + "id": "cm3pz1t0v000308jka8bl7x25", + "name": "Daisy, Eater of Worlds", + "description": "Meow meow. Meow meow? Meow!", + "picture_url": "https://c8.alamy.com/comp/DBTJAD/a-closeup-picture-of-a-cats-face-on-a-white-background-DBTJAD.jpg", + "device_id": "cm3pz39ec0003110jpvg6mya6", + "owner_id": "cm3op7iwu0000jrcqa60tc9kv", + "updated_at": "2024-11-20T14:31:14.136Z", + "created_at": "2024-11-20T14:22:30.232Z", + "deleted_at": null + } + } + }, + "/api/devices/create": { + "description": "Register a new device", + "method": "POST", + "authentication": "username", + "body": {}, + "result": { + "success": true } }, - { - "path": "/api/devices/delete", + "/api/devices/delete": { "description": "Delete a device", "method": "DELETE", "authentication": "username", "result": {} }, - { - "path": "/api/cats/create", - "description": "Register a new cat", - "method": "POST", - "authentication": "username", + "/api/devices/update": { + "description": "Update information ", + "method": "PATCH", + "authentication": "device-uuid", "body": { - "name": "string, optional", - "description": "string, optional", - "picture_url": "string, optional" + "id": "string", + "lat": "number", + "lon": "number" }, - "result": { - "success": true, - "data": {} - } + "result": {} }, - { - "path": "/api/users/:id/cats", + "/api/users/:id/cats": { "description": "List all of a users cats", "method": "GET", "authentication": "none", @@ -113,30 +101,25 @@ ] } }, - { - "path": "/api/cats/update", - "description": "Update a cats social information", - "method": "PATCH", - "authentication": "username", - "body": { - "cat_id": "string", - "name": "string, optional", - "description": "string, optional", - "picture_url": "string, optional" - }, + "/api/users/:id/devices": { + "description": "List all of a users devices", + "method": "GET", + "authentication": "none", "result": { "success": true, - "data": { - "id": "cm3pz1t0v000308jka8bl7x25", - "name": "Daisy, Eater of Worlds", - "description": "Meow meow. Meow meow? Meow!", - "picture_url": "https://c8.alamy.com/comp/DBTJAD/a-closeup-picture-of-a-cats-face-on-a-white-background-DBTJAD.jpg", - "device_id": "cm3pz39ec0003110jpvg6mya6", - "owner_id": "cm3op7iwu0000jrcqa60tc9kv", - "updated_at": "2024-11-20T14:31:14.136Z", - "created_at": "2024-11-20T14:22:30.232Z", - "deleted_at": null - } + "data": [ + { + "id": "cm3owzqrd0001z4qlshsse6re", + "name": "GPS Device", + "uuid": "31ee122b-0bc3-446f-bf67-ea945cef4c1c", + "owner_id": "cm3op7iwu0000jrcqa60tc9kv", + "last_pulse_at": null, + "last_location": {}, + "location_history": [], + "updated_at": "2024-11-19T20:36:00.698Z", + "created_at": "2024-11-19T20:36:00.698Z" + } + ] } } -] +} diff --git a/src/routes/root.ts b/src/routes/root.ts index c8cf4ea..6f6c0e9 100644 --- a/src/routes/root.ts +++ b/src/routes/root.ts @@ -1,9 +1,8 @@ import { Router } from 'express'; -import * as controller from '../controllers/root'; +import { endpoints } from '../controllers/root'; const root: Router = Router(); -root.get('/', controller.index); -root.get('/endpoints', controller.endpoints); +root.get('/', endpoints); export default root;