Wiki source code of API V2.0

Version 9.1 by Treyfane Dingo on 2024/02/11 19:41

Show last authors
1 The L.A.S.S.I.E. API V 2.0 can be reached via
2
3 {{{https://api.lassie.online/v2.0}}}
4
5 === Required POST Parameters ===
6
7 The parameters have to be send as **URLencoded form data**. The API needs at least two parameters to work:
8
9 * apikey
10 * request
11 * command (optional)
12
13 The API-Key has to be set in "System Settings" → "API Keys". Preferrably a longer and unique key (like a MD5SUM). An specific API key can only be used for a corresponding request type.
14
15 (% style="width:50%" %)
16 |=(% colspan="3" %)Requests and Commands
17 |=(% scope="col" %)Request|=Command|=Description
18 |(% rowspan="4" %)lostandfounddb|lostandfound|(Default) Returns all active (not returned) lost & found items from the Lost & Found Database
19 |lost|Returns all active (not returned) lost items from the Lost & Found Database
20 |found|Returns all active (not returned) found items from the Lost & Found Database
21 |returned|Returns all inactive / returned items from the Lost & Found Database
22 |briefings| |Returns all briefings (i.e. Security News) classified as PUBLIC
23
24 The request "lostandfounddb" without a command will return the active Lost & Found Database entries for the respective Convention as a JSON. This includes Links to the uploaded images. Thus, the information can be processed on an external Website, e.g. the convention's homepage.
25
26 === Example (CURL) ===
27
28 {{{curl -X POST -d "apikey=ae629a834729fd3aac6d1f827b1793b0" -d "request=lostandfounddb" https://api.lassie.online/v2.0}}}
29
30 This example will display the entire Lost & Found Database of FTC.
31
32 {{{curl -X POST -d "apikey=ae629a834729fd3aac6d1f827b1793b0" -d "request=lostandfounddb" -d "command=lost" https://api.lassie.online/v2.0}}}
33
34 This example will display only the lost items of the Lost & Found Database of FTC.
35
36 === Test API Keys ===
37
38 The API Keys for FurtherTestCon (FTC) are:
39
40 {{{ae629a834729fd3aac6d1f827b1793b2 Attendee Database
41 ae629a834729fd3aac6d1f827b1793b1 Operatives Database
42 ae629a834729fd3aac6d1f827b1793b0 Lost & Found Database
43 ae629a834729fd3aac6d1f827b1793b3 Briefings Database}}}
44
45 === Output ===
46
47 The output of an valid request to the API will be a JSON-Object like the following examples:
48
49 ==== Lost & Found Database ====
50
51 {{box}}
52 {"data":[{"id":1925,"image":null,"thumb":null,"title":"Image","description":"invisible, watercolour, found in Schroedinger's box","status":"F","lost_timestamp":null,"found_timestamp":"2023-11-24 00:27:24","return_timestamp":null},{"id":1921,"image":"https:\/\/api.lassie.furcom.org\/images\/lostandfound_db\/fe3c6670a33d8f4199ffa95a5c23b622.png","thumb":"https:\/\/api.lassie.furcom.org\/images\/lostandfound_db\/thumbnail\/fe3c6670a33d8f4199ffa95a5c23b622.png","title":"Sense of Taste","description":"lost in Hotel Restaurant","status":"L","lost_timestamp":"2023-11-01 16:13:02","found_timestamp":null,"return_timestamp":null},{"id":1920,"image":"https:\/\/api.lassie.furcom.org\/images\/lostandfound_db\/bc7c343fb3807d4d41b7e04fa909aad5.png","thumb":"https:\/\/api.lassie.furcom.org\/images\/lostandfound_db\/thumbnail\/bc7c343fb3807d4d41b7e04fa909aad5.png","title":"Vape","description":"black \/ rainbow, \"GEEKVAPE\", found at Open Stage","status":"F","lost_timestamp":null,"found_timestamp":"2023-09-30 23:52:38","return_timestamp":null}]}
53 {{/box}}
54
55 (% style="width:50%" %)
56 |=(% colspan="3" %)Lost & Found fieldset
57 |=(% scope="col" %)Key|=Field|=NULL
58 |id|Numeric value, PRIMARY KEY|-
59 |image|URL|null
60 |thumb|URL|null
61 |title|Text|empty string
62 |description|Text|empty string
63 |status|L ~| F ~| R (Lost, Found or Returned)|-
64 |lost_timestamp|ISO date|null
65 |found_timestamp|ISO date|null
66 |return_timestamp|ISO date|null
67
68 ==== Briefings Database ====
69
70 {{box}}
71 {"data":[{"id":"17","class":"P","topic":"UPDATE - Security News 21.12.2021","content":"<div id=\"briefing_content_content\"><div><b>Germany cancelled New Years Eve<\/b><\/div><div>Although it might calendar wise be unwise, Germany just cancelled New Years Eve. Further information can be obtained elsewhere.<\/div><div><br><\/div><div><b>Some things found<\/b><\/div><div>Security\r\n wants to remind all attendees that information about lost or found \r\nitems can be obtained via the APP or the Website of the convention. Lost\r\n &amp; Found is maintained by security and located in the security \r\noffice.<\/div><div><br><\/div><div><b>Quote of the day<\/b><\/div><div>\"Where is your neighbour?\"<\/div><div>\"He's in the garden ...\"<\/div><div>\"I can't see him ...\"<\/div><div>\"Oh, you'd have to dig quite a bit ...\"<br><\/div><div><br><\/div><\/div>","ops_id":"112","datetime_creation":"2021-12-21 22:19:45","datetime_lastchange":"","datetime":"2021-12-21 22:19:45"}]}
72 {{/box}}
73
74 (% style="width:50%" %)
75 |=(% colspan="3" %)Briefings fieldset
76 |=(% scope="col" %)Key|=Field|=NULL
77 |id|Numeric value, PRIMARY KEY|-
78 |class|P (hopefully only P)|-
79 |topic|Text|empty string
80 |content|HTML|empty string
81 |ops_id|Numeric value, the L.A.S.S.I.E. ID of the creator|-
82 |datetime_creation|ISO date|-
83 |datetime_lastchange|ISO date|null
84 |datetime|ISO date which should be displayed. Is creation or lastchange whatever is bigger.|-
85
86 ==== Empty Object ====
87
88 {{box}}
89 {"data":[]}
90 {{/box}}
91
92 === Error Codes ===
93
94 The API will send a JSON-Object upon errors
95
96 {{box}}
97 {"error":{"code":"503","message":"Maintenance Mode enabled - please try again later"}}
98 {{/box}}
99
100 The following error codes are implemented:
101
102 (% style="width:50%" %)
103 |=(% colspan="3" %)Error Codes
104 |=(% scope="col" %)Code|=Message|=Description
105 |401|Unauthorized|API-Key is not correct or no API-Key provided.
106 |500|Internal server error|Most likely the mySQL-Connection failed. A certain Dingo might be rather busy at this time.
107 |501|Bad or no request|Whatever you send, it wasn't a valid request.
108 |503|Maintenance Mode enabled - please try again later|Might follow an error 500 and the Dingo is still busy ...