Delulu documentation

Reviews

5 endpoints in the Reviews API group.

Generated from the typed server contract. Download the complete OpenAPI 3.1 specification.

reviews.queue

GET/v1/workspaces/{workspaceId}/reviews

Parameters

NameInRequiredType
workspaceIdpathyesstring
limitquerynovalue
offsetquerynovalue

Request body

No request body.

Responses

StatusMeaning
200Success
401UnauthorizedError
402QuotaExceededError
403ForbiddenError
404NotFoundError
409ConflictError
422ValidationError
429RateLimitedError

Response bodies

200 — application/json

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "postId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "rejected"
            ]
          },
          "contentFingerprint": {
            "type": "string"
          },
          "submittedByMemberId": {
            "type": "string"
          },
          "resolvedByMemberId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "resolvedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "postId",
          "status",
          "contentFingerprint",
          "submittedByMemberId",
          "resolvedByMemberId",
          "resolvedAt"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "NaN"
              ]
            },
            {
              "type": "string",
              "enum": [
                "Infinity"
              ]
            },
            {
              "type": "string",
              "enum": [
                "-Infinity"
              ]
            }
          ]
        },
        {
          "type": "string",
          "enum": [
            "Infinity",
            "-Infinity",
            "NaN"
          ]
        }
      ]
    },
    "limit": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "NaN"
              ]
            },
            {
              "type": "string",
              "enum": [
                "Infinity"
              ]
            },
            {
              "type": "string",
              "enum": [
                "-Infinity"
              ]
            }
          ]
        },
        {
          "type": "string",
          "enum": [
            "Infinity",
            "-Infinity",
            "NaN"
          ]
        }
      ]
    },
    "offset": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "NaN"
              ]
            },
            {
              "type": "string",
              "enum": [
                "Infinity"
              ]
            },
            {
              "type": "string",
              "enum": [
                "-Infinity"
              ]
            }
          ]
        },
        {
          "type": "string",
          "enum": [
            "Infinity",
            "-Infinity",
            "NaN"
          ]
        }
      ]
    }
  },
  "required": [
    "data",
    "total",
    "limit",
    "offset"
  ],
  "additionalProperties": false
}

401 — application/json

{
  "$ref": "#/components/schemas/UnauthorizedError"
}

402 — application/json

{
  "$ref": "#/components/schemas/QuotaExceededError"
}

403 — application/json

{
  "$ref": "#/components/schemas/ForbiddenError"
}

404 — application/json

{
  "$ref": "#/components/schemas/NotFoundError"
}

409 — application/json

{
  "$ref": "#/components/schemas/ConflictError"
}

422 — application/json

{
  "$ref": "#/components/schemas/ValidationError"
}

429 — application/json

{
  "$ref": "#/components/schemas/RateLimitedError"
}

reviews.get For Post

GET/v1/workspaces/{workspaceId}/reviews/posts/{postId}

Parameters

NameInRequiredType
workspaceIdpathyesstring
postIdpathyesstring

Request body

No request body.

Responses

StatusMeaning
200Success
401UnauthorizedError
402QuotaExceededError
403ForbiddenError
404NotFoundError
409ConflictError
422ValidationError
429RateLimitedError

Response bodies

200 — application/json

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "postId": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "approved",
            "rejected"
          ]
        },
        "contentFingerprint": {
          "type": "string"
        },
        "submittedByMemberId": {
          "type": "string"
        },
        "resolvedByMemberId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "resolvedAt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "postId",
        "status",
        "contentFingerprint",
        "submittedByMemberId",
        "resolvedByMemberId",
        "resolvedAt"
      ],
      "additionalProperties": false
    },
    {
      "type": "null"
    }
  ]
}

401 — application/json

{
  "$ref": "#/components/schemas/UnauthorizedError"
}

402 — application/json

{
  "$ref": "#/components/schemas/QuotaExceededError"
}

403 — application/json

{
  "$ref": "#/components/schemas/ForbiddenError"
}

404 — application/json

{
  "$ref": "#/components/schemas/NotFoundError"
}

409 — application/json

{
  "$ref": "#/components/schemas/ConflictError"
}

422 — application/json

{
  "$ref": "#/components/schemas/ValidationError"
}

429 — application/json

{
  "$ref": "#/components/schemas/RateLimitedError"
}

reviews.act

POST/v1/workspaces/{workspaceId}/reviews/posts/{postId}

Parameters

NameInRequiredType
workspaceIdpathyesstring
postIdpathyesstring

Request body

Required.

