EDMS/dms-api.md
shb 47d3ea4987 Updated dms-api.md
Added documentation for new API endpoints. Some endpoints have goofy messages for now.
2025-06-18 12:49:08 +08:00

159 lines
3.7 KiB
Markdown

# DMS API Documentation
## Folders
### GET /api/dms/folder
- **Description**: Retrieves all folders/cabinets in the DMS
- **Method**: GET
- **Response**: List of all folders with their details
- **Response Example**:
```json
{
"status": 200,
"message": "Hello from the backend",
"folders": [...]
}
```
### POST /api/dms/folder
- **Description**: Creates a new folder/cabinet in the DMS
- **Method**: POST
- **Request Body**:
```json
{
"cabinet_name": "Cabinet 1",
"cabinet_parent_id": null,
"cabinet_owner": "",
"cabinet_sector": "",
"dp_id": null,
"userID": null
}
```
- **Required Fields**: cabinet_name, cabinet_sector
- **Response Example**:
```json
{
"status": 201,
"message": "Folder created successfully",
"folder": {...}
}
```
### PATCH /api/dms/folder
- **Description**: Updates an existing folder (rename or move)
- **Method**: PATCH
- **Request Body**:
```json
{
"function": "rename|move",
"cabinet_id": "folder-id",
"new_name": "New Folder Name",
"new_parent_id": "parent-folder-id"
}
```
- **Required Fields**: cabinet_id, function
- **Functions**:
- `rename`: Changes folder name (requires new_name)
- `move`: Changes parent folder (requires new_parent_id)
- **Response Example**:
```json
{
"status": 200,
"message": "Folder renamed successfully",
"folder": {...}
}
```
### DELETE /api/dms/folder
- **Description**: Deletes an existing folder/cabinet from the DMS
- **Method**: DELETE
- **Request Body**:
```json
{
"cabinet_id": "folder-id"
}
```
- **Required Fields**: cabinet_id
- **Response Example**:
```json
{
"status": 200,
"message": "Folder deleted successfully",
"folder": {...}
}
```
## Settings
### GET /api/dms/settings
- **Description**: Retrieves DMS configuration settings
- **Method**: GET
- **Response**: Comprehensive settings for the DMS organized by category
- **Categories**:
- User & Access Management
- Document & Folder Settings
- Metadata & Tagging
- Workflow & Automation
- Upload & Storage Settings
- System Settings
### POST /api/dms/settings
- **Description**: Updates DMS configuration settings
- **Method**: POST
- **Request Body**: Object containing settings to update, structured by category
- **Categories**:
- access: User roles, permissions, authentication
- documents: Folder hierarchy, naming conventions, retention, version control
- metadata: Custom fields, tagging, classification
- workflow: Approval flows, notifications, automation
- upload: File types, size limits, quotas, storage
- system: Timezone, backup, maintenance, monitoring
- **Response Example**:
```json
{
"statusCode": 200,
"message": "DMS settings updated successfully",
"data": { "settingID": 1 }
}
```
## Files
### POST /api/dms/upload-file
- **Description**: Generates a signed URL for direct file upload to S3
- **Method**: POST
- **Content-Type**: multipart/form-data
- **Request Body**:
```json
{
"fileName": "example.pdf",
"fileType": "application/pdf"
}
```
- **Required Fields**: fileName, fileType
- **Response Example**:
```json
{
"status": 200,
"message": "Signed URL generated for file: example.pdf",
"signedUrl": "https://bucket-name.s3.region.amazonaws.com/..."
}
```
- **Error Responses**:
```json
{
"status": 400,
"message": "Missing required fields { fileName, fileType }"
}
```
```json
{
"status": 500,
"message": "Failed to generate signed URL",
"error": "Error details..."
}
```
- **Notes**:
- The signed URL expires after 60 seconds
- Use the returned signedUrl with a PUT request to upload the file directly to S3
- Include the file's Content-Type header when uploading to S3