mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
331 lines
9.0 KiB
PHP
331 lines
9.0 KiB
PHP
<?php
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| 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!
|
|
|
|
|
*/
|
|
|
|
|
|
// Authentication & Password Reset
|
|
//----------------------------------
|
|
|
|
Route::group(['prefix' => 'auth'], function () {
|
|
|
|
Route::post('login', 'Auth\AccessTokensController@store');
|
|
Route::get('logout', 'Auth\AccessTokensController@destroy');
|
|
Route::post('refresh_token', 'Auth\AccessTokensController@update');
|
|
|
|
// Send reset password mail
|
|
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
|
|
|
|
// handle reset password form process
|
|
Route::post('reset/password', 'Auth\ResetPasswordController@reset');
|
|
|
|
});
|
|
|
|
Route::post('is-registered',[
|
|
'as' => 'is-registered','uses' => 'Auth\AccessTokensController@isRegistered'
|
|
]);
|
|
|
|
Route::get('/ping', [
|
|
'as' => 'ping',
|
|
'uses' => 'UsersController@ping'
|
|
]);
|
|
|
|
// Country, State & City
|
|
//----------------------------------
|
|
|
|
Route::get('/countries', [
|
|
'as' => 'countries',
|
|
'uses' => 'LocationController@getCountries'
|
|
]);
|
|
|
|
Route::get('/states/{id}', [
|
|
'as' => 'states',
|
|
'uses' => 'LocationController@getStates'
|
|
]);
|
|
|
|
Route::get('/cities/{id}', [
|
|
'as' => 'cities',
|
|
'uses' => 'LocationController@getCities'
|
|
]);
|
|
|
|
|
|
// Onboarding
|
|
//----------------------------------
|
|
Route::group(['middleware' => 'redirect-if-installed'], function () {
|
|
|
|
Route::get('/admin/onboarding', [
|
|
'as' => 'admin.onboarding',
|
|
'uses' => 'OnboardingController@getOnboardingData'
|
|
]);
|
|
|
|
Route::get('/admin/onboarding/requirements', [
|
|
'as' => 'admin.onboarding.requirements',
|
|
'uses' => 'RequirementsController@requirements'
|
|
]);
|
|
|
|
Route::get('/admin/onboarding/permissions', [
|
|
'as' => 'admin.onboarding.permissions',
|
|
'uses' => 'PermissionsController@permissions'
|
|
]);
|
|
|
|
Route::post('/admin/onboarding/environment/database', [
|
|
'as' => 'admin.onboarding.database',
|
|
'uses' => 'EnvironmentController@saveDatabaseEnvironment'
|
|
]);
|
|
|
|
Route::get('/admin/onboarding/environment/mail', [
|
|
'as' => 'admin.onboarding.mail',
|
|
'uses' => 'EnvironmentController@getMailDrivers'
|
|
]);
|
|
|
|
Route::post('/admin/onboarding/environment/mail', [
|
|
'as' => 'admin.onboarding.mail',
|
|
'uses' => 'EnvironmentController@saveMailEnvironment'
|
|
]);
|
|
|
|
Route::post('/admin/onboarding/profile', [
|
|
'as' => 'admin.profile',
|
|
'uses' => 'OnboardingController@adminProfile'
|
|
]);
|
|
|
|
Route::post('/admin/onboarding/company', [
|
|
'as' => 'admin.company',
|
|
'uses' => 'OnboardingController@adminCompany'
|
|
]);
|
|
|
|
Route::post('/admin/onboarding/settings', [
|
|
'as' => 'admin.settings',
|
|
'uses' => 'OnboardingController@companySettings'
|
|
]);
|
|
});
|
|
// App version
|
|
// ----------------------------------
|
|
|
|
Route::get('/settings/app/version', [
|
|
'as' => 'settings.app.version',
|
|
'uses' => 'SettingsController@getAppVersion'
|
|
]);
|
|
|
|
Route::group(['middleware' => 'api'], function () {
|
|
|
|
Route::group([
|
|
'middleware' => 'admin'
|
|
], function () {
|
|
|
|
Route::get('/bootstrap', [
|
|
'as' => 'bootstrap',
|
|
'uses' => 'UsersController@getBootstrap'
|
|
]);
|
|
|
|
|
|
// Dashboard
|
|
//----------------------------------
|
|
|
|
Route::get('/dashboard', [
|
|
'as' => 'dashboard',
|
|
'uses' => 'DashboardController@index'
|
|
]);
|
|
|
|
|
|
// Customers
|
|
//----------------------------------
|
|
|
|
Route::post('/customers/delete', [
|
|
'as' => 'customers.delete',
|
|
'uses' => 'CustomersController@delete'
|
|
]);
|
|
|
|
Route::resource('customers', 'CustomersController');
|
|
|
|
|
|
// Items
|
|
//----------------------------------
|
|
|
|
Route::post('/items/delete', [
|
|
'as' => 'items.delete',
|
|
'uses' => 'ItemsController@delete'
|
|
]);
|
|
|
|
Route::resource('items', 'ItemsController');
|
|
|
|
|
|
// Invoices
|
|
//-------------------------------------------------
|
|
|
|
Route::post('/invoices/delete', [
|
|
'as' => 'invoices.delete',
|
|
'uses' => 'InvoicesController@delete'
|
|
]);
|
|
|
|
Route::post('/invoices/send', [
|
|
'as' => 'invoices.send',
|
|
'uses' => 'InvoicesController@sendInvoice'
|
|
]);
|
|
|
|
Route::post('/invoices/mark-as-paid', [
|
|
'as' => 'invoices.paid',
|
|
'uses' => 'InvoicesController@markAsPaid'
|
|
]);
|
|
|
|
Route::post('/invoices/mark-as-sent', [
|
|
'as' => 'invoices.sent',
|
|
'uses' => 'InvoicesController@markAsSent'
|
|
]);
|
|
|
|
Route::get('/invoices/unpaid/{id}', [
|
|
'as' => 'bootstrap',
|
|
'uses' => 'InvoicesController@getCustomersUnpaidInvoices'
|
|
]);
|
|
|
|
Route::resource('invoices', 'InvoicesController');
|
|
|
|
|
|
// Tax Types
|
|
//----------------------------------
|
|
|
|
Route::resource('tax-types', 'TaxTypeController');
|
|
|
|
|
|
// Estimates
|
|
//-------------------------------------------------
|
|
|
|
Route::post('/estimates/delete', [
|
|
'as' => 'estimates.delete',
|
|
'uses' => 'EstimatesController@delete'
|
|
]);
|
|
|
|
Route::post('/estimates/send', [
|
|
'as' => 'estimates.send',
|
|
'uses' => 'EstimatesController@sendEstimate'
|
|
]);
|
|
|
|
Route::post('/estimates/mark-as-sent', [
|
|
'as' => 'estimates.send',
|
|
'uses' => 'EstimatesController@markEstimateSent'
|
|
]);
|
|
|
|
Route::post('/estimates/accept', [
|
|
'as' => 'estimates.mark.accepted',
|
|
'uses' => 'EstimatesController@markEstimateAccepted'
|
|
]);
|
|
|
|
Route::post('/estimates/reject', [
|
|
'as' => 'estimates.mark.rejected',
|
|
'uses' => 'EstimatesController@markEstimateRejected'
|
|
]);
|
|
|
|
Route::post('/estimates/{id}/convert-to-invoice', [
|
|
'as' => 'estimate.to.invoice',
|
|
'uses' => 'EstimatesController@estimateToInvoice'
|
|
]);
|
|
|
|
Route::resource('estimates', 'EstimatesController');
|
|
|
|
|
|
// Expenses
|
|
//----------------------------------
|
|
|
|
Route::post('/expenses/delete', [
|
|
'as' => 'expenses.delete',
|
|
'uses' => 'ExpensesController@delete'
|
|
]);
|
|
|
|
Route::get('/expenses/{id}/show/receipt', [
|
|
'as' => 'expenses.show',
|
|
'uses' => 'ExpensesController@showReceipt',
|
|
]);
|
|
|
|
Route::post('/expenses/{id}/upload/receipts', [
|
|
'as' => 'estimate.to.invoice',
|
|
'uses' => 'ExpensesController@uploadReceipts'
|
|
]);
|
|
|
|
Route::resource('expenses', 'ExpensesController');
|
|
|
|
|
|
// Expenses Categories
|
|
//----------------------------------
|
|
|
|
Route::resource('categories', 'ExpenseCategoryController');
|
|
|
|
|
|
// Payments
|
|
//----------------------------------
|
|
|
|
Route::post('/payments/delete', [
|
|
'as' => 'payments.delete',
|
|
'uses' => 'PaymentController@delete'
|
|
]);
|
|
|
|
Route::resource('payments', 'PaymentController');
|
|
|
|
|
|
// Settings
|
|
//----------------------------------
|
|
|
|
Route::group(['prefix' => 'settings'], function () {
|
|
|
|
Route::get('/profile', [
|
|
'as' => 'get.admin.profile',
|
|
'uses' => 'CompanyController@getAdmin'
|
|
]);
|
|
|
|
Route::put('/profile', [
|
|
'as' => 'admin.profile',
|
|
'uses' => 'CompanyController@updateAdminProfile'
|
|
]);
|
|
|
|
Route::post('/company/upload-logo', [
|
|
'as' => 'upload.admin.company.logo',
|
|
'uses' => 'CompanyController@uploadCompanyLogo'
|
|
]);
|
|
|
|
Route::get('/company', [
|
|
'as' => 'get.admin.company',
|
|
'uses' => 'CompanyController@getAdminCompany'
|
|
]);
|
|
|
|
Route::post('/company', [
|
|
'as' => 'admin.company',
|
|
'uses' => 'CompanyController@updateAdminCompany'
|
|
]);
|
|
|
|
Route::get('/general', [
|
|
'as' => 'get.admin.company.setting',
|
|
'uses' => 'CompanyController@getGeneralSettings'
|
|
]);
|
|
|
|
Route::put('/general', [
|
|
'as' => 'admin.company.setting',
|
|
'uses' => 'CompanyController@updateGeneralSettings'
|
|
]);
|
|
|
|
Route::get('/colors', [
|
|
'as' => 'admin.colors.setting',
|
|
'uses' => 'CompanyController@getColors'
|
|
]);
|
|
|
|
Route::get('/get-setting', [
|
|
'as' => 'get.admin.setting',
|
|
'uses' => 'CompanyController@getSetting'
|
|
]);
|
|
|
|
Route::put('/update-setting', [
|
|
'as' => 'admin.update.setting',
|
|
'uses' => 'CompanyController@updateSetting'
|
|
]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|