taravel/app/Http/Controllers/Api/Admin/ApiConfigController.php
2024-11-13 16:26:27 +08:00

71 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Api\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\ApiProviderRequest;
use App\Models\ApiProvider;
use Illuminate\Http\JsonResponse;
use App\Services\ApiResponseService;
class ApiConfigController extends Controller
{
/**
* 列出所有 API 提供者
*/
public function index(): JsonResponse
{
$providers = ApiProvider::select(['provider_id', 'name', 'endpoint', 'active'])
->get();
return ApiResponseService::success(['providers' => $providers]);
}
/**
* 新增 API 提供者
*/
public function store(ApiProviderRequest $request): JsonResponse
{
$provider = ApiProvider::create($request->validated());
return ApiResponseService::success(
[
'provider' => [
'provider_id' => $provider->provider_id,
'name' => $provider->name,
'endpoint' => $provider->endpoint,
'active' => $provider->active
]
],
'API 提供者新增成功',
201
);
}
/**
* 刪除指定的 API 提供者
*/
public function destroy(string $provider_id): JsonResponse
{
$provider = ApiProvider::findOrFail($provider_id);
$provider->delete();
return response()->json([
'message' => 'API 提供者已成功刪除'
]);
}
/**
* 設定指定的 API 提供者為活躍狀態
*/
public function activate(string $provider_id): JsonResponse
{
$provider = ApiProvider::findOrFail($provider_id);
$provider->active = true;
$provider->save();
return response()->json([
'message' => 'API 提供者已成功設定為活躍狀態'
]);
}
}