71 lines
1.8 KiB
PHP
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 提供者已成功設定為活躍狀態'
|
|
]);
|
|
}
|
|
}
|