application/json

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "submit"
          ]
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "action"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "approve"
          ]
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "missedSlot": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "publish_now",
                "reschedule"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "scheduledAt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "action"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "reject"
          ]
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "action",
        "reason"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "withdraw"
          ]
        }
      },
      "required": [
        "action"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "comment"
          ]
        },
        "comment": {
          "type": "string"
        }
      },
      "required": [
        "action",
        "comment"
      ],
      "additionalProperties": false
    }
  ]
}

Responses

StatusMeaning
200Success
401UnauthorizedError
402QuotaExceededError
403ForbiddenError
404NotFoundError
409ConflictError
422ValidationError
429RateLimitedError

Response bodies

200 — application/json

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "postId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "approved",
        "rejected"
      ]
    },
    "contentFingerprint": {
      "type": "string"
    },
    "submittedByMemberId": {
      "type": "string"
    },
    "resolvedByMemberId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "resolvedAt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "postId",
    "status",
    "contentFingerprint",
    "submittedByMemberId",
    "resolvedByMemberId",
    "resolvedAt"
  ],
  "additionalProperties": false
}

401 — application/json

{
  "$ref": "#/components/schemas/UnauthorizedError"
}

402 — application/json

{
  "$ref": "#/components/schemas/QuotaExceededError"
}

403 — application/json

{
  "$ref": "#/components/schemas/ForbiddenError"
}

404 — application/json

{
  "$ref": "#/components/schemas/NotFoundError"
}

409 — application/json

{
  "$ref": "#/components/schemas/ConflictError"
}

422 — application/json

{
  "$ref": "#/components/schemas/ValidationError"
}

429 — application/json

{
  "$ref": "#/components/schemas/RateLimitedError"
}

reviews.activity

GET/v1/workspaces/{workspaceId}/reviews/posts/{postId}/activity

Parameters

NameInRequiredType
workspaceIdpathyesstring
postIdpathyesstring

Request body

No request body.

Responses

StatusMeaning
200Success
401UnauthorizedError
402QuotaExceededError
403ForbiddenError
404NotFoundError
409ConflictError
422ValidationError
429RateLimitedError

Response bodies

200 — application/json

{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "activityType": {
        "type": "string",
        "enum": [
          "review.submitted",
          "review.approved",
          "review.rejected",
          "review.withdrawn",
          "review.commented",
          "schedule.missed"
        ]
      },
      "actorMemberId": {
        "type": "string"
      },
      "comment": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "createdAt": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "activityType",
      "actorMemberId",
      "comment",
      "createdAt"
    ],
    "additionalProperties": false
  }
}

401 — application/json

{
  "$ref": "#/components/schemas/UnauthorizedError"
}

402 — application/json

{
  "$ref": "#/components/schemas/QuotaExceededError"
}

403 — application/json

{
  "$ref": "#/components/schemas/ForbiddenError"
}

404 — application/json

{
  "$ref": "#/components/schemas/NotFoundError"
}

409 — application/json

{
  "$ref": "#/components/schemas/ConflictError"
}

422 — application/json

{
  "$ref": "#/components/schemas/ValidationError"
}

429 — application/json

{
  "$ref": "#/components/schemas/RateLimitedError"
}

reviews.bulk Act

POST/v1/workspaces/{workspaceId}/reviews/bulk

Parameters

NameInRequiredType
workspaceIdpathyesstring

Request body

Required.

application/json

{
  "type": "object",
  "properties": {
    "postIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "action": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "enum": [
                "approve"
              ]
            }
          },
          "required": [
            "action"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "enum": [
                "reject"
              ]
            },
            "reason": {
              "type": "string"
            }
          },
          "required": [
            "action",
            "reason"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "postIds",
    "action"
  ],
  "additionalProperties": false
}

Responses

StatusMeaning
200Success
401UnauthorizedError
402QuotaExceededError
403ForbiddenError
404NotFoundError
409ConflictError
422ValidationError
429RateLimitedError

Response bodies

200 — application/json

{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "postId": {
        "type": "string"
      },
      "ok": {
        "type": "boolean"
      }
    },
    "required": [
      "postId",
      "ok"
    ],
    "additionalProperties": false
  }
}

401 — application/json

{
  "$ref": "#/components/schemas/UnauthorizedError"
}

402 — application/json

{
  "$ref": "#/components/schemas/QuotaExceededError"
}

403 — application/json

{
  "$ref": "#/components/schemas/ForbiddenError"
}

404 — application/json

{
  "$ref": "#/components/schemas/NotFoundError"
}

409 — application/json

{
  "$ref": "#/components/schemas/ConflictError"
}

422 — application/json

{
  "$ref": "#/components/schemas/ValidationError"
}

429 — application/json

{
  "$ref": "#/components/schemas/RateLimitedError"
}