diff --git a/res/template/apidoc.html b/res/template/apidoc.html
index 624da7d..da21d1d 100644
--- a/res/template/apidoc.html
+++ b/res/template/apidoc.html
@@ -17,9 +17,7 @@
don't require an API key. All methods which delete or modify a
resource do require an API key.
-
- Though API keys have not been implemented yet, so you can't use
- those methods yet.
+ API keys can be obtained from the login API.
Some JSON responses include fields which end in "_href" (some @@ -46,6 +44,11 @@ {{template "api-list-post"}} {{template "api-list-get"}} +
+ Creates a new directory or uploads a file to an existing directory. +
+ +Param | +Location | +Description | +
type | +Form Values | +The type of node to create, can either be 'directory', or 'file' | +
name | +Form Values | ++ Name of the directory to create, or of file to create. Not + required if 'type' is 'file' + | +
file | +Form Values | ++ Multipart file to upload to the directory. Will be ignored + if 'type' is 'directory' + | +
HTTP 200: OK +{ + "success": true, + "id": "abc123" // ID of the newly uploaded file +}+ todo +
+ Returns information about the requested path. +
+Param | +Required | +Location | +Description | +
path | +true | +URL | +Path to the directory or file to request | +
download | +false | +URL | ++ If the URL paramater '?download' is passed the requested + file will be downloaded (if it is a file) + | +
HTTP 200: OK +{ + "success": true, + "name": "some dir", + "path": "/some dir", + "type": "directory", + "child_directories": [ + { + "name": "some other directory", + "path": "/some dir/some other directory" + } + ], + "child_files": [ + { + "name": "11. Lenny Kravitz - Fly away.ogg", + "path": "/some dir/11. Lenny Kravitz - Fly away.ogg" + } + ] +}+
HTTP 200: OK +{ + "success": true, + "name": "11. Lenny Kravitz - Fly away.ogg", + "path": "/some dir/11. Lenny Kravitz - Fly away.ogg", + "type": "file", + "file_info": { + "success": true, + "id": "Jf_u5TI9", + "file_name": "11. Lenny Kravitz - Fly away.ogg", + "date_upload": "2018-07-04T22:24:48Z", + "date_last_view": "2018-07-04T22:24:48Z", + "file_size": 9757269, + "views": 0, + "mime_type": "application/ogg", + "thumbnail_href": "/file/Jf_u5TI9/thumbnail" + } +}+
+ Deletes a filesystem node. +
+Param | +Required | +Location | +Description | +
path | +true | +URL | +Path of the entity to delete | +
HTTP 200: OK +{ + "success": true +}+
- Deletes a file. Only works when the users owns the file. -
-Param | -Required | -Location | -Description | -
id | -true | -URL | -ID of the file to delete | -
HTTP 200: OK -{ - "success": true, - "value": "file_deleted", - "message": "The file has been deleted." -}-
HTTP 404: Not Found -{ - "success": false, - "value": "file_not_found", - "message": "File ID was not found in the database." -}-
HTTP 401: Unauthorized -{ - "success": false, - "value": "unauthorized", - "message": "You are not logged in." -}-
HTTP 403: Forbidden -{ - "success": false, - "value": "forbidden", - "message": "This is not your file." -}-
- Same as GET /file/{id}, but with File Transfer HTTP - headers. Will trigger a save file dialog when opened in - a web browser. Also supports byte range requests. -
-- Returns the full file associated with the ID. Supports - byte range requests. -
-Param | -Required | -Location | -Description | -
id | -true | -URL | -ID of the file to request | -
- Returns information about one or more files. - You can also put a comma separated list of file IDs in - the URL and it will return an array of file info, - instead of a single object. -
-Param | -Required | -Location | -Description | -
id | -true | -URL | -ID(s) of the file | -
HTTP 200: OK -{ - "success": true, - "id": "123abc", - "file_name": "screenshot.png", - "date_upload": 1485894987, // Timestamp - "date_last_view": 1485894987, // Timestamp - "file_size": 5694837, // Bytes - "views" 1234, // Amount of unique file views - "mime_type" "image/png", - "description": "File description", - "mime_image": "http://pixeldra.in/res/img/mime/image-png.png", // Image associated with the mime type - "thumbnail": "http://pixeldra.in/api/thumbnail/123abc" // Link to a thumbnail of this file -}-
HTTP 404: Not Found -{ - "success": false, - "value": "file_not_found" -}-
- Returns a PNG thumbnail image representing the file. - The thumbnail is always 100*100 px. If the source file - is parsable by imagemagick the thumbnail will be - generated from the file, if not it will be a generic - mime type icon. -
-Param | -Required | -Location | -Description | -
id | -true | -URL | -ID of the file to get a thumbnail for | -
- A PNG image of 100*100 px. -
-- Upload a file. -
- -Param | -Required | -Maximum Size | -Default | -Description | -
file | -true | -5 000 000 000 Bytes | -none | -Multipart file to upload | -
name | -false | -255 Characters | -Multipart file name | -Name of the file to upload | -
HTTP 200: OK -{ - "success": true, - "id": "abc123" // ID of the newly uploaded file -}-
HTTP 422: Unprocessable Entity -{ - "success": false, - "value": "no_file", - "message": "The file does not exist or is empty." -}-
HTTP 500: Internal Server Error -{ - "success": false, - "value": "internal", - "message": "An internal server error occurred." -}-
HTTP 413: Payload Too Large -{ - "success": false, - "value": "file_too_large", - "message": "The file you tried to upload is too large. Max 5000 MB allowed." -}-
HTTP 500: Internal Server Error -{ - "success": false, - "value": "writing", - "message": "Something went wrong while writing the file to disk, the server may be out of storage space." -}-
HTTP 413: Payload Too Large -{ - "success": false, - "value": "name_too_long", - "message": "File Name is too long, Max 255 characters allowed." -}-
+ Upload a file. +
+ +Param | +Required | +Maximum Size | +Default | +Description | +
file | +true | +5 000 000 000 Bytes | +none | +Multipart file to upload | +
name | +false | +255 Characters | +Multipart file name | +Name of the file to upload | +
HTTP 200: OK +{ + "success": true, + "id": "abc123" // ID of the newly uploaded file +}+
HTTP 422: Unprocessable Entity +{ + "success": false, + "value": "no_file", + "message": "The file does not exist or is empty." +}+
HTTP 500: Internal Server Error +{ + "success": false, + "value": "internal", + "message": "An internal server error occurred." +}+
HTTP 413: Payload Too Large +{ + "success": false, + "value": "file_too_large", + "message": "The file you tried to upload is too large. Max 5000 MB allowed." +}+
HTTP 500: Internal Server Error +{ + "success": false, + "value": "writing", + "message": "Something went wrong while writing the file to disk, the server may be out of storage space." +}+
HTTP 413: Payload Too Large +{ + "success": false, + "value": "name_too_long", + "message": "File Name is too long, Max 255 characters allowed." +}+
+ Returns the full file associated with the ID. Supports + byte range requests. +
+Param | +Required | +Location | +Description | +
id | +true | +URL | +ID of the file to request | +
+ Same as GET /file/{id}, but with File Transfer HTTP + headers. Will trigger a save file dialog when opened in + a web browser. Also supports byte range requests. +
++ Returns information about one or more files. + You can also put a comma separated list of file IDs in + the URL and it will return an array of file info, + instead of a single object. +
+Param | +Required | +Location | +Description | +
id | +true | +URL | +ID(s) of the file | +
HTTP 200: OK +{ + "success": true, + "id": "123abc", + "file_name": "screenshot.png", + "date_upload": 1485894987, // Timestamp + "date_last_view": 1485894987, // Timestamp + "file_size": 5694837, // Bytes + "views" 1234, // Amount of unique file views + "mime_type" "image/png", + "description": "File description", + "mime_image": "http://pixeldra.in/res/img/mime/image-png.png", // Image associated with the mime type + "thumbnail": "http://pixeldra.in/api/thumbnail/123abc" // Link to a thumbnail of this file +}+
HTTP 404: Not Found +{ + "success": false, + "value": "file_not_found" +}+
+ Returns a PNG thumbnail image representing the file. + The thumbnail is always 100*100 px. If the source file + is parsable by imagemagick the thumbnail will be + generated from the file, if not it will be a generic + mime type icon. +
+Param | +Required | +Location | +Description | +
id | +true | +URL | +ID of the file to get a thumbnail for | +
+ A PNG image of 100*100 px. +
++ Deletes a file. Only works when the users owns the file. +
+Param | +Required | +Location | +Description | +
id | +true | +URL | +ID of the file to delete | +
HTTP 200: OK +{ + "success": true, + "value": "file_deleted", + "message": "The file has been deleted." +}+
HTTP 404: Not Found +{ + "success": false, + "value": "file_not_found", + "message": "File ID was not found in the database." +}+
HTTP 401: Unauthorized +{ + "success": false, + "value": "unauthorized", + "message": "You are not logged in." +}+
HTTP 403: Forbidden +{ + "success": false, + "value": "forbidden", + "message": "This is not your file." +}+
- Returns information about a file list and the files in it. -
-Param | -Required | -Location | -Description | -
id | -true | -URL | -ID of the list | -
- The API will return some basic information about every file. - Every file also has a "detail_href" field which contains a URL - to the info API of the file. Follow that link to get more - information about the file like size, checksum, mime type, etc. - The address is relative to the API URL and should be appended to - the end. -
-HTTP 200: OK -{ - "success": true, - "id": "L8bhwx", - "title": "Rust in Peace", - "date_created": 1513033315, - "files": [ - { - "detail_href": "/file/_SqVWi/info", - "id": "_SqVWi", - "file_name": "01 Holy Wars... The Punishment Due.mp3", - "description": "", - "date_created": 1513033304, - "date_last_view": 1513033304, - "list_description": "" - }, - { - "detail_href": "/file/RKwgZb/info", - "id": "RKwgZb", - "file_name": "02 Hangar 18.mp3", - "description": "", - "date_created": 1513033304, - "date_last_view": 1513033304, - "list_description": "" - }, - { - "detail_href": "/file/DRaL_e/info", - "id": "DRaL_e", - "file_name": "03 Take No Prisoners.mp3", - "description": "", - "date_created": 1513033304, - "date_last_view": 1513033304, - "list_description": "" - } - ] -} --
HTTP 404: Not Found -{ - "success": false, - "value": "list_not_found", -} --
- Creates a list of files that can be viewed together on the file + Creates a list of files that can be viewed together on the file viewer page.
+ Returns information about a file list and the files in it. +
+Param | +Required | +Location | +Description | +
id | +true | +URL | +ID of the list | +
+ The API will return some basic information about every file. + Every file also has a "detail_href" field which contains a URL + to the info API of the file. Follow that link to get more + information about the file like size, checksum, mime type, etc. + The address is relative to the API URL and should be appended to + the end. +
+HTTP 200: OK +{ + "success": true, + "id": "L8bhwx", + "title": "Rust in Peace", + "date_created": 1513033315, + "files": [ + { + "detail_href": "/file/_SqVWi/info", + "id": "_SqVWi", + "file_name": "01 Holy Wars... The Punishment Due.mp3", + "description": "", + "date_created": 1513033304, + "date_last_view": 1513033304, + "list_description": "" + }, + { + "detail_href": "/file/RKwgZb/info", + "id": "RKwgZb", + "file_name": "02 Hangar 18.mp3", + "description": "", + "date_created": 1513033304, + "date_last_view": 1513033304, + "list_description": "" + }, + { + "detail_href": "/file/DRaL_e/info", + "id": "DRaL_e", + "file_name": "03 Take No Prisoners.mp3", + "description": "", + "date_created": 1513033304, + "date_last_view": 1513033304, + "list_description": "" + } + ] +} ++
HTTP 404: Not Found +{ + "success": false, + "value": "list_not_found", +} ++