API
APIs structure
All the APIs in Balance are defined in the api.php file and each API "points" to a controller's method.
APIs are be grouped by prefix and name.
Here's an example:
Route::prefix('v1')
->name('api.')
->middleware('auth:sanctum')
->group(function () {
// Users
Route::prefix('users')
->name('users.')
->controller(UsersApiController::class)
->group(function () {
Route::post('media', 'storeMedia')
->name('storeMedia');
Route::post('{user}/updatePhoto', 'updatePhoto')
->name('updatePhoto');
Route::get('{user}/getActiveOrders', 'getActiveOrders')
->name('getActiveOrders');
Route::get('{user}/getTeams', 'getTeams')
->name('getTeams');
Route::get('{user}/getUserTimesheets', 'getUserTimesheets')
->name('getUserTimesheets');
});
Route::resource('users', UsersApiController::class);
// Config info
Route::get('config/getDistroInfo', [ConfigApiController::class, 'getDistroInfo'])
->name('config.getDistroInfo');
// Locales
Route::prefix('locales')
->name('locales.')
->controller(LocalesController::class)
->group(function () {
Route::get('languages', 'languages')
->name('languages');
Route::get('messages', 'messages')
->name('messages');
});
// Abilities
Route::resource('abilities', AbilitiesController::class)
->only('index');
// Teams
Route::prefix('teams')
->name('teams.')
->controller(TeamsApiController::class)
->group(function () {
Route::get('{team}/getUserList', 'getUserList')
->name('getUserList');
Route::get('{team}/getProjects', 'getProjects')
->name('getProjects');
Route::get('{team}/getActiveOrders', 'getActiveOrders')
->name('getActiveOrders');
});
Route::resource('teams', TeamsApiController::class);
// Companies
Route::prefix('companies')
->name('companies.')
->controller(CompaniesApiController::class)
->group(function () {
Route::get('{company}/getDonutChartData', 'getDonutChartData')
->name('getDonutChartData');
Route::get('{company}/getActiveOrders', 'getActiveOrders')
->name('getActiveOrders');
Route::get('{company}/getProjects', 'getProjects')
->name('getProjects');
Route::post('{company}/addAttachments', 'addAttachments')
->name('addAttachments');
Route::get('{company}/getWidgetData', 'getWidgetData')
->name('getWidgetData');
});
Route::resource('companies', CompaniesApiController::class);
// Projects
Route::prefix('projects')
->name('projects.')
->controller(ProjectsApiController::class)
->group(function () {
Route::get('{project}/getChartData', 'getChartData')
->name('getChartData');
Route::post('{project}/addAttachments', 'addAttachments')
->name('addAttachments');
Route::post('{project}/removeAttachment', 'removeAttachment')
->name('removeAttachment');
Route::get('getTaskData', 'getTaskData')
->name('getTaskData');
});
Route::resource('projects', ProjectsApiController::class);
});Last updated