Wiki source code of API V1.0

Version 1.1 by Treyfane Dingo on 2023/05/27 01:17

Show last authors
1 The L.A.S.S.I.E. API V 1.0 can be reached via
2
3 {{{https://www.furcom.org/api/lassie/v1.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". Preferrably a longer and unique key (like a MD5SUM).
14
15 Requests and Commands
16
17 |=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://www.furcom.org/api/lassie/v1.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://www.furcom.org/api/lassie/v1.0}}}
33
34 This example will display only the lost items of the Lost & Found Database of FTC.
35
36 === Output ===
37
38 The output of an valid request to the API will be a JSON-Object like the following examples:
39
40 ==== Lost & Found Database ====
41
42 {{{{"data":[{"id":"1","image":"https:\/\/www.furcom.org\/lassie\/images\/lostandfound_db\/9a7a1039bcbe887ed2f57a5b64c56c51.png","title":"A Piece of Cake","description":"Just another piece of cake","status":"F","lost_timestamp":"","found_timestamp":"2021-06-22 19:08:16","return_timestamp":""}]}}}}
43
44 Lost & Found fieldset
45
46 |=Key|=Field|=NULL
47 |id|Numeric value, PRIMARY KEY|-
48 |image|URL|null
49 |title|Text|empty string
50 |description|Text|empty string
51 |status|L ~| F ~| R (Lost, Found or Returned)|-
52 |lost_timestamp|ISO date|null
53 |found_timestamp|ISO date|null
54 |return_timestamp|ISO date|null
55
56 ==== Briefings Database ====
57
58 {{{{"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 neighbor?\"<\/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"}]}}}}
59
60 Briefings fieldset
61
62 |=Key|=Field|=NULL
63 |id|Numeric value, PRIMARY KEY|-
64 |class|P (hopefully only P)|-
65 |topic|Text|empty string
66 |content|HTML|empty string
67 |ops_id|Numeric value, the L.A.S.S.I.E. ID of the creator|-
68 |datetime_creation|ISO date|-
69 |datetime_lastchange|ISO date|null
70 |datetime|ISO date which should be displayed. Is creation or lastchange whatever is bigger.|-
71
72 ==== Empty Object ====
73
74 {{{{"data":[]}}}}
75
76 === Error Codes ===
77
78 The API will send a JSON-Object upon errors
79
80 {{{{"error":{"code":"503","message":"Maintenance Mode enabled - please try again later"}}}}}
81
82 The following error codes are implemented:
83
84 Error Codes
85
86 |=Code|=Message|=Description
87 |401|Unauthorized|API-Key is not correct or no API-Key provided.
88 |500|Internal server error|Most likely the mySQL-Connection failed. A certain Dingo might be rather busy at this time.
89 |501|Bad or no request|Whatever you send, it wasn't a valid request.
90 |503|Maintenance Mode enabled - please try again later|Might follow an error 500 and the Dingo is still busy ...