ระบบรีวิว

ระบบรีวิวประกอบด้วย 4 ส่วนหลัก ได้แก่ Reviewers, Object, Reviews และ Actions

ข้อมูลทั้งหมดเป็นของโปรเจกต์นั้นๆ โดยเฉพาะ โปรเจกต์จะไม่แชร์ข้อมูล Reviewers หรือ Reviews ข้ามกัน

Reviewer

Reviewer คือผู้ใช้ในโปรเจกต์ของคุณ เป็นคนที่สร้างและ action กับ Reviews

เราไม่เก็บข้อมูลส่วนตัวของผู้ใช้ คุณต้องเชื่อมผู้ใช้ในระบบของคุณเข้ากับระบบของเราเอง

  1. สร้าง Reviewer: เรียก POST /reviewer เพื่อลงทะเบียนผู้ใช้
  2. เก็บ ID: บันทึก id ที่ได้รับกลับมา แล้วผูกเข้ากับ User ID ในระบบของคุณ
  3. ตรวจสอบสิทธิ์: เราไม่ได้ยืนยันตัวตนผู้ใช้ให้ คุณต้องตรวจสอบเองว่าผู้ใช้เป็นเจ้าของ reviewer_id ที่ส่งมาจริงๆ
อย่าส่ง reviewer_id ไปยัง frontend โดยตรง ให้ใช้ User ID ฝั่ง client แล้วแมปกับ reviewer_id บน backend ก่อนเรียก API

ดู Reviewers ทั้งหมดในโปรเจกต์ได้ที่ GET Reviewer by Client ID

Object

Object คือสิ่งที่ถูกรีวิว แบ่งเป็นสองประเภท

  • Longdo Reserved Types — ประเภทที่ขึ้นต้นด้วย longdo_ เช่น longdo_poi หมายถึง Point of Interest บน Longdo Map โดย object_id อย่าง A10000001 จะลิงก์ตรงไปยัง:app-link{env-var-name="mapFrontendUrl" path="/p/A10000001" label="สถานที่นี้" target="_blank"}
  • Custom Object Types — กำหนดประเภทเองได้ตามต้องการ เช่น product, movie, driver ขอแค่ชื่อไม่ขึ้นต้นด้วย longdo_

Review

Review ผูกกับ object_id เสมอ ส่วน object_type เป็นตัวเลือก แต่แนะนำให้ใส่เพื่อป้องกัน ID ชนกันเมื่อมีหลายหมวดหมู่

  • Anonymous: ผู้ใช้เลือกรีวิวแบบไม่ระบุชื่อได้ ระบบจะซ่อนชื่อให้อัตโนมัติ เช่น "Alice" จะแสดงเป็น "A***e"
  • การมองเห็นของเจ้าของโปรเจกต์: คุณจะเห็น reviewer_id จริงในฟิลด์ reviewer_by เสมอ แม้ Review นั้นจะเป็น Anonymous
  • การจัดการ: ดึง Reviews ทั้งหมดได้ผ่าน GET Review by Client ID หากเจอ Review ไม่เหมาะสม ให้ใช้ DELETE /review พร้อม Review ID เพื่อลบออก

Action

Actions ให้ Reviewers แสดงความรู้สึกต่อ Review ที่มีอยู่ได้ ปัจจุบันรองรับ Like, Haha และ Love

Reviewer ไม่จำเป็นต้องเป็นคนเขียน Review นั้นเพื่อทำ Action

การดู Action ของผู้ใช้

สำหรับการทำ UI แบบ personalized เช่น ไฮไลท์ปุ่ม Like ถ้าผู้ใช้กดไปแล้ว

  • จำนวนรวม: การดึงรายละเอียด Review จะได้ผลรวมของ Actions ทุกประเภทกลับมาด้วย
  • เฉพาะผู้ใช้: เรียก GET Review พร้อม reviewer_id ระบบจะคืนค่า Action ที่ผู้ใช้คนนั้นทำไว้ในฟิลด์ user_action_id