34 lines
1.6 KiB
PHP
34 lines
1.6 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Auth\AuthController;
|
|
use App\Http\Controllers\TaskController;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// ─── Auth (JSON, devuelve token Sanctum para integraciones externas) ───
|
|
Route::post('auth/register', [AuthController::class, 'register']);
|
|
Route::post('auth/login', [AuthController::class, 'login']);
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
Route::get ('auth/me', [AuthController::class, 'me']);
|
|
Route::post('auth/logout', [AuthController::class, 'logout']);
|
|
});
|
|
|
|
// ─── Endpoints del DummyBot (ESP32) ───
|
|
// Usa el token del dispositivo en Authorization: Bearer <token>
|
|
Route::middleware('auth.device')->prefix('device')->group(function () {
|
|
Route::get ('tasks/pending', [TaskController::class, 'pending']);
|
|
Route::post ('tasks', [TaskController::class, 'store']);
|
|
Route::post ('tasks/{task}/done', [TaskController::class, 'done']);
|
|
Route::post ('tasks/{task}/snooze', [TaskController::class, 'snooze']);
|
|
Route::delete('tasks/{task}', [TaskController::class, 'destroy']);
|
|
Route::post ('heartbeat', function (Request $r) {
|
|
return response()->json([
|
|
'ok' => true,
|
|
'server_time' => now()->toIso8601String(),
|
|
'device' => $r->attributes->get('device')?->only('id','name'),
|
|
]);
|
|
});
|
|
});
|
|
|
|
// Las rutas web JSON (/api/tasks, /api/devices, etc.) están en routes/web.php
|
|
// porque necesitan sesión + Sanctum web guard para que la UI funcione sin tokens.
|