fix dlen
[citadel.git] / webcit-ng / api.txt
index 37d90510b158dccf4aaafc513cd24848c3a07c47..8660c8f2ca7d20f17fc0a243d90e3247993fb963 100644 (file)
@@ -1,32 +1,52 @@
+Method          URL                                Function
+------          ------------------------------     -------------------------------------
+GET             /                                  Site root will redirect to a landing page
 
-Method         URL                             Function
-------         ------------------------------  -------------------------------------
-GET            /                               Site root will redirect to a landing page
-GET            /ctdl/f/                        returns a JSON-encoded list of accessible floors
-GET            /ctdl/r/                        returns a JSON-encoded list of accessible rooms
-OPTIONS                /ctdl/r/ROOMNAME/               returns just what you'd expect
-PROPFIND       /ctdl/r/ROOMNAME/               Show a bunch of crap
-GET            /ctdl/r/ROOMNAME/               Returns information about the room (name, view, etc.) in JSON format
-GET            /ctdl/r/ROOMNAME/info.txt       Returns the room info banner for this room
-GET            /ctdl/r/ROOMNAME/msgs.all       JSON array of message list in room
-GET            /ctdl/r/ROOMNAME/msgs.new       JSON array of message list in room (new messages)
-GET            /ctdl/r/ROOMNAME/MSGNUM         Retrieve the content of an individual message
-DELETE         /ctdl/r/ROOMNAME/MSGNUM         Deletes a message from a room
+GET             /ctdl/f/                           returns a JSON-encoded list of accessible floors
 
-PUT            /ctdl/r/ROOMNAME/xxx            DAV operation to insert a new message into a room
-                                               Accepted parameters:
-                                               wefw    List of message references
-                                               subj    Message subject
-                                               The returned ETag will be the new message number.
+GET             /ctdl/r/                           returns a JSON-encoded list of accessible rooms
+OPTIONS         /ctdl/r/<roomname>/                returns just what you'd expect
+PROPFIND        /ctdl/r/<roomname>/                Show a bunch of crap
+GET             /ctdl/r/<roomname>/                Returns information about the room (name, view, etc.) in JSON format
+GET             /ctdl/r/<roomname>/info.txt        Returns the room info banner for this room
+GET             /ctdl/r/<roomname>/msgs.all        JSON array of message list in room
+GET             /ctdl/r/<roomname>/msgs.new        JSON array of message list in room (new messages)
+GET             /ctdl/r/<roomname>/mailbox         JSON dictionary of a mailbox summary in this room
+GET             /ctdl/r/<roomname>/stat            JSON dictionary of the server STAT command (room name and modification time)
+GET             /ctdl/r/<roomname>/<msgnum>        Retrieve the content of an individual message
+GET             /ctdl/r/<roomname>/<msgnum>/json   Retrieve an individual message in a room, encapsulated in JSON
+GET             /ctdl/r/<roomname>/<msgnum>/<part> Retrieve a MIME component of a message, specified by partnum
+DELETE          /ctdl/r/<roomname>/<msgnum>        Delete a message from a room
+MOVE            /ctdl/r/<roomname>/<msgnum>        Move a message to another room (requires Destination)
 
-GET            /ctdl/r/ROOMNAME/slrp           Set the "Last Read Pointer" for the room
-                                               Accepted parameters:
-                                               last    The number of the most recently seen message
+PUT             /ctdl/r/<roomname>/<xxx>           DAV operation to insert a new message into a room
+                Accepted parameters:
+                wefw List of message references, separated by "!" delimiter
+                subj Message subject
+                The returned ETag will be the new message number.
 
-GET            /ctdl/r/ROOMNAME/MSGNUM/json    Retrieve an individual message in a room, encapsulated in JSON
-GET            /ctdl/c/info                    Returns a JSON representation of the output of an INFO server command
-POST           /ctdl/a/login                   Send it a your credentials and it will log you in
-GET            /ctdl/a/whoami
-GET            /ctdl/u/USERNAME/userpic        Returns an image containing the photo/avatar of the specified user
-GET            /ctdl/s/                        Static content (html, css, js, images...)
-GET            /.well-known/                   Static content (RFC5785 compliant paths)
+GET             /ctdl/r/<roomname>/slrp            Set the "Last Read Pointer" for the room
+                Accepted parameters:
+                last The number of the most recently seen message
+
+GET             /ctdl/c/info                       Returns a JSON representation of the output of an INFO server command
+POST            /ctdl/a/login                      Send it a your credentials and it will log you in
+GET             /ctdl/a/whoami
+GET             /ctdl/a/biff                       Check for new mail
+GET             /ctdl/u/<username>/userpic         Returns an image containing the photo/avatar of the specified user
+GET             /ctdl/s/                           Static content (html, css, js, images...)
+GET             /.well-known/                      Static content (RFC5785 compliant paths)
+POST            /ctdl/p                            Handler for uploading attachments and other file items
+                                                   The JSON returned wil contain one or more uploads in an array like this:
+                                                   [
+                                                     {
+                                                       "uploadfilename" : "Track 01.wav",
+                                                       "contenttype" : "audio/wav",
+                                                       "ref" : "cdarzowkk",
+                                                       "contentlength" : 56222252
+                                                     }
+                                                   ]
+GET             /ctdl/p/<ref>                      Fetch a specific item that was uploaded ("ref" was returned by the upload)
+DELETE          /ctdl/p/<ref>                      Delete a specific item that was uploaded ("ref" was returned by the upload)
+GET             /ctdl/p/<msgnum>                   Load the attachments from message <msgnum> in, as if they were uploaded
+                                                   by the client.  Returns the same JSON as "POST /ctdl/p".