API V2.0

Version 10.1 by Treyfane Dingo on 2024/02/11 19:43

The L.A.S.S.I.E. API V 2.0 can be reached via

https://api.lassie.online/v2.0

Required POST Parameters

The parameters have to be send as URLencoded form data. The API needs at least two parameters to work:

  • apikey
  • request
  • command (optional)

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.

Requests and Commands
RequestCommandDescription
lostandfounddblostandfound(Default) Returns all active (not returned) lost & found items from the Lost & Found Database
lostReturns all active (not returned) lost items from the Lost & Found Database
foundReturns all active (not returned) found items from the Lost & Found Database
returnedReturns all inactive / returned items from the Lost & Found Database
briefings Returns all briefings (i.e. Security News) classified as PUBLIC

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.

Example (CURL)

curl -X POST -d "apikey=ae629a834729fd3aac6d1f827b1793b0" -d "request=lostandfounddb" https://api.lassie.online/v2.0

This example will display the entire Lost & Found Database of FTC.

curl -X POST -d "apikey=ae629a834729fd3aac6d1f827b1793b0" -d "request=lostandfounddb" -d "command=lost" https://api.lassie.online/v2.0

This example will display only the lost items of the Lost & Found Database of FTC.

Test API Keys

The API Keys for FurtherTestCon (FTC) are:

ae629a834729fd3aac6d1f827b1793b2    Attendee Database
ae629a834729fd3aac6d1f827b1793b1    Operatives Database
ae629a834729fd3aac6d1f827b1793b0    Lost & Found Database
ae629a834729fd3aac6d1f827b1793b3    Briefings Database

Output

The output of an valid request to the API will be a JSON-Object like the following examples:

Lost & Found Database

{
  "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
    }
  ]
}

Lost & Found fieldset
KeyFieldNULL
idNumeric value, PRIMARY KEY-
imageURLnull
thumbURLnull
titleTextempty string
descriptionTextempty string
statusL | F | R (Lost, Found or Returned)-
lost_timestampISO datenull
found_timestampISO datenull
return_timestampISO datenull

Briefings Database

{
  "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"
    }
  ]
}

Briefings fieldset
KeyFieldNULL
idNumeric value, PRIMARY KEY-
classP (hopefully only P)-
topicTextempty string
contentHTMLempty string
ops_idNumeric value, the L.A.S.S.I.E. ID of the creator-
datetime_creationISO date-
datetime_lastchangeISO datenull
datetimeISO date which should be displayed. Is creation or lastchange whatever is bigger.-

Empty Object

{
  "data": []
}

Error Codes

The API will send a JSON-Object upon errors

{
  "error": {
    "code": "503",
    "message": "Maintenance Mode enabled - please try again later"
  }
}

The following error codes are implemented:

Error Codes
CodeMessageDescription
401UnauthorizedAPI-Key is not correct or no API-Key provided.
500Internal server errorMost likely the mySQL-Connection failed. A certain Dingo might be rather busy at this time.
501Bad or no requestWhatever you send, it wasn't a valid request.
503Maintenance Mode enabled - please try again laterMight follow an error 500 and the Dingo is still busy ...