EDMS/dms-api.md
shb 384d571997 Merged AWS upload functionality
Uploading now works with AWS. Documentation can be found in dms-api.md at the root folder.
2025-06-18 12:00:36 +08:00

3.7 KiB

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:
    {
      "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:
    {
      "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:
    {
      "status": 201,
      "message": "Folder created successfully",
      "folder": {...}
    }
    

PATCH /api/dms/folder

  • Description: Updates an existing folder (rename or move)
  • Method: PATCH
  • Request Body:
    {
      "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:
    {
      "status": 200,
      "message": "Folder renamed successfully",
      "folder": {...}
    }
    

DELETE /api/dms/folder

  • Description: Deletes an existing folder/cabinet from the DMS
  • Method: DELETE
  • Request Body:
    {
      "cabinet_id": "folder-id"
    }
    
  • Required Fields: cabinet_id
  • Response Example:
    {
      "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:
    {
      "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:
    {
      "fileName": "example.pdf",
      "fileType": "application/pdf"
    }
    
  • Required Fields: fileName, fileType
  • Response Example:
    {
      "status": 200,
      "message": "Signed URL generated for file: example.pdf",
      "signedUrl": "https://bucket-name.s3.region.amazonaws.com/..."
    }
    
  • Error Responses:
    {
      "status": 400,
      "message": "Missing required fields { fileName, fileType }"
    }
    
    {
      "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