Skip to content

Delete Design

Method

REST method is adopted.

HTTP Method

DELETE: Delete design (soft delete)

Naming Convention

To unify the naming of query parameters and nodes and improve readability, snake_case is used for URIs and JSON nodes in requests.

Request and Response

Headers

Meta information is set in HTTP headers, not in the response body.

Request Headers

  • Authorization
  • Content-Type
  • Accept
  • Accept-language

Response Headers

  • Content-Type

Delete Design

URI

DELETE /v1/organizations/{organization_id}/projects/{project_id}/designs/{design_id}

Path Parameters

Name Type Required Description
organization_id number Required Backend PostgreSQL organization ID
project_id number Required Backend PostgreSQL project ID
design_id string Required Design ID (format: {project_id}_{file_id}_{node_id})

Response

The response is JSON.

{
  "id": "42_hDDA9BNori9OTXSClduXqR_40002029:37033",
  "projectId": 42,
  "s3Key": "1/42/design/hDDA9BNori9OTXSClduXqR/40002029-37033.png",
  "frameName": "Login Screen",
  "status": 2,
  "createdAt": 1234567890000,
  "updatedAt": 1234567899999,
  "deletedAt": 1234567899999,
  "createdBy": "user-id",
  "updatedBy": "updater-id",
  "deletedBy": "deleter-id"
}

Response Fields

Name Type Description
id string Design ID (format: {project_id}_{file_id}_{node_id})
projectId number Backend PostgreSQL project ID
s3Key string | null S3 object key
frameName string | null Figma frame name
status number Processing status (0-3)
createdAt number Creation timestamp (epoch milliseconds)
updatedAt number Update timestamp (epoch milliseconds)
deletedAt number Deletion timestamp (epoch milliseconds)
deletedBy string Deleter user ID

Authentication

Authentication is performed using JSON Web Tokens (JWT) issued by Amazon Cognito.

Error Handling

The status codes for error handling are as follows.

Description Status Code Status Name
Missing credentials 401 Unauthorized
Insufficient permissions 403 Forbidden
Design, project, or organization not found 404 Not Found
Internal server error 500 Internal Server Error

Processing Flow

  1. Extract organization ID, project ID, and design ID from path parameters
  2. Verify the user has access to the project
  3. Verify the design belongs to the specified project
  4. Perform soft delete (set deletedAt and deletedBy)
  5. Return deleted design information

Detailed Flowchart

flowchart TD
    Start([DELETE Request]) --> Route[Route Handler]
    Route --> Auth[Auth & Parameter Extraction]
    Auth --> Service[Service Layer]

    Service --> AccessCheck[Access Check]
    AccessCheck --> HasAccess{Write permission?}
    HasAccess -->|No| Err404[404 Not Found]
    HasAccess -->|Yes| Transaction

    Transaction[Begin Transaction] --> CheckExist[Check existing<br/>WHERE deletedAt IS NULL]
    CheckExist --> Exists{Exists?}
    Exists -->|No| Rollback[Rollback]
    Exists -->|Yes| SoftDelete

    Rollback --> Err404

    SoftDelete[UPDATE SET<br/>deletedAt = NOW<br/>deletedBy = user<br/>updatedAt = NOW] --> Refetch[Fetch updated record]

    Refetch --> Commit[Commit]
    Commit --> Success[200 OK]

Notes

This endpoint performs a soft delete. The record is not physically deleted from the database; the deletedAt and deletedBy fields are set instead.