#P1733
PUT /v2/comments/{id}
Update Comment
این اندپوینت برای بهروزرسانی اطلاعات یک نظر موجود استفاده میشود. همانند اندپوینت ایجاد نظر، دادههای ارسالی برای بهروزرسانی نیز باید ابتدا رمزنگاری شده و سپس ارسال شوند.
این متد از قابلیت Route Model Binding لاراول استفاده میکند. به این معنی که لاراول ابتدا به صورت خودکار مدل Comment مربوط به {id} ارسالی در URL را پیدا میکند و سپس عملیات بهروزرسانی را روی آن انجام میدهد. اگر شناسه نامعتبر باشد، پاسخ 404 بازگردانده میشود.
Encryption Flow
فرآیند رمزنگاری و ارسال دادهها برای این اندپوینت دقیقاً مشابه اندپوینت ایجاد نظر (Create Comment) است. خلاصهی مراحل به شرح زیر است:
- ساخت آبجکت JSON: دادههای مورد نظر برای آپدیت را در قالب یک آبجکت JSON آماده کنید.
- رمزنگاری و Base64: آبجکت JSON را با کلید عمومی (Public Key) شعبه رمزنگاری کرده و به Base64 تبدیل کنید.
- ارسال درخواست: درخواست
PUTرا به همراه بدنه حاوی فیلدdata(شامل رشته نهایی) ارسال نمایید.
decryptData در سمت سرور، با استفاده از کلید خصوصی (Private Key)، دادهها را رمزگشایی کرده و برای پردازش به کنترلر تحویل میدهد.Update an Existing Comment
/v2/comments/{id}Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | integer | شناسه منحصر به فرد نظری که باید بهروزرسانی شود (Comment ID). |
Request Body Structure (Before Encryption)
آبجکت JSON که باید رمزنگاری و در فیلد data ارسال شود، میتواند شامل فیلدهای زیر باشد. تمام فیلدها اختیاری هستند و فقط فیلدهایی که قصد تغییر آنها را دارید، ارسال کنید.
| Parameter | Type | Description | Validation |
|---|---|---|---|
| content | string | متن جدید نظر. | Required |
| status | integer | وضعیت جدید نظر (مثلاً 1 برای "تایید شده"). | Required, Integer |
| flagged | boolean | علامتگذاری نظر به عنوان "پرچمدار". مقدار true یا false. |
Required, Boolean |
UpdateCommentRequest اعتبارسنجی میشوند. هر سه فیلد باید در آبجکت JSON وجود داشته باشند.Request Examples
مرحله ۱: ساختار JSON خام (قبل از رمزنگاری)
{
"content": "متن ویرایش شده نظر.",
"status": 1,
"flagged": false
}
مرحله ۲: بدنه نهایی درخواست (بعد از رمزنگاری و Base64)
{
"data": "AbC...[Encrypted & Base64 Encoded String]...dEfG=="
}
Success Response
در صورت موفقیتآمیز بودن عملیات، یک پاسخ با کد 200 و وضعیت true بازگردانده میشود. برخلاف متد store، در پاسخ این متد، آبجکت داده وجود ندارد.
{
"status": true,
"time": 1715000000
}
Error Responses
- کد 400 (Bad Request): در صورتی که میدلور
decryptDataنتواند دادهها را رمزگشایی کند، این خطا به همراه پیامDecryption failed.بازگردانده میشود. - کد 404 (Not Found): اگر شناسهی
{id}ارسال شده در URL در دیتابیس موجود نباشد. - کد 422 (Unprocessable Entity): اگر دادههای رمزگشایی شده از اعتبارسنجی
UpdateCommentRequestعبور نکنند (مثلاً یکی از فیلدها ارسال نشود).