From 1da2e215fbcd1ddfecebb10dd1cc058db08dba21 Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Wed, 4 Jun 2025 14:56:08 +0800 Subject: [PATCH] =?UTF-8?q?API=20=E5=8A=A0=E5=85=A5=20=E5=88=86=E5=BA=97?= =?UTF-8?q?=E8=B3=87=E8=A8=8A=20=2020250604?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/AuthController.php | 5 +- .../Controllers/BranchControlController.php | 70 +++++++++++++++++++ app/Models/Branch.php | 6 +- routes/api.php | 2 + 4 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/BranchControlController.php diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index e0c63d4..a90a64b 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use App\Models\User; use OpenApi\Annotations as OA; +use App\Http\Responses\ApiResponse; /** * @OA\Tag( @@ -72,7 +73,7 @@ class AuthController extends Controller } else { $token = $user->api_plain_token; } - return \App\Http\Responses\ApiResponse::success(['token' => $token]); + return ApiResponse::success(['token' => $token]); } /** @@ -117,6 +118,6 @@ class AuthController extends Controller */ public function profile(Request $request) { - return \App\Http\Responses\ApiResponse::success($request->user()); + return ApiResponse::success($request->user()); } } diff --git a/app/Http/Controllers/BranchControlController.php b/app/Http/Controllers/BranchControlController.php new file mode 100644 index 0000000..a561c58 --- /dev/null +++ b/app/Http/Controllers/BranchControlController.php @@ -0,0 +1,70 @@ +get()->map(function ($branch) { + return [ + 'id' => $branch->id, + 'branch_name' => $branch->name, + 'enable' => $branch->enable, + 'rooms' => $branch->rooms->map(function ($room) { + return [ + 'room_name' => $room->type.$room->name, + 'is_online' => $room->is_online, + 'status' => $room->status, + 'started_at' => $room->started_at, + 'ended_at' => $room->ended_at, + ]; + }), + ]; + }); + return ApiResponse::success(['branches' => $branches]); + } +} \ No newline at end of file diff --git a/app/Models/Branch.php b/app/Models/Branch.php index 59cc2d4..c928076 100644 --- a/app/Models/Branch.php +++ b/app/Models/Branch.php @@ -16,7 +16,11 @@ class Branch extends Model 'external_ip', 'enable', ]; - + protected $casts = [ + 'name' => 'string', + 'external_ip'=> 'string', + 'enable' => 'boolean', + ]; public function rooms() { return $this->hasMany(Room::class); } diff --git a/routes/api.php b/routes/api.php index 6233f94..2201fba 100644 --- a/routes/api.php +++ b/routes/api.php @@ -3,6 +3,7 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArtistController; use App\Http\Controllers\AuthController; +use App\Http\Controllers\BranchControlController; use App\Http\Controllers\RoomControlController; Route::get('/artists/search', [App\Http\Controllers\ArtistController::class, 'search'])->name('api.artists.search'); @@ -12,6 +13,7 @@ Route::post('/room/receiveRegister', [RoomControlController::class, 'receiveRegi Route::middleware('auth:sanctum')->group(function () { Route::get('/profile', [AuthController::class, 'profile']); + Route::get('/branches',[BranchControlController::class, 'Branches']); Route::post('/room/sendSwitch', [RoomControlController::class, 'sendSwitch']); Route::post('/room/receiveSwitch', [RoomControlController::class, 'receiveSwitch']); Route::post('/room/heartbeat', [RoomControlController::class, 'StatusReport']);