Skip to main content
#P1734

POST /v2/comments/{commentId}/{action}

Like or Dislike a Comment

این اندپوینت برای ثبت لایک یا دیسلایک برای یک نظر مشخص استفاده می‌شود. عملیات مورد نظر (لایک یا دیسلایک) از طریق پارامتر action در URL تعیین می‌گردد.
این متد به صورت اتمیک عمل نمی‌کند، اما شمارنده‌های likes و dislikes را در مدل Comment یک واحد افزایش می‌دهد.


Increment Like/Dislike Counter

URL: /v2/comments/{commentId}/{action}
Method: POST
Controller: CommentController@likeOrDislike
Middleware: `authWithJwt`

Path Parameters

Parameter Type Description
commentId integer شناسه منحصر به فرد نظری که لایک یا دیسلایک می‌شود.
action string عملیات مورد نظر. این پارامتر باید یکی از دو مقدار زیر باشد:
  • like: برای افزایش شمارنده لایک.
  • dislike: برای افزایش شمارنده دیسلایک.

Request Body

این اندپوینت به هیچ داده‌ای در بدنه درخواست (Request Body) نیاز ندارد.

Server-Side Logic

 

  • ابتدا سیستم با استفاده از متد findOrFail، نظر مربوط به commentId را پیدا می‌کند. اگر شناسه نامعتبر باشد، به طور خودکار خطای 404 بازگردانده می‌شود.
  • اگر پارامتر action برابر با 'like' باشد، فیلد likes یک واحد افزایش می‌یابد.
  • اگر پارامتر action برابر با 'dislike' باشد، فیلد dislikes یک واحد افزایش می‌یابد.
  • در نهایت، تغییرات در دیتابیس ذخیره شده و شمارنده‌های جدید بازگردانده می‌شوند.

 

رفتار در صورت ارسال action نامعتبر: اگر مقداری غیر از 'like' یا 'dislike' برای پارامتر action ارسال شود، هیچ خطایی رخ نمی‌دهد و هیچ شمارنده‌ای تغییر نمی‌کند. درخواست با موفقیت پردازش شده و مقادیر فعلی لایک و دیسلایک بازگردانده می‌شود.

Success Response

در صورت موفقیت‌آمیز بودن عملیات، سرور یک پاسخ با کد 200 به همراه مقادیر به‌روز شده‌ی شمارنده‌های likes و dislikes برمی‌گرداند.

{
    "status": true,
    "time": 1715000000,
    "data": {
        "likes": 25,
        "dislikes": 3
    }
}

Error Response

  • کد 404 (Not Found): در صورتی که commentId ارسال شده در URL در دیتابیس موجود نباشد.