Files
nexusphp/routes/api.php
2023-07-27 14:38:12 +08:00

100 lines
6.7 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::group(['middleware' => ['auth:sanctum', 'locale']], function () {
Route::group(['middleware' => ['user']], function () {
Route::post('logout', [\App\Http\Controllers\AuthenticateController::class, 'logout']);
Route::get('user-me',[\App\Http\Controllers\UserController::class, 'me'])->name('user.me');
Route::get('user-publish-torrent',[\App\Http\Controllers\UserController::class, 'publishTorrent']);
Route::get('user-seeding-torrent',[\App\Http\Controllers\UserController::class, 'seedingTorrent']);
Route::get('user-leeching-torrent',[\App\Http\Controllers\UserController::class, 'leechingTorrent']);
Route::get('user-finished-torrent',[\App\Http\Controllers\UserController::class, 'finishedTorrent']);
Route::get('user-not-finished-torrent',[\App\Http\Controllers\UserController::class, 'notFinishedTorrent']);
Route::resource('messages', \App\Http\Controllers\MessageController::class);
Route::get('messages-unread', [\App\Http\Controllers\MessageController::class, 'listUnread']);
Route::resource('torrents', \App\Http\Controllers\TorrentController::class);
Route::resource('comments', \App\Http\Controllers\CommentController::class);
Route::resource('peers', \App\Http\Controllers\PeerController::class);
Route::resource('files', \App\Http\Controllers\FileController::class);
Route::resource('thanks', \App\Http\Controllers\ThankController::class);
Route::resource('snatches', \App\Http\Controllers\SnatchController::class);
Route::resource('bookmarks', \App\Http\Controllers\BookmarkController::class);
Route::get('search-box', [\App\Http\Controllers\TorrentController::class, 'searchBox']);
Route::resource('news', \App\Http\Controllers\NewsController::class);
Route::get('attend', [\App\Http\Controllers\AttendanceController::class, 'attend']);
Route::get('news-latest', [\App\Http\Controllers\NewsController::class, 'latest']);
Route::resource('polls', \App\Http\Controllers\PollController::class);
Route::get('polls-latest', [\App\Http\Controllers\PollController::class, 'latest']);
Route::post('polls-vote', [\App\Http\Controllers\PollController::class, 'vote']);
Route::resource('rewards', \App\Http\Controllers\RewardController::class);
Route::get('notifications', [\App\Http\Controllers\ToolController::class, 'notifications']);
});
Route::group(['middleware' => ['admin']], function () {
Route::resource('agent-allows', \App\Http\Controllers\AgentAllowController::class);
Route::get('all-agent-allows', [\App\Http\Controllers\AgentAllowController::class, 'all']);
Route::post('agent-check', [\App\Http\Controllers\AgentAllowController::class, 'check']);
Route::resource('agent-denies', \App\Http\Controllers\AgentDenyController::class);
Route::resource('users', \App\Http\Controllers\UserController::class);
Route::get('user-base', [\App\Http\Controllers\UserController::class, 'base']);
Route::get('user-classes', [\App\Http\Controllers\UserController::class, 'classes']);
Route::get('user-invite-info', [\App\Http\Controllers\UserController::class, 'inviteInfo']);
Route::get('user-match-exams', [\App\Http\Controllers\UserController::class, 'matchExams']);
Route::get('user-mod-comment', [\App\Http\Controllers\UserController::class, 'modComment']);
Route::post('user-disable', [\App\Http\Controllers\UserController::class, 'disable']);
Route::post('user-enable', [\App\Http\Controllers\UserController::class, 'enable']);
Route::post('user-reset-password', [\App\Http\Controllers\UserController::class, 'resetPassword']);
Route::put('user-increment-decrement', [\App\Http\Controllers\UserController::class, 'incrementDecrement']);
Route::put('user-remove-two-step', [\App\Http\Controllers\UserController::class, 'removeTwoStepAuthentication']);
Route::resource('exams', \App\Http\Controllers\ExamController::class);
Route::get('exams-all', [\App\Http\Controllers\ExamController::class, 'all']);
Route::get('exam-indexes', [\App\Http\Controllers\ExamController::class, 'indexes']);
Route::resource('exam-users', \App\Http\Controllers\ExamUserController::class);
Route::put('exam-users-avoid', [\App\Http\Controllers\ExamUserController::class, 'avoid']);
Route::put('exam-users-recover', [\App\Http\Controllers\ExamUserController::class, 'recover']);
Route::put('exam-users-avoid-bulk', [\App\Http\Controllers\ExamUserController::class, 'bulkAvoid']);
Route::put('exam-users-delete-bulk', [\App\Http\Controllers\ExamUserController::class, 'bulkDelete']);
Route::get('dashboard/system-info', [\App\Http\Controllers\DashboardController::class, 'systemInfo']);
Route::get('dashboard/stat-data', [\App\Http\Controllers\DashboardController::class, 'statData']);
Route::get('dashboard/latest-user', [\App\Http\Controllers\DashboardController::class, 'latestUser']);
Route::get('dashboard/latest-torrent', [\App\Http\Controllers\DashboardController::class, 'latestTorrent']);
Route::resource('settings', \App\Http\Controllers\SettingController::class);
Route::resource('medals', \App\Http\Controllers\MedalController::class);
Route::resource('user-medals', \App\Http\Controllers\UserMedalController::class);
Route::resource('tags', \App\Http\Controllers\TagController::class);
Route::resource('hr', \App\Http\Controllers\HitAndRunController::class);
Route::get('hr-status', [\App\Http\Controllers\HitAndRunController::class, 'listStatus']);
Route::put('hr-pardon/{id}', [\App\Http\Controllers\HitAndRunController::class, 'pardon']);
Route::put('hr-delete', [\App\Http\Controllers\HitAndRunController::class, 'bulkDelete']);
Route::put('hr-pardon', [\App\Http\Controllers\HitAndRunController::class, 'bulkPardon']);
});
});
Route::post('login', [\App\Http\Controllers\AuthenticateController::class, 'login']);
Route::group(['middleware' => ['auth.nexus:passkey', 'locale']], function () {
Route::post("pieces-hash", [\App\Http\Controllers\TorrentController::class, "queryByPiecesHash"])->name("torrent.pieces_hash.query");
});