Files
lotteryLaravel/routes/api.php

104 lines
5.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
use App\Http\Controllers\Api\V1\Admin\Auth\CaptchaController;
use App\Http\Controllers\Api\V1\Admin\Auth\LoginController;
use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawIndexController;
use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawResultBatchesIndexController;
use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawShowController;
use App\Http\Controllers\Api\V1\Admin\Draw\DrawResultBatchPublishController;
use App\Http\Controllers\Api\V1\Admin\PingController as AdminPingController;
use App\Http\Controllers\Api\V1\Admin\Player\PlayerWalletShowController;
use App\Http\Controllers\Api\V1\Admin\Wallet\TransferOrderListController;
use App\Http\Controllers\Api\V1\Admin\Wallet\WalletTransactionListController;
use App\Http\Controllers\Api\V1\Draw\DrawCurrentController;
use App\Http\Controllers\Api\V1\Draw\DrawResultShowController;
use App\Http\Controllers\Api\V1\Draw\DrawResultsIndexController;
use App\Http\Controllers\Api\V1\HealthController;
use App\Http\Controllers\Api\V1\Player\MeController;
use App\Http\Controllers\Api\V1\Player\PingController as PlayerPingController;
use App\Http\Controllers\Api\V1\Wallet\WalletBalanceController;
use App\Http\Controllers\Api\V1\Wallet\WalletLogsController;
use App\Http\Controllers\Api\V1\Wallet\WalletTransferInController;
use App\Http\Controllers\Api\V1\Wallet\WalletTransferOutController;
use Illuminate\Support\Facades\Route;
/*
| Laravel 为本文件自动加前缀 `api`,此处再写 `v1`,故完整路径形如 `/api/v1/health`。
*/
Route::prefix('v1')->group(function (): void {
// 名称:服务健康检查
Route::get('health', HealthController::class)->name('api.v1.health');
// 名称:当前期号(下注大厅倒计时;无需登录)
Route::get('draw/current', DrawCurrentController::class)->name('api.v1.draw.current');
// 名称:已发布开奖往期 / 单期(公开)
Route::get('draw/results', DrawResultsIndexController::class)->name('api.v1.draw.results');
Route::get('draw/results/{draw_no}', DrawResultShowController::class)
->where('draw_no', '[0-9]{8}-[0-9]{3}')
->name('api.v1.draw.results.show');
Route::prefix('player')
->name('api.v1.player.')
->group(function (): void {
// 名称:玩家端连通性探测
Route::get('ping', PlayerPingController::class)->name('ping');
});
Route::middleware('lottery.player')->group(function (): void {
Route::prefix('player')
->name('api.v1.player.')
->group(function (): void {
// 名称:当前登录玩家信息
Route::get('me', MeController::class)->name('me');
});
Route::prefix('wallet')
->name('api.v1.wallet.')
->group(function (): void {
// 名称:彩票钱包余额查询
Route::get('balance', WalletBalanceController::class)->name('balance');
// 名称钱包流水PRD §10.1.1
Route::get('logs', WalletLogsController::class)->name('logs');
// 名称:主站 → 彩票 转入
Route::post('transfer-in', WalletTransferInController::class)->name('transfer-in');
// 名称:彩票 → 主站 转出
Route::post('transfer-out', WalletTransferOutController::class)->name('transfer-out');
});
});
Route::prefix('admin')
->name('api.v1.admin.')
->group(function (): void {
Route::middleware('throttle:admin-auth-captcha')
->get('auth/captcha', CaptchaController::class)
->name('auth.captcha');
Route::middleware('throttle:admin-auth-login')
->post('auth/login', LoginController::class)
->name('auth.login');
Route::middleware(['auth:sanctum', 'lottery.admin'])->group(function (): void {
// 名称:后台接口连通性探测(需 Bearer Token
Route::get('ping', AdminPingController::class)->name('ping');
// 资金:转账单 / 流水 / 玩家钱包
Route::get('wallet/transfer-orders', TransferOrderListController::class)
->name('wallet.transfer-orders');
Route::get('wallet/transactions', WalletTransactionListController::class)
->name('wallet.transactions');
Route::get('players/{player}/wallets', PlayerWalletShowController::class)
->name('players.wallets');
// 期号:列表 / 详情 / 批次(开奖结果与审核数据)
Route::get('draws', AdminDrawIndexController::class)->name('draws.index');
Route::get('draws/{draw}', AdminDrawShowController::class)->name('draws.show');
Route::get('draws/{draw}/result-batches', AdminDrawResultBatchesIndexController::class)
->name('draws.result-batches.index');
// 名称:发布待审核开奖批次(人工审核)
Route::post(
'draws/{draw}/result-batches/{batch}/publish',
DrawResultBatchPublishController::class,
)->name('draws.result-batches.publish');
});
});
});