diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 803f0f8d..b4ab0e3e 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -19,12 +19,23 @@ use Crater\Currency; use Crater\CompanySetting; class CompanyController extends Controller -{ +{ + /** + * Retrive the Admin account. + * @return \Crater\User + */ public function getAdmin() { return User::find(1); } + /** + * Update the Admin profile. + * Includes name, email and (or) password + * + * @param \Crater\Http\Requests\ProfileRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function updateAdminProfile(ProfileRequest $request) { $verifyEmail = User::where('email', $request->email)->first(); @@ -54,6 +65,14 @@ class CompanyController extends Controller ]); } + + + /** + * Get Admin Account alongside the country from the addresses table and + * The company from companies table + * + * @return \Illuminate\Http\JsonResponse + */ public function getAdminCompany() { $user = User::with(['addresses', 'addresses.country', 'company'])->find(1); @@ -63,6 +82,13 @@ class CompanyController extends Controller ]); } + + + /** + * Update Admin Company Details + * @param \Crater\Http\Requests\CompanyRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function updateAdminCompany(CompanyRequest $request) { $user = User::find(1); @@ -85,6 +111,11 @@ class CompanyController extends Controller ]); } + /** + * Retrieve General App Settings + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function getGeneralSettings(Request $request) { $date_formats = DateFormatter::get_list(); @@ -134,6 +165,13 @@ class CompanyController extends Controller ]); } + + + /** + * Update General App Settings + * @param \Crater\Http\Requests\CompanySettingRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function updateGeneralSettings(CompanySettingRequest $request) { $sets = [ @@ -153,7 +191,7 @@ class CompanyController extends Controller 'success' => true ]); } - + public function getCustomizeSetting (Request $request) { $invoice_prefix = CompanySetting::getSetting('invoice_prefix', $request->header('company')); @@ -206,6 +244,11 @@ class CompanyController extends Controller ]); } + /** + * Update a specific Company Setting + * @param \Crater\Http\Requests\SettingRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function updateSetting(SettingRequest $request) { CompanySetting::setSetting($request->key, $request->value, $request->header('company')); @@ -215,6 +258,11 @@ class CompanyController extends Controller ]); } + /** + * Retrieve Specific Company Setting + * @param \Crater\Http\Requests\SettingKeyRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function getSetting(SettingKeyRequest $request) { $setting = CompanySetting::getSetting($request->key, $request->header('company')); @@ -224,6 +272,12 @@ class CompanyController extends Controller ]); } + + /** + * Retrieve App Colors + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function getColors(Request $request) { $colors = [ @@ -258,7 +312,7 @@ class CompanyController extends Controller * Upload the company logo to storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function uploadCompanyLogo(Request $request) { @@ -285,7 +339,7 @@ class CompanyController extends Controller * Upload the Admin Avatar to public storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function uploadAdminAvatar(Request $request) { diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index 6c0424be..a22cc6f2 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -19,7 +19,7 @@ class CustomersController extends Controller /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function index(Request $request) { @@ -53,7 +53,7 @@ class CustomersController extends Controller * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function store(Requests\CustomerRequest $request) { @@ -104,7 +104,7 @@ class CustomersController extends Controller * Display the specified resource. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function show($id) { @@ -124,7 +124,7 @@ class CustomersController extends Controller * Show the form for editing the specified resource. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function edit($id) { @@ -144,7 +144,7 @@ class CustomersController extends Controller * * @param \Illuminate\Http\Request $request * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function update($id, Requests\CustomerRequest $request) { @@ -204,10 +204,10 @@ class CustomersController extends Controller } /** - * Remove the specified resource from storage. + * Remove the specified Customer along side all his/her resources (ie. Estimates, Invoices, Payments and Addresses) * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function destroy($id) { @@ -218,6 +218,13 @@ class CustomersController extends Controller ]); } + + /** + * Remove a list of Customers along side all their resources (ie. Estimates, Invoices, Payments and Addresses) + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function delete(Request $request) { foreach ($request->id as $id) { diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index b15e8e46..0305dd78 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -15,6 +15,12 @@ use Illuminate\Support\Facades\DB; class DashboardController extends Controller { + + /** + * Retrieve Dashboard details + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function index(Request $request) { $invoiceTotals = []; @@ -137,6 +143,11 @@ class DashboardController extends Controller ]); } + /** + * Retrive Expense Chart data + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function getExpenseChartData(Request $request) { $expensesCategories = Expense::with('category') diff --git a/app/Http/Controllers/ExpensesController.php b/app/Http/Controllers/ExpensesController.php index 1599a72d..b2f15b50 100644 --- a/app/Http/Controllers/ExpensesController.php +++ b/app/Http/Controllers/ExpensesController.php @@ -17,7 +17,7 @@ class ExpensesController extends Controller /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function index(Request $request) { @@ -48,7 +48,7 @@ class ExpensesController extends Controller /** * Show the form for creating a new resource. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function create(Request $request) { @@ -63,7 +63,7 @@ class ExpensesController extends Controller * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function store(ExpenseRequest $request) { @@ -91,7 +91,7 @@ class ExpensesController extends Controller * Display the specified resource. * * @param \Crater\Expense $expense - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function show(Expense $expense) { @@ -102,7 +102,7 @@ class ExpensesController extends Controller * Show the form for editing the specified resource. * * @param $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function edit(Request $request,$id) { @@ -122,7 +122,7 @@ class ExpensesController extends Controller * * @param \Illuminate\Http\Request $request * @param \Crater\Expense $expense - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function update(ExpenseRequest $request, Expense $expense) { @@ -150,7 +150,7 @@ class ExpensesController extends Controller * Remove the specified resource from storage. * * @param \Crater\Expense $expense - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function destroy(Expense $expense) { @@ -175,7 +175,7 @@ class ExpensesController extends Controller * * @param \Illuminate\Http\Request $request * @param $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function uploadReceipts(Request $request, $id) { @@ -200,6 +200,12 @@ class ExpensesController extends Controller ]); } + + /** + * Retrive details of an expense receipt from storage. + * @param int $id + * @return \Illuminate\Http\JsonResponse + */ public function showReceipt($id) { $expense = Expense::find($id); @@ -226,6 +232,14 @@ class ExpensesController extends Controller ]); } + + + /** + * Download an expense receipt from storage. + * @param int $id + * @param strig $hash + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse | \Illuminate\Http\JsonResponse + */ public function downloadReceipt($id, $hash) { $company = Company::where('unique_hash', $hash)->first(); diff --git a/app/Http/Controllers/FrontendController.php b/app/Http/Controllers/FrontendController.php index fdbf55bd..bf209b06 100644 --- a/app/Http/Controllers/FrontendController.php +++ b/app/Http/Controllers/FrontendController.php @@ -118,6 +118,11 @@ class FrontendController extends Controller return $pdf->stream(); } + + /** + * + * @return \Illuminate\Http\Response + */ public function getCustomerInvoicePdf($id) { $invoice = Invoice::with([ diff --git a/app/Http/Controllers/InvoicesController.php b/app/Http/Controllers/InvoicesController.php index 31d820d7..d0918d4b 100644 --- a/app/Http/Controllers/InvoicesController.php +++ b/app/Http/Controllers/InvoicesController.php @@ -27,7 +27,7 @@ class InvoicesController extends Controller /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function index(Request $request) { @@ -60,7 +60,7 @@ class InvoicesController extends Controller /** * Show the form for creating a new resource. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function create(Request $request) { @@ -91,7 +91,7 @@ class InvoicesController extends Controller * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function store(Requests\InvoicesRequest $request) { @@ -201,7 +201,7 @@ class InvoicesController extends Controller * Display the specified resource. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function show(Request $request, $id) { @@ -225,7 +225,7 @@ class InvoicesController extends Controller * Show the form for editing the specified resource. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function edit(Request $request,$id) { @@ -253,7 +253,7 @@ class InvoicesController extends Controller * * @param \Illuminate\Http\Request $request * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function update(Requests\InvoicesRequest $request, $id) { @@ -353,7 +353,7 @@ class InvoicesController extends Controller * Remove the specified resource from storage. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function destroy($id) { @@ -391,6 +391,14 @@ class InvoicesController extends Controller ]); } + + + /** + * Mail a specific invoice to the correponding cusitomer's email address. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function sendInvoice(Request $request) { $invoice = Invoice::findOrFail($request->id); @@ -431,6 +439,13 @@ class InvoicesController extends Controller ]); } + + /** + * Mark a specific invoice as sent. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function markAsSent(Request $request) { $invoice = Invoice::findOrFail($request->id); @@ -443,6 +458,13 @@ class InvoicesController extends Controller ]); } + + /** + * Mark a specific invoice as paid. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function markAsPaid(Request $request) { $invoice = Invoice::findOrFail($request->id); @@ -456,6 +478,14 @@ class InvoicesController extends Controller ]); } + + /** + * Retrive a specified user's unpaid invoices from storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\JsonResponse + */ public function getCustomersUnpaidInvoices(Request $request, $id) { $invoices = Invoice::where('paid_status', '<>', Invoice::STATUS_PAID) diff --git a/app/Http/Controllers/ItemsController.php b/app/Http/Controllers/ItemsController.php index d8d138aa..fc330785 100644 --- a/app/Http/Controllers/ItemsController.php +++ b/app/Http/Controllers/ItemsController.php @@ -43,6 +43,13 @@ class ItemsController extends Controller ]); } + + /** + * Create Item. + * + * @param Crater\Http\Requests\ItemsRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function store(Requests\ItemsRequest $request) { $item = new Item(); @@ -67,6 +74,13 @@ class ItemsController extends Controller ]); } + /** + * Update an existing Item. + * + * @param Crater\Http\Requests\ItemsRequest $request + * @param int $id + * @return \Illuminate\Http\JsonResponse + */ public function update(Requests\ItemsRequest $request, $id) { $item = Item::find($id); @@ -96,6 +110,13 @@ class ItemsController extends Controller ]); } + + /** + * Delete an existing Item. + * + * @param int $id + * @return \Illuminate\Http\JsonResponse + */ public function destroy($id) { $data = Item::deleteItem($id); @@ -111,6 +132,14 @@ class ItemsController extends Controller ]); } + + + /** + * Delete a list of existing Items. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function delete(Request $request) { $items = []; diff --git a/app/Http/Controllers/LocationController.php b/app/Http/Controllers/LocationController.php index e4234cdf..5f295cc4 100644 --- a/app/Http/Controllers/LocationController.php +++ b/app/Http/Controllers/LocationController.php @@ -6,6 +6,12 @@ use Crater\Country; class LocationController extends Controller { + + /** + * Retrive a list of Countries. + * + * @return \Illuminate\Http\JsonResponse + */ public function getCountries() { return response()->json([ diff --git a/app/Http/Controllers/OnboardingController.php b/app/Http/Controllers/OnboardingController.php index 4724d14f..300dc6cc 100644 --- a/app/Http/Controllers/OnboardingController.php +++ b/app/Http/Controllers/OnboardingController.php @@ -18,6 +18,13 @@ use Illuminate\Support\Facades\Artisan; class OnboardingController extends Controller { + + /** + * Retrieve Onboarding data. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function getOnboardingData(Request $request) { if (!\Storage::disk('local')->has('database_created')) { @@ -72,6 +79,13 @@ class OnboardingController extends Controller ]); } + + /** + * Setup Admin Profile. + * + * @param \Crater\Http\Requests\ProfileRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function adminProfile(ProfileRequest $request) { $setting = Setting::getSetting('profile_complete'); @@ -97,6 +111,12 @@ class OnboardingController extends Controller ]); } + /** + * Setup Admin Avatar. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function uploadAdminAvatar(Request $request) { $setting = Setting::getSetting('profile_complete'); @@ -123,6 +143,12 @@ class OnboardingController extends Controller ]); } + /** + * Setup Admin Company. + * + * @param \Crater\Http\Requests\CompanyRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function adminCompany(CompanyRequest $request) { $setting = Setting::getSetting('profile_complete'); @@ -174,6 +200,13 @@ class OnboardingController extends Controller ]); } + + /** + * Setup Company Settings. + * + * @param \Crater\Http\Requests\CompanySettingRequest $request + * @return \Illuminate\Http\JsonResponse + */ public function companySettings(CompanySettingRequest $request) { $setting = Setting::getSetting('profile_complete'); diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index e9fe287a..857c7e44 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -7,6 +7,13 @@ use Crater\Setting; class SettingsController extends Controller { + + /** + * Retrive App Version. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ public function getAppVersion(Request $request) { $version = Setting::getSetting('version'); diff --git a/routes/web.php b/routes/web.php index b9f70541..2aab28d9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -49,11 +49,16 @@ Route::group(['prefix' => 'reports'], function () { }); +// download invoice pdf with a unique_hash $id +// ------------------------------------------------- Route::get('/invoices/pdf/{id}', [ 'as' => 'get.invoice.pdf', 'uses' => 'FrontendController@getInvoicePdf' ]); + +// download estimate pdf with a unique_hash $id +// ------------------------------------------------- Route::get('/estimates/pdf/{id}', [ 'as' => 'get.estimate.pdf', 'uses' => 'FrontendController@getEstimatePdf' @@ -74,12 +79,14 @@ Route::get('/expenses/{id}/receipt/{hash}', [ 'uses' => 'ExpensesController@downloadReceipt' ]); - +// Setup for instalation of app +// ---------------------------------------------- Route::get('/on-boarding', function () { return view('app'); })->name('install')->middleware('redirect-if-installed'); - +// Move other http requests to the Vue App +// ------------------------------------------------- Route::get('/{vue?}', function () { return view('app'); })->where('vue', '[\/\w\.-]*')->name('home')->middleware('install');