پستها (Posts)
پستها (Posts) واحد اصلی ثبت بازخورد، پیشنهاد یا گزارش باگ در هر بخش هستند. هر پست میتواند دارای دستهبندی، وضعیت و تگهای مختلف باشد.
نوعهای مشترک (Common Types)
| نام | توضیح |
|---|---|
Post | شیء اصلی پست |
فیلدهای Post:
| فیلد | نوع | توضیح |
|---|---|---|
id | string | شناسه یکتای پست (UUID) |
createdAt | string | تاریخ و زمان ایجاد (فرمت ISO 8601) |
updatedAt | string | تاریخ و زمان آخرین ویرایش |
lastInteractionAt | string | تاریخ و زمان آخرین تعامل |
workspaceId | string | شناسه فضای کاری مربوطه (UUID) |
boardId | string | شناسه بخش مربوطه (UUID) |
categoryId | string | شناسه دستهبندی (UUID) |
statusId | string | null | شناسه وضعیت (UUID) |
title | string | عنوان پست |
description | string | null | توضیحات پست |
visibility | 'public' | 'private' | سطح دسترسی پست |
votesCount | number | تعداد رأیها |
commentsCount | number | تعداد نظرات |
isVoted | boolean | آیا کاربر جاری رأی داده است؟ |
مدیریت پستها (Posts)
دریافت لیست پستها
GET https://api.fidegah.ir/v1/posts
curl -X GET https://api.fidegah.ir/v1/posts \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای Query (Query Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
search | string | جستجو براساس عنوان |
boardId | string | فیلتر بر اساس شناسه بخش (UUID) — با کاما جدا کنید |
statusValue | string | فیلتر بر اساس مقدار وضعیت — با کاما جدا کنید |
statusId | string | فیلتر بر اساس شناسه وضعیت — با کاما جدا کنید |
tagId | string | فیلتر بر اساس شناسه تگ (UUID) — با کاما جدا کنید |
status | 'active' | 'old' | فیلتر بر اساس فعال یا قدیمی بودن پست |
پارامترهای صفحهبندی (page/limit) نیز طبق ساختار عمومی صفحهبندی API پشتیبانی میشوند (مشاهده جزئیات).
خروجی درخواست: آرایهای از Post به همراه اطلاعات صفحهبندی.
دریافت پست با شناسه
GET https://api.fidegah.ir/v1/posts/:id
curl -X GET https://api.fidegah.ir/v1/posts/{id} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
خروجی درخواست: شیء Post درخواستی.
ایجاد پست جدید
POST https://api.fidegah.ir/v1/posts
curl -X POST https://api.fidegah.ir/v1/posts \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "پیشنهاد من",
"boardId": "b3f1c9a0-...",
"categoryId": "c4a2d8b1-...",
"visibility": "public"
}'بدنه درخواست (Request Body):
| پارامتر | نوع | ضرورت | توضیح |
|---|---|---|---|
title | string | الزامی | عنوان پست (حداکثر ۲۰۰ کاراکتر) |
boardId | string | الزامی | شناسه بخش مربوطه (UUID) |
categoryId | string | الزامی | شناسه دستهبندی پست (UUID) |
visibility | 'public' | 'private' | الزامی | سطح دسترسی پست |
description | string | اختیاری | توضیحات پست |
statusId | string | اختیاری | شناسه وضعیت (UUID) |
نویسندهی پست دیگر در بدنهی درخواست ارسال نمیشود؛ پست بر اساس کاربر متصل به API Key (نه یک کاربر خارجی دلخواه) ثبت میشود.
خروجی درخواست: شیء Post ایجادشده.
ویرایش پست
PATCH https://api.fidegah.ir/v1/posts/:id
curl -X PATCH https://api.fidegah.ir/v1/posts/{id} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "عنوان جدید"
}'پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
بدنه درخواست (Request Body - همگی اختیاری):
| پارامتر | نوع | توضیح |
|---|---|---|
title | string | عنوان جدید پست |
description | string | توضیحات جدید |
boardId | string | شناسه بخش جدید (UUID) |
statusId | string | شناسه وضعیت جدید (UUID) |
categoryId | string | شناسه دستهبندی جدید (UUID) |
visibility | 'public' | 'private' | سطح دسترسی جدید |
خروجی درخواست: شیء Post پس از ویرایش.
حذف پست
DELETE https://api.fidegah.ir/v1/posts/:id
curl -X DELETE https://api.fidegah.ir/v1/posts/{id} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
خروجی درخواست:
| فیلد | نوع | توضیح |
|---|---|---|
message | string | پیام نتیجه حذف |
افزودن تگ به پست
POST https://api.fidegah.ir/v1/posts/:id/tags/:tagId
curl -X POST https://api.fidegah.ir/v1/posts/{id}/tags/{tagId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
tagId | string | شناسه تگ مورد نظر (UUID) |
خروجی درخواست: نتیجهی اضافه شدن رابطهی تگ به پست.
حذف تگ از پست
DELETE https://api.fidegah.ir/v1/posts/:id/tags/:tagId
curl -X DELETE https://api.fidegah.ir/v1/posts/{id}/tags/{tagId} \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
tagId | string | شناسه تگ مورد نظر (UUID) |
خروجی درخواست: نتیجهی حذف رابطهی تگ از پست.
رأی دادن / برداشتن رأی از پست
POST https://api.fidegah.ir/v1/posts/:id/vote
curl -X POST https://api.fidegah.ir/v1/posts/{id}/vote \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json"پارامترهای مسیر (Path Parameters):
| پارامتر | نوع | توضیح |
|---|---|---|
id | string | شناسه پست مورد نظر (UUID) |
این endpoint وضعیت رأی کاربر متصل به API Key روی پست را toggle میکند: اگر قبلاً رأی نداده، رأی ثبت میشود و اگر قبلاً رأی داده، رأی برداشته میشود.
خروجی درخواست: وضعیت جدید رأی روی پست.
تگها (Tags)
تگها (Tags) برچسبهایی برای دستهبندی دقیقتر و فیلتر کردن پستها درون هر بخش (Board) هستند. هر تگ به یک بخش خاص تعلق دارد و برخلاف دستهبندیها، هر پست میتواند چندین تگ داشته باشد.
دیدگاهها (Comments)
دیدگاهها (Comments) امکان تعامل کاربران با پستها را فراهم میکنند. هر دیدگاه میتواند شامل پاسخهای تودرتو باشد و توسط ادمین فضای کاری پین یا اسپم شود.
