Files
muninn/routes/api.php
T

44 lines
2.3 KiB
PHP
Raw Normal View History

2026-07-18 15:12:44 +03:00
<?php
2026-07-18 17:22:16 +03:00
use App\Http\Controllers\Api\PostController;
use App\Http\Controllers\Api\ProjectController;
2026-07-18 15:12:44 +03:00
use App\Http\Controllers\Api\SiteController;
2026-07-18 15:25:56 +03:00
use App\Http\Controllers\Api\SocialAccountController;
use App\Http\Controllers\Api\TaskCommentController;
use App\Http\Controllers\Api\TaskController;
use App\Http\Controllers\Api\WebhookController;
2026-07-18 15:12:44 +03:00
use Illuminate\Support\Facades\Route;
Route::get('/sites', [SiteController::class, 'index']);
Route::get('/sites/{site}', [SiteController::class, 'show']);
2026-07-18 15:25:56 +03:00
Route::get('/accounts', [SocialAccountController::class, 'index']);
Route::get('/accounts/{socialAccount}', [SocialAccountController::class, 'show']);
2026-07-18 17:22:16 +03:00
Route::apiResource('posts', PostController::class)->names('api.posts');
// Project Management API
Route::apiResource('projects', ProjectController::class)->names('api.projects');
Route::get('/projects/{project}/tasks', [ProjectController::class, 'tasks'])->name('api.projects.tasks');
Route::get('/projects/{project}/ideas', [ProjectController::class, 'ideas'])->name('api.projects.ideas');
Route::apiResource('tasks', TaskController::class)->names('api.tasks');
Route::get('/tasks/{task}/comments', [TaskController::class, 'comments'])->name('api.tasks.comments');
Route::post('/tasks/{task}/status', [TaskController::class, 'changeStatus'])->name('api.tasks.status');
Route::apiResource('tasks.comments', TaskCommentController::class)->shallow()->names('api.task_comments');
// Ideas API
Route::apiResource('ideas', \App\Http\Controllers\Api\IdeaController::class)->names('api.ideas');
Route::post('/ideas/{idea}/status', [\App\Http\Controllers\Api\IdeaController::class, 'changeStatus'])->name('api.ideas.status');
Route::post('/ideas/{idea}/link-project', [\App\Http\Controllers\Api\IdeaController::class, 'linkToProject'])->name('api.ideas.link_project');
Route::post('/ideas/{idea}/unlink-project', [\App\Http\Controllers\Api\IdeaController::class, 'unlinkFromProject'])->name('api.ideas.unlink_project');
// Webhook endpoints (require X-Muninn-Token header)
Route::prefix('webhooks')->group(function () {
Route::post('/posts', [WebhookController::class, 'createPost']);
Route::get('/posts', [WebhookController::class, 'listPosts']);
Route::post('/posts/{post}/publish', [WebhookController::class, 'publishPost']);
Route::get('/posts/{post}/status', [WebhookController::class, 'getPostStatus']);
});