Motoshub · API v1 Build · branch feat/api-all-features · not pushed
گزارش ساخت API — موج ۱
مهاجرت امکانات موتوشاب به تمپلیت REST v1 (فریمورک Bridge). این صفحه کدِ تولیدشده را برای مرور نشان میدهد —
همهچیز در یک برنچ ایزوله ساخته شده و هنوز روی گیتلب پوش نشده.
20
فیچر — همهی موجها کامل
ساخت کامل شد. هر ۶ موج تمام: ۱۶۱ endpoint در ۱۹ ماژول، ۱۳۷ اکشن با Policy کامل، صفر تداخل روت، صفر خطای syntax.
فهرست کامل در
مرجع API v1 + فایل Postman آمادهی دانلود. در انتظار تأیید مالک برای push به گیتلب.
روش کار: هر فیچر دقیقاً با تمپلیت ۵ فیچر قبلی (Auth/Blogs/News/Photos/Albums) ساخته شده —
Controller + Requestها + Resource + Service + Repository + Policy + Model + DTO + Queryها.
منطق بازنویسی نشده؛ Service هر فیچر همان BOL موجود اکسوال را صدا میزند (مثل web_service_* قدیمی).
01 فیچرهای ساختهشده (موج ۱)
هر چهار فیچر lint-clean روی PHP 8.4 و در SwaggerController ثبت شدهاند.
Video ۱۷ فایل lint
ow_plugins/video/src · table video_clip · wraps VIDEO_BOL_ClipService
GET /api/v1/videos
POST /api/v1/videos
GET /api/v1/videos/{id}
PATCH /api/v1/videos/{id}
DELETE /api/v1/videos/{id}
افزودن ویدیو از طریق event video.add_clip است که به پلاگین iisvideoplus وابستهست.
permissionهای video.list/show/update/delete باید به authorization اضافه شوند.
Events ۱۷ فایل lint
ow_plugins/event/src · table event_item · wraps EVENT_BOL_EventService
GET /api/v1/events
POST /api/v1/events
GET /api/v1/events/{id}
PATCH /api/v1/events/{id}
DELETE /api/v1/events/{id}
قرارداد ورودی تاریخ: الان Unix timestamp میگیرد — تأیید کن که با کلاینتها میخواند (در برابر رشتهی شمسی).
آپلود تصویر رویداد نیاز به endpoint multipart جدا دارد؛ رویدادهای «فقط دعوتشده» فعلاً در لیست نمیآیند.
Friends ۱۶ فایل lint
ow_plugins/friends/src · table friends_friendship · wraps FRIENDS_BOL_Service
GET /api/v1/friends
GET /api/v1/friends/requests
POST /api/v1/friends
POST /api/v1/friends/{id}/accept
DELETE /api/v1/friends/{id}
حذف دوستِ فعال از طریق side-effect یک event انجام میشود (event handler پلاگین friends).
Notifications ۱۶ فایل lint
ow_plugins/notifications/src · table notifications_notification · wraps NOTIFICATIONS_BOL_Service
GET /api/v1/notifications
POST /api/v1/notifications/seen
POST /api/v1/notifications/{id}/read
GET /api/v1/notifications/settings
PATCH /api/v1/notifications/settings
غنیسازی payload (آواتار فرستنده، متن آماده) که به ۱۰ پلاگین دیگر وصل است، فعلاً پورت نشده — فقط ستونهای اصلی + data.
01b فیچرهای موج ۲
هر سه lint-clean روی PHP 8.4 و در SwaggerController ثبت شدهاند.
Forum ۳۲ فایل · ۲ ریسورس lint
ow_plugins/forum/src · wraps FORUM_BOL_ForumService · Topic + Post
GET /api/v1/forum/topics · POST · GET /{id} · PATCH · DELETE
GET /api/v1/forum/topics/{id}/posts · POST
PATCH /api/v1/forum/posts/{id} · DELETE
Questions / Polls ۱۸ فایل lint
ow_plugins/iisquestions/src · wraps iisquestions BOL
GET /api/v1/polls · POST · GET /{id} · PATCH · DELETE
POST /api/v1/polls/{id}/vote
Comments ۱۷ فایل lint
ow_plugins/iiscommentplus/src · cross-entity · wraps BOL_CommentService + IISLIKE_BOL_Service
GET /api/v1/comments?entity_type=&entity_id=
POST /api/v1/comments · DELETE /{id}
POST /api/v1/comments/{id}/like · DELETE /{id}/like
لایک کامنت از طریق پلاگین iislike است (باید فعال باشد).
02 ثبت مرکزی (انجامشده)
فایلهای مشترک ویرایش و lint شدند.
| فایل | تغییر |
| composer.json | psr-4 برای Plugin\Video/Event/Friends/Notifications |
| bridge/src/Kernel.php | ۴ Provider به آرایهی $providers اضافه شد |
| ow_plugins/api/.../SwaggerController.php | scanDirs برای ۴ پلاگین (تا در داکس زنده ظاهر شوند) |
| هر پلاگین | bootstrap/app.php + controllers/bridge.php + init.php + routes/api.php |
03 نیاز به تأیید تو
چند تصمیم که بهتره قبل از پوش روشن شوند.
- Permissionها روی سایتِ نصبشده: بلوک authorization در
install.php فقط موقع نصب تازه اجرا میشود. روی نصبِ فعلی motonext باید actionهای جدید (list/show/update/delete هر گروه) دستی یا با اسکریپت آپدیت اضافه شوند، وگرنه روتها 403 میدهند. یک migration کوچک برایش مینویسم اگر بخواهی.
- قرارداد تاریخ: Unix timestamp یا رشتهی شمسی؟ (فعلاً Unix).
- وابستگی iisvideoplus برای افزودن ویدیو — باید روی سرور فعال باشد.
- composer dump-autoload بعد از افزودن psr-4 لازم است (مرحلهی استقرار روی سرور).
04 ادامهی کار
این صفحه با تکمیل هر موج بهروز میشود.
- موج ۱ Video · Events (۱۴ اکشن، پوشش کامل legacy) · Friends · Notifications
- موج ۲ Forum (Topic+Post) · Questions/Polls · Comments
- موج ۳ Search · Mention · Privacy · Flag · Contact
- موج ۴ Newsfeed (۹ اکشن) · Groups (۳ کنترلر، ۱۵ روت) · Messaging (۱۳ روت)
- موج ۵ Users/Profile (۵ کنترلر، ۱۳ روت) · Files/Upload (ClamAV + config)
- موج ۶ iispors: آزمون/سؤال/شرکت/آمار/داوری (۱۷ روت) · Landing Builder (۱۰ روت)
وضعیت پوش: هیچچیز روی گیتلب moto-next پوش نشده. کل کد در برنچ ایزولهی feat/api-all-features است.
پس از تأیید نهایی تو، پوش میشود.