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 URL: /v2/comments/{id} Method: PUT Controller: CommentController@update Middleware Chain: `authWithJwt`, `decryptData` 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 عبور نکنند (مثلاً یکی از فیلدها ارسال نشود).