# タスクへのコメント投稿

`POST /api/task/{taskId}/comment`

URL: https://repsona.com/ja/api/post-task-taskid-comment

エディタの文書 (TipTap JSON) か Markdown の文字列でコメントを投稿します。保存は Markdown です。

## パラメーター

| name | in | type | required | description |
| --- | --- | --- | --- | --- |
| `taskId` | path | integer | 必須 | タスクの ID です。 |

## リクエストボディ

| name | in | type | required | description |
| --- | --- | --- | --- | --- |
| `doc` | body | object |  | コメント本文のリッチテキスト (ProseMirror / Tiptap の JSON) です。`doc` と `markdown` のどちらかを送ります。 |
| `markdown` | body | string |  | コメント本文の Markdown です (20,000 文字まで)。両方送った場合は `markdown` が優先されます。 |
| `parentId` | body | integer \| null |  | 返信先のコメントの ID です。省略するか `null` にすると、通常のコメントとして投稿します。 |

## リクエスト

```sh
curl -X POST "https://<space>.repsona.com/api/task/{taskId}/comment" \
  -H "Authorization: Bearer $REPSONA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "I rewrote the hero section. Could you take a look before Friday?",
    "parentId": null
  }'
```

## レスポンス

- 200: Created comment
- 400: Empty body or invalid parent
- 401: Authentication is required
- 403: Not a project member
- 404: Task not found

## レスポンスの例

```json
{
  "comment": {
    "id": 75,
    "parentId": null,
    "comment": "I rewrote the hero section. Could you take a look before Friday?",
    "createdAt": 1793662651194,
    "updatedAt": 1793662651194,
    "user": {
      "id": 1127,
      "name": "emma",
      "fullName": "Emma Carter",
      "avatarUrl": null,
      "color": null,
      "state": "active"
    },
    "files": [],
    "deleted": false,
    "reactions": [],
    "children": []
  }
}
```
