update api and add more features
This commit is contained in:
+51
-25
@@ -1,4 +1,3 @@
|
||||
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
@@ -71,6 +70,7 @@ use App\Http\Controllers\Api\Finance\PaymentTransactionController;
|
||||
use App\Http\Controllers\Api\Finance\PaypalTransactionsController;
|
||||
use App\Http\Controllers\Api\Finance\PurchaseOrderController;
|
||||
use App\Http\Controllers\Api\Finance\ReimbursementController;
|
||||
use App\Http\Controllers\Api\Finance\ChargeController;
|
||||
use App\Http\Controllers\Api\Finance\FeeCalculationController;
|
||||
use App\Http\Controllers\Api\Finance\PaymentEventChargesController;
|
||||
use App\Http\Controllers\Api\Finance\PaymentManualController;
|
||||
@@ -118,6 +118,8 @@ use App\Http\Controllers\Api\BadgeScan\BadgeScanController;
|
||||
use App\Http\Controllers\Api\Documentation\ApiDocsAdminController;
|
||||
use App\Http\Controllers\Api\Documentation\DocsCatalogController;
|
||||
use App\Http\Controllers\Api\Parents\AuthorizedUserInviteController;
|
||||
use App\Http\Controllers\Api\Administrator\AdministratorPromotionController;
|
||||
use App\Http\Controllers\Api\Parents\ParentPromotionController;
|
||||
use App\Http\Controllers\Api\Public\PublicWinnersController;
|
||||
use App\Http\Controllers\Api\ScannerController;
|
||||
use App\Http\Controllers\Api\Staff\TimeOffNotificationController;
|
||||
@@ -283,7 +285,7 @@ Route::prefix('v1')->group(function () {
|
||||
Route::get('profile', [InfoIconController::class, 'profileIcon']);
|
||||
});
|
||||
|
||||
Route::middleware('auth:api')->prefix('administrator')->group(function () {
|
||||
Route::middleware(['auth:api', 'admin.access'])->prefix('administrator')->group(function () {
|
||||
Route::get('attendance-templates', [AttendanceCommentTemplateController::class, 'bootstrapUrls'])
|
||||
->name('api.v1.administrator.attendance-templates.bootstrap');
|
||||
|
||||
@@ -312,6 +314,29 @@ Route::prefix('v1')->group(function () {
|
||||
Route::get('enroll-withdrawal/new-students', [AdministratorEnrollmentController::class, 'newStudents']);
|
||||
Route::post('enroll-withdrawal/update-statuses', [AdministratorEnrollmentController::class, 'updateStatuses']);
|
||||
|
||||
Route::prefix('promotions')->group(function () {
|
||||
Route::get('/', [AdministratorPromotionController::class, 'index']);
|
||||
Route::get('summary', [AdministratorPromotionController::class, 'summary']);
|
||||
Route::post('evaluate', [AdministratorPromotionController::class, 'evaluate']);
|
||||
Route::post('reminders/dispatch', [AdministratorPromotionController::class, 'dispatchScheduledReminders']);
|
||||
Route::post('deadlines/expire', [AdministratorPromotionController::class, 'expireDeadlines']);
|
||||
Route::post('deadlines', [AdministratorPromotionController::class, 'setDeadline']);
|
||||
|
||||
Route::prefix('levels')->group(function () {
|
||||
Route::get('/', [AdministratorPromotionController::class, 'levelProgressions']);
|
||||
Route::post('/', [AdministratorPromotionController::class, 'upsertLevelProgression']);
|
||||
Route::post('seed', [AdministratorPromotionController::class, 'seedLevelProgressions']);
|
||||
});
|
||||
|
||||
Route::get('{promotionId}', [AdministratorPromotionController::class, 'show'])->whereNumber('promotionId');
|
||||
Route::patch('{promotionId}/status', [AdministratorPromotionController::class, 'updateStatus'])->whereNumber('promotionId');
|
||||
Route::post('{promotionId}/deadline', [AdministratorPromotionController::class, 'setDeadline'])->whereNumber('promotionId');
|
||||
Route::post('{promotionId}/reminders', [AdministratorPromotionController::class, 'sendReminder'])->whereNumber('promotionId');
|
||||
Route::get('{promotionId}/reminders', [AdministratorPromotionController::class, 'reminders'])->whereNumber('promotionId');
|
||||
Route::get('{promotionId}/audit', [AdministratorPromotionController::class, 'audit'])->whereNumber('promotionId');
|
||||
Route::patch('{promotionId}/enrollment-steps', [AdministratorPromotionController::class, 'adminCompleteEnrollment'])->whereNumber('promotionId');
|
||||
});
|
||||
|
||||
Route::get('emergency-contacts', [AdministratorEmergencyContactController::class, 'index']);
|
||||
Route::get('emergency-contacts/data', [AdministratorEmergencyContactController::class, 'index']);
|
||||
Route::get('emergency-contacts/{contactId}', [AdministratorEmergencyContactController::class, 'show']);
|
||||
@@ -396,7 +421,7 @@ Route::prefix('v1')->group(function () {
|
||||
Route::post('generate', [CertificateController::class, 'generate']);
|
||||
});
|
||||
|
||||
Route::prefix('role-permission')->group(function () {
|
||||
Route::middleware('admin.access')->prefix('role-permission')->group(function () {
|
||||
Route::get('roles', [RolePermissionController::class, 'roles']);
|
||||
Route::post('roles', [RolePermissionController::class, 'storeRole']);
|
||||
Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']);
|
||||
@@ -625,7 +650,7 @@ Route::prefix('v1')->group(function () {
|
||||
Route::post('{notificationId}/restore', [ApiNotificationController::class, 'restore']);
|
||||
Route::post('{notificationId}/read', [ApiNotificationController::class, 'markRead']);
|
||||
});
|
||||
Route::prefix('role-permissions')->group(function () {
|
||||
Route::middleware('admin.access')->prefix('role-permissions')->group(function () {
|
||||
Route::get('roles', [RolePermissionController::class, 'roles']);
|
||||
Route::post('roles', [RolePermissionController::class, 'storeRole']);
|
||||
Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']);
|
||||
@@ -645,25 +670,6 @@ Route::prefix('v1')->group(function () {
|
||||
Route::put('roles/{roleId}/permissions', [RolePermissionController::class, 'updateRolePermissions']);
|
||||
});
|
||||
|
||||
Route::prefix('role-permission')->group(function () {
|
||||
Route::get('roles', [RolePermissionController::class, 'roles']);
|
||||
Route::post('roles', [RolePermissionController::class, 'storeRole']);
|
||||
Route::get('roles/{roleId}', [RolePermissionController::class, 'showRole']);
|
||||
Route::patch('roles/{roleId}', [RolePermissionController::class, 'updateRole']);
|
||||
Route::delete('roles/{roleId}', [RolePermissionController::class, 'deleteRole']);
|
||||
|
||||
Route::get('users', [RolePermissionController::class, 'users']);
|
||||
Route::post('users/{userId}/roles', [RolePermissionController::class, 'assignRoles']);
|
||||
|
||||
Route::get('permissions', [RolePermissionController::class, 'permissions']);
|
||||
Route::post('permissions', [RolePermissionController::class, 'storePermission']);
|
||||
Route::get('permissions/{permissionId}', [RolePermissionController::class, 'showPermission']);
|
||||
Route::patch('permissions/{permissionId}', [RolePermissionController::class, 'updatePermission']);
|
||||
Route::delete('permissions/{permissionId}', [RolePermissionController::class, 'deletePermission']);
|
||||
|
||||
Route::get('roles/{roleId}/permissions', [RolePermissionController::class, 'rolePermissions']);
|
||||
Route::put('roles/{roleId}/permissions', [RolePermissionController::class, 'updateRolePermissions']);
|
||||
});
|
||||
Route::prefix('role-switcher')->group(function () {
|
||||
Route::get('/', [RoleSwitcherController::class, 'index']);
|
||||
Route::post('switch', [RoleSwitcherController::class, 'switch']);
|
||||
@@ -741,11 +747,19 @@ Route::prefix('v1')->group(function () {
|
||||
Route::get('{studentId}/score-card', [StudentApiController::class, 'scoreCard']);
|
||||
});
|
||||
|
||||
Route::prefix('parents')->group(function () {
|
||||
Route::middleware('parent.access')->prefix('parents')->group(function () {
|
||||
Route::get('attendance', [ParentApiController::class, 'attendance']);
|
||||
Route::get('invoices', [ParentApiController::class, 'invoices']);
|
||||
Route::get('enrollments', [ParentApiController::class, 'enrollments']);
|
||||
Route::post('enrollments', [ParentApiController::class, 'updateEnrollments']);
|
||||
|
||||
Route::prefix('promotions')->group(function () {
|
||||
Route::get('/', [ParentPromotionController::class, 'overview']);
|
||||
Route::get('{promotionId}', [ParentPromotionController::class, 'show'])->whereNumber('promotionId');
|
||||
Route::post('{promotionId}/start', [ParentPromotionController::class, 'start'])->whereNumber('promotionId');
|
||||
Route::patch('{promotionId}/steps', [ParentPromotionController::class, 'updateSteps'])->whereNumber('promotionId');
|
||||
Route::post('{promotionId}/submit', [ParentPromotionController::class, 'submit'])->whereNumber('promotionId');
|
||||
});
|
||||
Route::get('registration', [ParentApiController::class, 'registration']);
|
||||
Route::post('registration', [ParentApiController::class, 'storeRegistration']);
|
||||
Route::patch('students/{studentId}', [ParentApiController::class, 'updateStudent']);
|
||||
@@ -770,7 +784,7 @@ Route::prefix('v1')->group(function () {
|
||||
Route::delete('authorized-users/{id}', [AuthorizedUsersController::class, 'destroy'])->whereNumber('id');
|
||||
});
|
||||
|
||||
Route::prefix('users')->group(function () {
|
||||
Route::middleware('admin.access')->prefix('users')->group(function () {
|
||||
Route::get('/', [UserController::class, 'index']);
|
||||
Route::post('/', [UserController::class, 'store']);
|
||||
Route::get('login-activity', [UserController::class, 'loginActivity']);
|
||||
@@ -896,6 +910,18 @@ Route::prefix('v1')->group(function () {
|
||||
Route::get('unpaid-parents', [FinancialController::class, 'unpaidParents']);
|
||||
Route::post('fees/refund', [FeeCalculationController::class, 'refund']);
|
||||
Route::post('fees/tuition-total', [FeeCalculationController::class, 'tuitionTotal']);
|
||||
Route::post('fees/tuition-breakdown', [FeeCalculationController::class, 'tuitionBreakdown']);
|
||||
Route::post('fees/family-balance', [FeeCalculationController::class, 'familyBalance']);
|
||||
|
||||
Route::prefix('fees/charges')->group(function () {
|
||||
Route::get('/', [ChargeController::class, 'index']);
|
||||
Route::post('extra', [ChargeController::class, 'storeExtra']);
|
||||
Route::post('event', [ChargeController::class, 'storeEvent']);
|
||||
Route::post('extra/{id}/cancel', [ChargeController::class, 'cancelExtra']);
|
||||
Route::post('extra/{id}/apply', [ChargeController::class, 'applyExtra']);
|
||||
Route::post('event/{id}/cancel', [ChargeController::class, 'cancelEvent']);
|
||||
Route::post('event/{id}/mark-paid', [ChargeController::class, 'markEventPaid']);
|
||||
});
|
||||
|
||||
Route::prefix('refunds')->group(function () {
|
||||
Route::post('recalculate-overpayments', [RefundController::class, 'recalculateOverpayments']);
|
||||
|
||||
Reference in New Issue
Block a user