Cleaned-BackEnd-Companies-AddressBook

This commit is contained in:
hazim
2019-05-08 11:31:00 +08:00
parent 38d67d4139
commit 039827f0c9
41 changed files with 924 additions and 340 deletions
@@ -1,23 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies\AddressBook;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class DefaultAddress
{
public function execute( string $companyId, string $id) {
Company::findOrfail($companyId)->addressBook()->update(['default' => 0]);
$address = Company::findOrfail($companyId)->addressBook()->findOrFail($id);
$address->default = 1;
if($address->save()){
return new AddressBookResource($address);
}
}
}
@@ -1,24 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies\AddressBook;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class DeleteAddress
{
public function execute(string $companyId, string $id) {
// Get address
$address = Company::findOrfail($companyId)->addressBook()->findOrFail($id);
if($address->delete()){
// Return single address as a resource
return new AddressBookResource($address);
}
}
}
@@ -1,19 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies\AddressBook;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class ListAddresses
{
public function execute(string $companyId) {
// Get addresses
$addresses = Company::findOrfail($companyId)->addressBook()->orderBy('created_at')->paginate(5);
// Return collection of addresses as a resource
return AddressBookResource::collection($addresses);
}
}
@@ -1,30 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies\AddressBook;
use App\Classes\Objects\AddressObject;
use App\Models\AddressBook;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class UpdateAddress
{
public function execute(AddressObject $addressObject) {
$address = $addressObject->getId() !== null ? Company::findOrfail($addressObject->getCompanyId())->addressBook()->findOrFail($addressObject->getId()) : new AddressBook;
$address->company_id = $addressObject->getCompanyId();
$address->reference = $addressObject->getReference();
$address->contact = $addressObject->getContact();
$address->street_one = $addressObject->getStreetOne();
$address->street_two = $addressObject->getStreetTwo();
$address->city = $addressObject->getCity();
$address->state = $addressObject->getState();
$address->post_code = $addressObject->getPostCode();
$address->country = $addressObject->getCountry();
if($address->save()){
return new AddressBookResource($address);
}
}
}
@@ -1,19 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
class CompanyProfile
{
public function execute(string $id) {
// Get company
$company = Company::findOrFail($id);
// Return single company as a resource
return new CompanyResource($company);
}
}
@@ -1,31 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies;
use App\Classes\Modules\Documents\DeleteAllDocuments;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
use App\Classes\Constants;
class DeleteCompany
{
public function execute(string $id) {
// Get company
$company = Company::findOrFail($id);
foreach (Constants::COMPANY_DOCUMENTS as $documentType) {
(new DeleteAllDocuments(Constants::MODULE_TYPES['company'], $id, $documentType))->execute();
}
if($company->delete()){
// Return single compnay as a resource
return new CompanyResource($company);
}
}
}
@@ -1,19 +0,0 @@
<?php
namespace App\Classes\ControllersLogic\Companies;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
class ListCompanies
{
public function execute() {
// Get company
$companies = Company::orderBy('created_at')->paginate(10);
// Return collection of companies as a resource
return CompanyResource::collection($companies);
}
}
@@ -0,0 +1,41 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 02/05/2019
* Time: 10:09 AM
*/
namespace App\Classes\Modules\AddressBook\Services;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class DefaultsAddressBook
{
/** @var Company */
private $repository;
/**
* DefaultsAddressBook constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(String $companyId, String $id){
$this->repository->findOrfail($companyId)->addressBook()->update(['default' => 0]);
$address = $this->repository->findOrfail($companyId)->addressBook()->findOrFail($id);
$address->default = 1;
if($address->save()){
return new AddressBookResource($address);
}
}
}
@@ -0,0 +1,41 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:20 AM
*/
namespace App\Classes\Modules\AddressBook\Services;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
class DeletesAddressBook
{
/** @var Company */
private $repository;
/**
* DeletesAddressBook constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(String $companyId, String $id){
$address = $this->repository->findOrFail($companyId)->addressBook()->findOrFail($id);
if($address->delete()){
// Return single address as a resource
return new AddressBookResource($address);
}
}
}
@@ -0,0 +1,36 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 4:40 PM
*/
namespace App\Classes\Modules\AddressBook\Services;
use App\Models\AddressBook;
use App\Http\Resources\AddressBook as AddressBookResource;
use App\Models\Company;
class ListsAddressBook
{
/** @var Company */
private $repository;
/**
* ListsAddressBook constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(String $companyId){
$addresses = $this->repository->findOrfail($companyId)->addressBook()->orderBy('created_at')->paginate(5);
return AddressBookResource::collection($addresses);
}
}
@@ -0,0 +1,52 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:20 AM
*/
namespace App\Classes\Modules\AddressBook\Services;
use App\Models\Company;
use App\Http\Resources\AddressBook as AddressBookResource;
use Illuminate\Http\Request;
class UpdatesAddressBook
{
/** @var Company */
private $repository;
/**
* UpdatesAddressBook constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(String $companyId, Request $request){
$address = $this->repository->findOrfail($companyId)->addressBook()->findOrFail($request->input('id'));
$address->company_id = $companyId;
$address->reference = $request->input('reference');
$address->contact = $request->input('contact');
$address->street_one = $request->input('street_one');
$address->street_two = $request->input('street_two');
$address->city = $request->input('city');
$address->state = $request->input('state');
$address->post_code = $request->input('post_code');
$address->country = $request->input('country');
if($address->save()){
return new AddressBookResource($address);
}
}
}
@@ -24,6 +24,7 @@ class CreatesCompany
$model = $this->repository->create([
'marking' => $object->getMarking(),
'name' => $object->getName(),
'email' => $object->getEmail(),
'registration_no' => $object->getRegistrationNumber(),
'tax_no' => $object->getTaxNumber(),
]);
@@ -0,0 +1,51 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 2:29 PM
*/
namespace App\Classes\Modules\Companies\Services;
use App\Classes\Constants;
use App\Classes\Modules\Documents\DeleteAllDocuments;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
class DeletesCompany
{
/** @var Company */
private $repository;
/**
* DeletesCompany constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(string $id)
{
$company = $this->repository->findOrFail($id);
foreach (Constants::COMPANY_DOCUMENTS as $documentType) {
(new DeleteAllDocuments(Constants::MODULE_TYPES['company'], $id, $documentType))->execute();
}
if ($company->delete()) {
// Return single compnay as a resource
return new CompanyResource($company);
}
}
}
@@ -0,0 +1,38 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 11:46 AM
*/
namespace App\Classes\Modules\Companies\Services;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
class ListsCompany
{
/** @var Company */
private $repository;
/**
* ListsCompany constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(){
$companies = $this->repository->orderBy('created_at')->paginate(10);
return CompanyResource::collection($companies);
}
}
@@ -0,0 +1,36 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 9:49 AM
*/
namespace App\Classes\Modules\Companies\Services;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
class ProfilesCompany
{
/** @var Company */
private $repository;
/**
* ProfilesCompany constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(string $id){
$company = $this->repository->findOrFail($id);
return new CompanyResource($company);
}
}
@@ -0,0 +1,40 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 2:13 PM
*/
namespace App\Classes\Modules\Companies\Services;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
use Illuminate\Http\Request;
class SearchesCompany
{
/** @var Company */
private $repository;
/**
* SearchesCompany constructor.
* @param Company $repository
*/
public function __construct(Company $repository)
{
$this->repository = $repository;
}
public function execute(Request $request){
$companies = $this->repository->where('name', 'LIKE', "%".$request->input('query')."%")
->orWhere('marking', 'LIKE', "%".$request->input('query')."%")->paginate(10);
return CompanyResource::collection($companies);
}
}
@@ -1,28 +1,33 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 11:43 AM
*/
namespace App\Classes\ControllersLogic\Companies;
namespace App\Classes\Modules\Companies\Services;
use App\Classes\ControllersLogic\Companies\AddressBook\UpdateAddress;
use App\Classes\Modules\AddressBook\DataTransferObjects\AddressBookObject;
use App\Classes\Constants;
use App\Classes\Modules\AddressBook\Services\CreatesAddress;
use App\Classes\Modules\AddressBook\DataTransferObjects\AddressBookObject;
use App\Classes\Modules\Documents\UpdateDocuments;
use App\Models\AddressBook;
use App\Models\Company;
use App\Http\Resources\Company as CompanyResource;
use Illuminate\Http\Request;
use App\Classes\Constants;
use App\Http\Resources\Company as CompanyResource;
class UpdateCompany
class UpdatesCompany
{
/** @var AddressBook */
/** @var AddressBook */
private $repository;
/** @var CreatesAddress */
/** @var CreatesAddress */
private $createsAddress;
/**
* UpdateCompany constructor.
* UpdatesCompany constructor.
* @param AddressBook $repository
* @param CreatesAddress $createsAddress
*/
@@ -33,9 +38,10 @@ class UpdateCompany
}
public function execute(Request $request) {
$company = $request->method() === 'PUT' ? Company::findOrFail($request->input('id')) : new company;
$company->fill($request->except(array_merge(Constants::COMPANY_DOCUMENTS, Constants::ADDRESS_FIELDS)));
public function execute(Request $request){
$company = $request->method() === 'PUT' ? Company::findOrFail($request->input('id')) : new company;
$company->fill($request->except(array_merge(Constants::COMPANY_DOCUMENTS, Constants::ADDRESS_FIELDS)));
if($company->save()){
@@ -60,14 +66,9 @@ class UpdateCompany
$request->input('state'), $request->input('post_code'), $request->input('country'), false, true);
$this->createsAddress->execute($billing);
return new CompanyResource($company);
}
}
public function updateDocuments(){
}
}
}
@@ -0,0 +1,39 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 07/05/2019
* Time: 11:18 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies\AddressBook;
use App\Classes\Modules\AddressBook\DataTransferObjects\AddressBookObject;
use App\Classes\Modules\AddressBook\Services\CreatesAddress;
use Illuminate\Http\Request;
class CreateAddressBookLogic
{
/** @var CreatesAddress */
private $CreatesAddress;
/**
* CreateAddressBookLogic constructor.
* @param CreatesAddress $CreatesAddress
*/
public function __construct(CreatesAddress $CreatesAddress)
{
$this->CreatesAddress = $CreatesAddress;
}
public function execute(String $companyId, Request $request){
$object = new AddressBookObject(null, $companyId, $request->input('reference'), $request->input('contact'),
$request->input('street_one'), $request->input('street_two'), $request->input('city'),
$request->input('state'), $request->input('post_code'), $request->input('country'), false, true);
return $this->CreatesAddress->execute($object);
}
}
@@ -0,0 +1,33 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 02/05/2019
* Time: 10:17 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies\AddressBook;
use App\Classes\Modules\AddressBook\Services\DefaultsAddressBook;
class DefaultAddressBookLogic
{
/** @var DefaultsAddressBook */
private $DefaultsAddressBook;
/**
* DefaultAddressBookLogic constructor.
* @param DefaultsAddressBook $DefaultsAddressBook
*/
public function __construct(DefaultsAddressBook $DefaultsAddressBook)
{
$this->DefaultsAddressBook = $DefaultsAddressBook;
}
public function execute(String $companyId, String $id){
return $this->DefaultsAddressBook->execute($companyId, $id);
}
}
@@ -0,0 +1,32 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:20 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies\AddressBook;
use App\Classes\Modules\AddressBook\Services\DeletesAddressBook;
class DeleteAddressBookLogic
{
/** @var DeletesAddressBook */
private $DeletesAddressBook;
/**
* DeleteAddressBookLogic constructor.
* @param DeletesAddressBook $DeletesAddressBook
*/
public function __construct(DeletesAddressBook $DeletesAddressBook)
{
$this->DeletesAddressBook = $DeletesAddressBook;
}
public function execute(String $companyId, String $id){
return $this->DeletesAddressBook->execute($id, $companyId);
}
}
@@ -0,0 +1,34 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 4:54 PM
*/
namespace App\Classes\Modules\ControllersLogic\Companies\AddressBook;
use App\Classes\Modules\AddressBook\Services\ListsAddressBook;
class ListAddressBookLogic
{
/** @var ListsAddressBook */
private $ListsAddressBook;
/**
* ListAddressBookLogic constructor.
* @param ListsAddressBook $ListsAddressBook
*/
public function __construct(ListsAddressBook $ListsAddressBook)
{
$this->ListsAddressBook = $ListsAddressBook;
}
public function execute(String $companyId){
return $this->ListsAddressBook->execute($companyId);
}
}
@@ -0,0 +1,35 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:19 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies\AddressBook;
use App\Classes\Modules\AddressBook\Services\UpdatesAddressBook;
use Illuminate\Http\Request;
class UpdateAddressBookLogic
{
/** @var UpdatesAddressBook */
private $UpdatesAddressBook;
/**
* UpdateAddressBookLogic constructor.
* @param UpdatesAddressBook $UpdatesAddressBook
*/
public function __construct(UpdatesAddressBook $UpdatesAddressBook)
{
$this->UpdatesAddressBook = $UpdatesAddressBook;
}
public function execute(String $companyId, Request $request){
return $this->UpdatesAddressBook->execute($companyId, $request);
}
}
@@ -60,7 +60,7 @@ class CreateCompanyLogic
$company = $this->createsCompany->execute($object);
$address = new AddressBookObject(null, $company->id, $request->input('name'), $request->input('contact'),
$request->input('street_one'), $request->input('stret_two'), $request->input('city'),
$request->input('street_one'), $request->input('street_two'), $request->input('city'),
$request->input('state'), $request->input('post_code'), $request->input('country'), false, true);
$this->createsAddress->execute($address);
@@ -0,0 +1,34 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 2:29 PM
*/
namespace App\Classes\Modules\ControllersLogic\Companies;
use App\Classes\Modules\Companies\Services\DeletesCompany;
class DeleteCompanyLogic
{
/** @var DeletesCompany */
private $DeletesCompany;
/**
* DeleteCompanyLogic constructor.
* @param DeletesCompany $DeletesCompany
*/
public function __construct(DeletesCompany $DeletesCompany)
{
$this->DeletesCompany = $DeletesCompany;
}
public function execute(String $id){
return $this->DeletesCompany->execute($id);
}
}
@@ -0,0 +1,33 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 11:44 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies;
use App\Classes\Modules\Companies\Services\ListsCompany;
class ListCompanyLogic
{
/** @var ListsCompany */
private $ListCompany;
/**
* CompanyListLogic constructor.
* @param ListsCompany $ListCompany
*/
public function __construct(ListsCompany $ListCompany)
{
$this->ListCompany = $ListCompany;
}
public function execute(){
return $this->ListCompany->execute();
}
}
@@ -0,0 +1,33 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 9:48 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies;
use App\Classes\Modules\Companies\Services\ProfilesCompany;
class ProfileCompanyLogic
{
/** @var ProfilesCompany */
private $ProfilesCompany;
/**
* ProfileCompanyLogic constructor.
* @param ProfilesCompany $ProfilesCompany
*/
public function __construct(ProfilesCompany $ProfilesCompany)
{
$this->ProfilesCompany = $ProfilesCompany;
}
public function execute(string $id){
return $this->ProfilesCompany->execute($id);
}
}
@@ -0,0 +1,35 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 2:11 PM
*/
namespace App\Classes\Modules\ControllersLogic\Companies;
use App\Classes\Modules\Companies\Services\SearchesCompany;
use Illuminate\Http\Request;
class SearchCompanyLogic
{
/** @var SearchesCompany */
private $SearchesCompany;
/**
* SearchCompanyLogic constructor.
* @param SearchesCompany $SearchesCompany
*/
public function __construct(SearchesCompany $SearchesCompany)
{
$this->SearchesCompany = $SearchesCompany;
}
public function execute(Request $request){
return $this->SearchesCompany->execute($request);
}
}
@@ -0,0 +1,34 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 11:42 AM
*/
namespace App\Classes\Modules\ControllersLogic\Companies;
use App\Classes\Modules\Companies\Services\UpdatesCompany;
use Illuminate\Http\Request;
class UpdateCompanyLogic
{
/** @var UpdatesCompany */
private $UpdatesCompany;
/**
* UpdateCompanyLogic constructor.
* @param UpdatesCompany $UpdatesCompany
*/
public function __construct(UpdatesCompany $UpdatesCompany)
{
$this->UpdatesCompany = $UpdatesCompany;
}
public function execute(Request $request){
return $this->UpdatesCompany->execute($request);
}
}
@@ -0,0 +1,22 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 07/05/2019
* Time: 11:17 AM
*/
namespace App\Http\Controllers\Companies\AddressBook;
use App\Classes\Modules\ControllersLogic\Companies\AddressBook\CreateAddressBookLogic;
use Illuminate\Http\Request;
class CreateAddressBookController
{
public function store(String $companyId, Request $request, CreateAddressBookLogic $logic){
return $logic->execute($companyId,$request);
}
}
@@ -0,0 +1,21 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 02/05/2019
* Time: 10:23 AM
*/
namespace App\Http\Controllers\Companies\AddressBook;
use App\Classes\Modules\ControllersLogic\Companies\AddressBook\DefaultAddressBookLogic;
class DefaultAddressBookController
{
public function default(String $companyId, String $id, DefaultAddressBookLogic $logic){
return $logic->execute($companyId,$id);
}
}
@@ -0,0 +1,20 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:19 AM
*/
namespace App\Http\Controllers\Companies\AddressBook;
use App\Classes\Modules\ControllersLogic\Companies\AddressBook\DeleteAddressBookLogic;
class DeleteAddressBookController
{
public function destroy(String $companyId, String $id, DeleteAddressBookLogic $logic){
return $logic->execute($id,$companyId);
}
}
@@ -0,0 +1,22 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 5:15 PM
*/
namespace App\Http\Controllers\Companies\AddressBook;
use App\Classes\Modules\ControllersLogic\Companies\AddressBook\ListAddressBookLogic;
class ListAddressBookController
{
public function list(String $companyId, ListAddressBookLogic $logic){
return $logic->execute($companyId);
}
}
@@ -0,0 +1,21 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 03/05/2019
* Time: 10:18 AM
*/
namespace App\Http\Controllers\Companies\AddressBook;
use App\Classes\Modules\ControllersLogic\Companies\AddressBook\UpdateAddressBookLogic;
use Illuminate\Http\Request;
class UpdateAddressBookController
{
public function update(String $companyId, Request $request, UpdateAddressBookLogic $logic){
return $logic->execute($companyId,$request);
}
}
@@ -1,76 +0,0 @@
<?php
namespace App\Http\Controllers\Companies;
use App\Classes\Objects\AddressObject;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Resources\AddressBook as AddressBookResource;
use App\Classes\ControllersLogic\Companies\AddressBook\ListAddresses;
use App\Classes\ControllersLogic\Companies\AddressBook\DeleteAddress;
use App\Classes\ControllersLogic\Companies\AddressBook\UpdateAddress;
use App\Classes\ControllersLogic\Companies\AddressBook\DefaultAddress;
class AddressBookController extends Controller
{
/**
* Display a listing of the resource.
* @param string $companyId
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
public function index(string $companyId) {
return (new ListAddresses())->execute($companyId);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param string $companyId
* @return AddressBookResource
*/
public function store(Request $request, string $companyId)
{
return (new UpdateAddress())->execute(new AddressObject(
$companyId,
$request->input('street_one'),
$request->input('street_two'),
$request->input('city'),
$request->input('state'),
$request->input('post_code'),
$request->input('country'),
$request->input('id'),
$request->input('reference'),
$request->input('contact')
));
}
/**
* Set default address
*
* @param string $id
* @param string $companyId
* @return AddressBookResource
*/
public function default(string $companyId, string $id)
{
return (new DefaultAddress())->execute($companyId, $id);
}
/**
* Remove the specified resource from storage.
*
* @param string $companyId
* @param string $id
*
* @return AddressBookResource
*/
public function destroy(string $companyId, string $id): AddressBookResource {
return (new DeleteAddress())->execute($companyId, $id);
}
}
@@ -1,67 +0,0 @@
<?php
namespace App\Http\Controllers\Companies;
use App\Models\Company;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Resources\Company as CompanyResource;
use App\Classes\ControllersLogic\Companies\ListCompanies;
use App\Classes\ControllersLogic\Companies\UpdateCompany;
use App\Classes\ControllersLogic\Companies\CompanyProfile;
use App\Classes\ControllersLogic\Companies\DeleteCompany;
class CompanyController extends Controller
{
/**
* Display a listing of the resource.
*
*/
public function index() {
return (new ListCompanies())->execute();
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
*
* @param UpdateCompany $logic
* @return CompanyResource
*/
public function store(Request $request, UpdateCompany $logic): CompanyResource {
return $logic->execute($request);
}
/**
* Display the specified resource.
*
* @param int $id
*
* @return CompanyResource
*/
public function show($id): CompanyResource {
return (new CompanyProfile())->execute($id);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
*
* @return CompanyResource
*/
public function destroy($id): CompanyResource {
return (new DeleteCompany())->execute($id);
}
public function search(Request $request){
// Get company
$companies = Company::where('name', 'LIKE', "%".$request->input('query')."%")
->orWhere('marking', 'LIKE', "%".$request->input('query')."%")->paginate(10);
// Return collection of companies as a resource
return CompanyResource::collection($companies);
}
}
@@ -0,0 +1,21 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 2:29 PM
*/
namespace App\Http\Controllers\Companies;
use App\Classes\Modules\ControllersLogic\Companies\DeleteCompanyLogic;
class DeleteCompanyController
{
public function destroy(String $id, DeleteCompanyLogic $logic){
return $logic->execute($id);
}
}
@@ -0,0 +1,20 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 11:43 AM
*/
namespace App\Http\Controllers\Companies;
use App\Classes\Modules\ControllersLogic\Companies\ListCompanyLogic;
class ListCompanyController
{
public function list(ListCompanyLogic $logic){
return $logic->execute();
}
}
@@ -0,0 +1,22 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 9:47 AM
*/
namespace App\Http\Controllers\Companies;
use App\Classes\Modules\ControllersLogic\Companies\ProfileCompanyLogic;
class ProfileCompanyController
{
public function show(string $id, ProfileCompanyLogic $logic){
return $logic->execute($id);
}
}
@@ -0,0 +1,22 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 29/04/2019
* Time: 2:10 PM
*/
namespace App\Http\Controllers\Companies;
use App\Classes\Modules\ControllersLogic\Companies\SearchCompanyLogic;
use Illuminate\Http\Request;
class SearchCompanyController
{
public function search(Request $request , SearchCompanyLogic $logic){
return $logic->execute($request);
}
}
@@ -0,0 +1,21 @@
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 30/04/2019
* Time: 11:42 AM
*/
namespace App\Http\Controllers\Companies;
use App\Classes\Modules\ControllersLogic\Companies\UpdateCompanyLogic;
use Illuminate\Http\Request;
class UpdateCompanyController
{
public function update(Request $request, UpdateCompanyLogic $logic){
return $logic->execute($request);
}
}
+12 -11
View File
@@ -20,6 +20,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function
Route::get('/list', 'ListUserController@list')->name('list');
Route::post('/create', 'RegisterAccountController@register')->name('create');
Route::post('/update/{id}', 'UpdateUserController@update')->name('update');
Route::get('/{id}/profile','UserProfileController@index')->name('profile');
Route::group(['prefix' => 'invite', 'as' => 'invite.'], function () {
Route::post('/invite', 'InviteUserController@invite')->name('create');
@@ -32,43 +33,43 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function
Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Companies'], function () {
// List companies
Route::get('/list', 'CompanyController@index')->name('list');
Route::get('/list', 'ListCompanyController@list')->name('list');
// search companies
Route::get('/search', 'CompanyController@search')->name('search');
Route::get('/search', 'SearchCompanyController@search')->name('search');
// List single company
Route::get('{id}/profile', 'CompanyController@show')->name('profile');
Route::get('{id}/profile', 'ProfileCompanyController@show')->name('profile');
// Create new company
Route::post('/', 'CreateCompanyController@create')->name('create');
// Update company
Route::put('{id}', 'CompanyController@store')->name('update');
Route::put('{id}', 'UpdateCompanyController@update')->name('update');
// Delete company
Route::delete('{id}', 'CompanyController@destroy')->name('delete');
Route::delete('{id}', 'DeleteCompanyController@destroy')->name('delete');
Route::get('{id}/order/{category}/list', 'CompanyOrderController@list')
->where('category', 'processing|shipping|receiving|complete|cancel')->name('order.list');
// Companies Address Book Routes
Route::group(['prefix' => 'address-book', 'as' => 'addressBook.'], function () {
Route::group(['prefix' => 'address-book', 'as' => 'addressBook.', 'namespace' => 'AddressBook'], function () {
// List addresses in company's address book
Route::get('{companyId}', 'AddressBookController@index')->name('list');
Route::get('{companyId}', 'ListAddressBookController@list')->name('list');
// Create new address in company's address book
Route::post('{companyId}', 'AddressBookController@store')->name('create');
Route::post('{companyId}', 'CreateAddressBookController@store')->name('create');
// Update address in company's address book
Route::put('{companyId}/{id}', 'AddressBookController@store')->name('update');
Route::put('{companyId}/{id}', 'UpdateAddressBookController@update')->name('update');
// sets default delivery address
Route::put('{companyId}/{id}/default', 'AddressBookController@default')->name('default');
Route::put('{companyId}/{id}/default', 'DefaultAddressBookController@default')->name('default');
// Delete address from company's address book
Route::delete('{companyId}/{id}', 'AddressBookController@destroy')->name('delete');
Route::delete('{companyId}/{id}', 'DeleteAddressBookController@destroy')->name('delete');
});
});