| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- use Webman\Route;
- use app\miniapi\controller\AgentController;
- use app\miniapi\controller\PhotoController;
- use app\miniapi\controller\DriverController;
- use app\miniapi\controller\CheckoutController;
- use app\miniapi\controller\EnterpriseController;
- use app\miniapi\controller\CatalogController;
- use app\miniapi\controller\AuthController;
- use app\miniapi\controller\SystemController;
- use app\miniapi\middleware\Authenticate;
- Route::group('/api/mini/v1', function () {
- Route::add(['GET', 'HEAD'], '/health', [SystemController::class, 'health']);
- Route::get('/config', [SystemController::class, 'config']);
- Route::post('/auth/wechat', [AuthController::class, 'login']);
- Route::post('/auth/send-sms', [AuthController::class, 'sendSms']);
- Route::post('/auth/phone-login', [AuthController::class, 'phoneLogin']);
- Route::post('/auth/test-phone', [AuthController::class, 'testPhone']);
- Route::get('/packages', [CatalogController::class, 'packages']);
- Route::get('/packages/{id:\d+}', [CatalogController::class, 'package']);
- // Add future authenticated endpoints in this group; public endpoints must be declared explicitly.
- Route::group(function () {
- Route::add(['GET', 'HEAD'], '/session', [SystemController::class, 'session']);
- Route::post('/auth/logout', [AuthController::class, 'logout']);
- Route::get('/me', [EnterpriseController::class, 'me']);
- Route::get('/addresses', [EnterpriseController::class, 'addresses']);
- Route::get('/enterprises/{enterprise:\d+}/{section:home|rights|ledger|orders|devices|rewards}', [EnterpriseController::class, 'enterprise']);
- Route::get('/enterprises/{enterprise:\d+}/devices/{id:\d+}', [EnterpriseController::class, 'device']);
- Route::get('/enterprises/{enterprise:\d+}/deliveries/{id:\d+}', [EnterpriseController::class, 'tracking']);
- Route::get('/enterprises/{enterprise:\d+}/address', [EnterpriseController::class, 'addressDetail']);
- Route::post('/enterprises/{enterprise:\d+}/address', [EnterpriseController::class, 'address']);
- Route::get('/enterprises/{enterprise:\d+}/addresses/{address:\d+}', [EnterpriseController::class, 'addressSiteDetail']);
- Route::post('/enterprises/{enterprise:\d+}/addresses', [EnterpriseController::class, 'createAddress']);
- Route::post('/enterprises/{enterprise:\d+}/addresses/{address:\d+}', [EnterpriseController::class, 'updateAddress']);
- Route::post('/enterprises/{enterprise:\d+}/deliveries', [EnterpriseController::class, 'book']);
- Route::post('/enterprises/{enterprise:\d+}/promotion/code', [\app\miniapi\controller\PromotionController::class, 'code']);
- Route::post('/enterprises/{enterprise:\d+}/promotion/bind', [\app\miniapi\controller\PromotionController::class, 'bind']);
- Route::post('/enterprises/{enterprise:\d+}/deliveries/{id:\d+}/cancel', [EnterpriseController::class, 'cancelDelivery']);
- Route::post('/enterprises/{enterprise:\d+}/checkout/quote', [CheckoutController::class, 'quote']);
- Route::post('/enterprises/{enterprise:\d+}/checkouts', [CheckoutController::class, 'checkout']);
- Route::get('/enterprises/{enterprise:\d+}/checkouts/{id:\d+}', [CheckoutController::class, 'checkoutDetail']);
- Route::post('/enterprises/{enterprise:\d+}/checkouts/{id:\d+}/cancel', [CheckoutController::class, 'cancelCheckout']);
- Route::post('/enterprises/{enterprise:\d+}/checkouts/{id:\d+}/pay', [CheckoutController::class, 'pay']);
- Route::get('/drivers/{driver:\d+}/{section:dashboard|tasks|routes}', [DriverController::class, 'driver']);
- Route::get('/drivers/{driver:\d+}/tasks/{id:\d+}', [DriverController::class, 'task']);
- Route::post('/drivers/{driver:\d+}/tasks/{id:\d+}/{action:start|checkin|draft|complete|exception}', [DriverController::class, 'taskCommand']);
- Route::post('/drivers/{driver:\d+}/tasks/{id:\d+}/photos', [DriverController::class, 'photoUpload']);
- Route::get('/drivers/{driver:\d+}/tasks/{id:\d+}/device-check', [DriverController::class, 'deviceCheck']);
- Route::get('/photos/{id:\d+}', [PhotoController::class, 'photo']);
- Route::get('/agents/{agent:\d+}/{section:dashboard|customers|orders|commissions}', [AgentController::class, 'agent']);
- Route::post('/agents/{agent:\d+}/withdrawals', [AgentController::class, 'withdraw']);
- })->middleware([Authenticate::class]);
- foreach (['/health', '/session'] as $path) {
- Route::add([
- 'POST',
- 'PUT',
- 'PATCH',
- 'DELETE',
- ], $path, [SystemController::class, 'methodNotAllowed']);
- }
- });
- Route::any('/api/mini', [SystemController::class, 'notFound']);
- Route::any('/api/mini/{path:.*}', [SystemController::class, 'notFound']);
|