#P1762
RESOURCE /v2/scrumboard/comments
Comment Operator Hydration
در تمامی متدها (لیست، ثبت، نمایش و ویرایش)، سیستم پس از دریافت اطلاعات کامنت از جدول `scrumboard_comments`، به صورت دستی اطلاعات اپراتور (نویسنده کامنت) را از جدول `operators` استخراج کرده و به پاسخ اضافه میکند.
Fetch Comment(s)
↓
Enrich with Operator
Input: operator_id
Query: SELECT id, first_name, last_name, avatar FROM operators WHERE id = ?
Result: Attach object to `operator` field
Input: operator_id
Query: SELECT id, first_name, last_name, avatar FROM operators WHERE id = ?
Result: Attach object to `operator` field
↓
Return JSON Response
Get Card Comments
دریافت لیست نظرات ثبت شده برای یک کارت (Card). این متد امکان فیلتر کردن بر اساس اپراتور و وضعیت را نیز دارد.
URL:
/v2/scrumboard/commentsMethod: GET
Controller: CommentController@index
Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
| card_id | Integer | Query | (الزامی) شناسه کارتی که نظرات مربوط به آن است. |
| operator_id | Integer | Query | (اختیاری) فیلتر نظرات یک اپراتور خاص. |
| status | Integer | Query | (اختیاری) فیلتر بر اساس وضعیت نظر. |
Response Structure
{
"items": [
{
"id": 10,
"card_id": 55,
"operator_id": 3,
"message": "This needs to be fixed ASAP.",
"ip_address": "192.168.1.5",
"status": 1,
"created_at": "2024-01-01 12:00:00",
"updated_at": "2024-01-01 12:00:00",
"operator": {
"id": 3,
"first_name": "John",
"last_name": "Doe",
"first_name_en": "John",
"last_name_en": "Doe",
"avatar": "path/to/avatar.jpg"
}
}
],
"meta": { "timestamp": 1733754000 }
}
Create Comment
ثبت یک نظر جدید برای یک کارت. آدرس IP کاربر به صورت خودکار توسط سیستم (`getIP()`) ذخیره میشود.
URL:
/v2/scrumboard/commentsMethod: POST
Controller: CommentController@store
Parameters
| Parameter | Type | Description |
|---|---|---|
| card_id | Integer | شناسه کارت مربوطه. |
| operator_id | Integer | شناسه اپراتوری که نظر را ثبت میکند. |
| message | String | متن نظر. |
Success Response
{
"payload": {
"id": 12,
"card_id": 55,
"operator_id": 3,
"ip_address": "127.0.0.1",
"message": "Task completed.",
"created_at": "...",
"updated_at": "...",
"operator": {
"id": 3,
"first_name": "John",
"last_name": "Doe",
...
}
},
"meta": { "timestamp": 1733754000 }
}
Show Comment
مشاهده جزئیات یک نظر خاص با استفاده از شناسه آن.
URL:
/v2/scrumboard/comments/{id}Method: GET
Controller: CommentController@show
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | شناسه نظر. |
Response
در صورت عدم یافتن رکورد، مقدار payload: false بازگردانده میشود.
{
"payload": {
"id": 10,
"message": "Specific comment details...",
"operator": { ... },
...
},
"meta": { "timestamp": 1733754000 }
}
Update Comment
ویرایش متن، وضعیت و یا حتی انتقال نظر به کارت/اپراتور دیگر.
URL:
/v2/scrumboard/comments/{id}Method: PUT / PATCH
Controller: CommentController@update
Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| card_id | Integer | شناسه کارت (جهت جابجایی نظر). | - |
| operator_id | Integer | شناسه اپراتور (جهت تغییر نویسنده). | - |
| message | String | متن اصلاح شده نظر. | - |
| status | Integer | وضعیت نمایش نظر. | 1 |
Success Response
{
"payload": {
"id": 10,
"message": "Updated message text",
"status": 1,
"updated_at": "...",
"operator": { ... }
},
"meta": { "timestamp": 1733754000 }
}
Delete Comment
حذف دائمی یک نظر از دیتابیس.
URL:
/v2/scrumboard/comments/{id}Method: DELETE
Controller: CommentController@destroy
Success Response
{
"payload": 1, // تعداد ردیفهای حذف شده
"meta": {
"timestamp": 1733754000
}
}