1
0
Эх сурвалжийг харах

doc: document /share endpoint

KernelDeimos 11 сар өмнө
parent
commit
807addb4ef
1 өөрчлөгдсөн 116 нэмэгдсэн , 1 устгасан
  1. 116 1
      doc/api/share.md

+ 116 - 1
doc/api/share.md

@@ -2,8 +2,123 @@
 
 Share endpoints allow sharing files with other users.
 
+## POST `/share` (auth required)
 
-## POST `/share/item-by-username` (auth required)
+### Description
+
+The `/share` endpoint shares 1 or more filesystem items
+with one or more recipients. The recipients will receive
+some notification about the shared item, making this
+different from calling `/grant-user-user` with a permission.
+
+### Parameters
+
+- **recipients** _- required_
+  - **accepts:** `string | Array<string>`
+  - **description:**
+    recipients for the filesystem entries being shared.
+  - **notes:**
+    - validation on `string`: email or username
+    - requirement of at least one value
+- **paths:** _- required_
+  - **accepts:** `string | object | Array<string | object>`
+  - **description:**
+    paths of filesystem entries (files or directories)
+    to share with the specified recipients
+  - **notes:**
+    - requirement that file/directory exists
+    - requirement of at least one value
+- **dry_run:** _- optional_
+  - **accepts:** `bool`
+  - **description:**
+    when true, only validation will occur
+    
+### Response
+
+- **$:** `api:share`
+- **$version:** `v0.0.0`
+- **status:** one of: `"success"`, `"mixed"`, `"aborted"`
+- **recipients:** array of: `api:status-report` or
+  `heyputer:api/APIError`
+- **paths:** array of: `api:status-report` or
+  `heyputer:api/APIError`
+- **dry_run:** `true` if present
+
+### Success Response
+
+```json
+{
+    "$": "api:share",
+    "$version": "v0.0.0",
+    "status": "success",
+    "recipients": [
+        {
+            "$": "api:status-report",
+            "status": "success"
+        }
+    ],
+    "paths": [
+        {
+            "$": "api:status-report",
+            "status": "success"
+        }
+    ],
+    "dry_run": true
+}
+```
+
+### Error response (missing file)
+
+```json
+{
+    "$": "api:share",
+    "$version": "v0.0.0",
+    "status": "mixed",
+    "recipients": [
+        {
+            "$": "api:status-report",
+            "status": "success"
+        }
+    ],
+    "paths": [
+        {
+            "$": "heyputer:api/APIError",
+            "code": "subject_does_not_exist",
+            "message": "File or directory not found.",
+            "status": 404
+        }
+    ],
+    "dry_run": true
+}
+```
+
+### Error response (missing user)
+
+```json
+{
+    "$": "api:share",
+    "$version": "v0.0.0",
+    "status": "mixed",
+    "recipients": [
+        {
+            "$": "heyputer:api/APIError",
+            "code": "user_does_not_exist",
+            "message": "The user `non_existing_user` does not exist.",
+            "username": "non_existing_user",
+            "status": 422
+        }
+    ],
+    "paths": [
+        {
+            "$": "api:status-report",
+            "status": "success"
+        }
+    ],
+    "dry_run": true
+}
+```
+
+## **deprecated** POST `/share/item-by-username` (auth required)
 
 ### Description