cf0652af0bca1a2220bb501b0814c9da7f236207
[citadel.git] / webcit-ng / api.txt
1 Method          URL                                Function
2 ------          ------------------------------     -------------------------------------
3 GET             /                                  Site root will redirect to a landing page
4
5 GET             /ctdl/f/                           returns a JSON-encoded list of accessible floors
6
7 GET             /ctdl/r/                           returns a JSON-encoded list of accessible rooms
8 OPTIONS         /ctdl/r/<roomname>/                returns just what you'd expect
9 PROPFIND        /ctdl/r/<roomname>/                Show a bunch of crap
10 GET             /ctdl/r/<roomname>/                Returns information about the room (name, view, etc.) in JSON format
11 GET             /ctdl/r/<roomname>/info.txt        Returns the room info banner for this room
12 GET             /ctdl/r/<roomname>/msgs.all        JSON array of message list in room
13 GET             /ctdl/r/<roomname>/msgs.new        JSON array of message list in room (new messages)
14 GET             /ctdl/r/<roomname>/mailbox         JSON dictionary of a mailbox summary in this room
15 GET             /ctdl/r/<roomname>/stat            JSON dictionary of the server STAT command (room name and modification time)
16 GET             /ctdl/r/<roomname>/<msgnum>        Retrieve the content of an individual message
17 GET             /ctdl/r/<roomname>/<msgnum>/json   Retrieve an individual message in a room, encapsulated in JSON
18 GET             /ctdl/r/<roomname>/<msgnum>/<part> Retrieve a MIME component of a message, specified by partnum
19
20 GET             /ctdl/r/<roomname>/calendar:<from>:<to>
21                                                    Retrieve calendar items in the current room.
22                                                    "from" and "to" comprise a range expressed in unix timestamps.
23                                                    You can omit either or both timestamps but not the colons.
24
25 DELETE          /ctdl/r/<roomname>/<msgnum>        Delete a message from a room
26 MOVE            /ctdl/r/<roomname>/<msgnum>        Move a message to another room (requires Destination)
27
28 PUT             /ctdl/r/<roomname>/<xxx>           DAV operation to insert a new message into a room
29                 Accepted parameters:
30                 wefw List of message references, separated by "!" delimiter
31                 subj Message subject
32                 The returned ETag will be the new message number.
33
34 GET             /ctdl/r/<roomname>/slrp            Set the "Last Read Pointer" for the room
35                 Accepted parameters:
36                 last The number of the most recently seen message
37
38 GET             /ctdl/c/info                       Returns a JSON representation of the output of an INFO server command
39 POST            /ctdl/a/login                      Send it a your credentials and it will log you in
40 GET             /ctdl/a/whoami
41 GET             /ctdl/a/biff                       Check for new mail
42 GET             /ctdl/u/<username>/userpic         Returns an image containing the photo/avatar of the specified user
43 GET             /ctdl/s/                           Static content (html, css, js, images...)
44 GET             /.well-known/                      Static content (RFC5785 compliant paths)
45 POST            /ctdl/p                            Handler for uploading attachments and other file items
46                                                    The JSON returned wil contain one or more uploads in an array like this:
47                                                    [
48                                                      {
49                                                        "uploadfilename" : "Track 01.wav",
50                                                        "contenttype" : "audio/wav",
51                                                        "ref" : "cdarzowkk",
52                                                        "contentlength" : 56222252
53                                                      }
54                                                    ]
55 GET             /ctdl/p/<ref>                      Fetch a specific item that was uploaded ("ref" was returned by the upload)
56 DELETE          /ctdl/p/<ref>                      Delete a specific item that was uploaded ("ref" was returned by the upload)
57 GET             /ctdl/p/<msgnum>                   Load the attachments from message <msgnum> in, as if they were uploaded
58                                                    by the client.  Returns the same JSON as "POST /ctdl/p".