From d308ab4045408ce046a5f7f0ebc2b88e0627ae65 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Thu, 22 Jul 2021 11:25:00 +0800 Subject: [PATCH 01/19] WIP - Order steps & remaining APIs --- .../Unity/Services/GetContractObligations.php | 8 +++--- config/unity.php | 25 +++++++++++++------ routes/api.php | 4 +-- routes/order.php | 2 +- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/Classes/Modules/Unity/Services/GetContractObligations.php b/app/Classes/Modules/Unity/Services/GetContractObligations.php index 480fee3f..fed54aa8 100644 --- a/app/Classes/Modules/Unity/Services/GetContractObligations.php +++ b/app/Classes/Modules/Unity/Services/GetContractObligations.php @@ -8,13 +8,14 @@ use App\Classes\Modules\Unity\Services\GetAccessToken; class GetContractObligations { - private $unityConfig; + private $getContractObligationsEndpoint; private $getAccessToken; public function __construct(GetAccessToken $getAccessToken) { - $this->unityConfig = Config::get('unity'); + $this->getContractObligationsEndpoint = Config::get('unity.url').Config::get('unity.get_ob_endpoint'); + $this->getAccessToken = $getAccessToken; } @@ -22,8 +23,7 @@ class GetContractObligations $accesToken=$this->getAccessToken->execute(); - $response = Http::withToken($accesToken)->get($this->unityConfig['url'].$this->unityConfig['steps_endpoint'])->object(); - $orderSteps = []; + $response = Http::withToken($accesToken)->get($this->getContractObligationsEndpoint)->object(); return (isset($response->data)) ? $response->data : []; diff --git a/config/unity.php b/config/unity.php index 7d3ea452..a0c576ce 100644 --- a/config/unity.php +++ b/config/unity.php @@ -1,5 +1,8 @@ env('UNITY_API_URL', 'https://dev.unity.izyim.com/user-backsys/api/'), @@ -18,7 +21,9 @@ return [ ], - 'steps_endpoint' => env('UNITY_LOGIN_ENDPOINT','contract-template-obligation/list'), + 'get_ob_endpoint' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), + + 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','contract-template-obligation/list'), 'default_auth' => env('UNITY_AUTH','login'), @@ -28,15 +33,19 @@ return [ 'contract_template_cache' => env('UNITY_CONTRACT_TEMPLATE_CACHE','60'), - 'entity' => [ - 'xxx' => App\Classes\ValueObjects\Constants\OrderEntity::SUPPLIER, - 'zzz' => App\Classes\ValueObjects\Constants\OrderEntity::WAREHOUSE_YIWU, - 'vvv' => App\Classes\ValueObjects\Constants\OrderEntity::WAREHOUSE_GUANG_ZHOU, - 'wwww' => App\Classes\ValueObjects\Constants\OrderEntity::SUPPLIER, + 'entities' => [ + 'xxx_key' => Constant\OrderEntity::SUPPLIER, + 'zzz_key' => Constant\OrderEntity::WAREHOUSE_YIWU, + 'vvv_key' => Constant\OrderEntity::WAREHOUSE_GUANG_ZHOU, + 'wwww_key' => Constant\OrderEntity::SUPPLIER, ], - 'step_processor' => [ - App\Classes\ValueObjects\Constants\OrderSteps::PACKING => App\Classes\Modules\OrderSteps\Processors\Steps\Packing::class, + 'obligations' => [ + 'PACKING' => Constant\OrderSteps::PACKING, + ], + + 'step_processors' => [ + Constant\OrderSteps::PACKING => Step\Packing::class, ], ]; diff --git a/routes/api.php b/routes/api.php index cf91126b..4b12f682 100644 --- a/routes/api.php +++ b/routes/api.php @@ -38,8 +38,8 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function // // require __DIR__ . '/segment.php'; // -// require __DIR__ . '/bank.php'; -// + require __DIR__ . '/bank.php'; + require __DIR__ . '/order.php'; require __DIR__ . '/currency.php'; diff --git a/routes/order.php b/routes/order.php index 738d8a21..b2e951a6 100644 --- a/routes/order.php +++ b/routes/order.php @@ -18,4 +18,4 @@ Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], f }); Route::group(['prefix' => '{id}/role', 'as' => 'role.'], function () {}); -}); \ No newline at end of file +}); From 6278ddb16b0438994c41c233dad01f277a15eaf0 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Thu, 22 Jul 2021 11:28:58 +0800 Subject: [PATCH 02/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreateBankLogic.php | 72 ++++++++++ .../ControllersLogic/DeleteBankLogic.php | 77 ++++++++++ .../Banks/ControllersLogic/ListBanksLogic.php | 62 ++++++++ .../SetBankToDefaultLogic.php | 78 ++++++++++ .../ControllersLogic/UpdateBankLogic.php | 85 +++++++++++ .../Banks/DataTransferObjects/BankObject.php | 136 ++++++++++++++++++ .../Modules/Banks/Services/CreatesBank.php | 33 +++++ .../Modules/Banks/Services/DeletesBank.php | 19 +++ .../Modules/Banks/Services/FetchesBank.php | 34 +++++ .../Modules/Banks/Services/ListsBanks.php | 33 +++++ .../Banks/Services/ResetsBanksDefault.php | 20 +++ .../Banks/Services/SetsBankToDefault.php | 22 +++ .../Modules/Banks/Services/UpdatesBank.php | 30 ++++ .../Banks/Standards/Rules/CanCreateBank.php | 50 +++++++ .../Banks/Standards/Rules/CanDeleteBank.php | 40 ++++++ .../Banks/Standards/Rules/CanListBanks.php | 37 +++++ .../Banks/Standards/Rules/CanUpdateBank.php | 54 +++++++ .../Standards/Validators/BankValidation.php | 46 ++++++ .../Processors/CreateEntityProcessor copy.php | 21 +++ .../GetContractObligationsProcessor.php | 5 +- .../Modules/Unity/Services/CreatesEntity.php | 30 ++++ .../Constants/BankAccountType.php | 11 ++ .../ValueObjects/Constants/UnityConfig.php | 15 ++ .../Banks/CreateBankController.php | 19 +++ .../Banks/DeleteBankController.php | 19 +++ .../Controllers/Banks/ListBanksController.php | 19 +++ .../Banks/SetBankToDefaultController.php | 20 +++ .../Banks/UpdateBankController.php | 20 +++ .../Remarks/CreateRemarkController.php | 20 +++ .../Remarks/DeleteRemarkController.php | 20 +++ .../Remarks/FetchRemarkController.php | 20 +++ .../Remarks/ListRemarksController.php | 20 +++ .../Remarks/UpdateRemarkController.php | 20 +++ .../Schedules/CreateScheduleController.php | 20 +++ .../Schedules/DeleteScheduleController.php | 20 +++ .../Schedules/FetchScheduleController.php | 20 +++ .../Schedules/ListSchedulesController.php | 20 +++ .../Schedules/UpdateScheduleController.php | 20 +++ .../Transports/CreateTransportController.php | 20 +++ .../Transports/DeleteTransportController.php | 20 +++ .../Transports/FetchTransportController.php | 20 +++ .../Transports/ListTransportsController.php | 20 +++ .../Transports/UpdateTransportController.php | 20 +++ app/Models/BankAccount.php | 28 ++++ app/Models/ContainerPackingList.php | 17 +++ app/Models/Package.php | 24 ++++ app/Models/PackageItem.php | 18 +++ app/Models/PackingList.php | 12 ++ app/Models/PackingListPackage.php | 23 +++ app/Models/Remark.php | 18 +++ app/Models/Schedule.php | 18 +++ app/Models/TransportArrangement.php | 11 ++ .../2021_07_05_115638_create_banks_table.php | 50 +++++++ ...021_07_21_110051_create_packages_table.php | 48 +++++++ ...7_21_110058_create_package_items_table.php | 43 ++++++ ...7_21_110059_create_packing_lists_table.php | 34 +++++ ...208_create_packing_list_packages_table.php | 37 +++++ ...0_create_container_packing_lists_table.php | 37 +++++ ...2021_07_21_110310_create_remarks_table.php | 39 +++++ ...34_create_transport_arrangements_table.php | 46 ++++++ ...21_07_21_110522_create_schedules_table.php | 42 ++++++ routes/bank.php | 11 ++ routes/remark.php | 11 ++ routes/schedule.php | 11 ++ routes/transport.php | 11 ++ 65 files changed, 1992 insertions(+), 4 deletions(-) create mode 100644 app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php create mode 100644 app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php create mode 100644 app/Classes/Modules/Banks/ControllersLogic/ListBanksLogic.php create mode 100644 app/Classes/Modules/Banks/ControllersLogic/SetBankToDefaultLogic.php create mode 100644 app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php create mode 100644 app/Classes/Modules/Banks/DataTransferObjects/BankObject.php create mode 100644 app/Classes/Modules/Banks/Services/CreatesBank.php create mode 100644 app/Classes/Modules/Banks/Services/DeletesBank.php create mode 100644 app/Classes/Modules/Banks/Services/FetchesBank.php create mode 100644 app/Classes/Modules/Banks/Services/ListsBanks.php create mode 100644 app/Classes/Modules/Banks/Services/ResetsBanksDefault.php create mode 100644 app/Classes/Modules/Banks/Services/SetsBankToDefault.php create mode 100644 app/Classes/Modules/Banks/Services/UpdatesBank.php create mode 100644 app/Classes/Modules/Banks/Standards/Rules/CanCreateBank.php create mode 100644 app/Classes/Modules/Banks/Standards/Rules/CanDeleteBank.php create mode 100644 app/Classes/Modules/Banks/Standards/Rules/CanListBanks.php create mode 100644 app/Classes/Modules/Banks/Standards/Rules/CanUpdateBank.php create mode 100644 app/Classes/Modules/Banks/Standards/Validators/BankValidation.php create mode 100644 app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php create mode 100644 app/Classes/Modules/Unity/Services/CreatesEntity.php create mode 100644 app/Classes/ValueObjects/Constants/BankAccountType.php create mode 100644 app/Classes/ValueObjects/Constants/UnityConfig.php create mode 100644 app/Http/Controllers/Banks/CreateBankController.php create mode 100644 app/Http/Controllers/Banks/DeleteBankController.php create mode 100644 app/Http/Controllers/Banks/ListBanksController.php create mode 100644 app/Http/Controllers/Banks/SetBankToDefaultController.php create mode 100644 app/Http/Controllers/Banks/UpdateBankController.php create mode 100644 app/Http/Controllers/Remarks/CreateRemarkController.php create mode 100644 app/Http/Controllers/Remarks/DeleteRemarkController.php create mode 100644 app/Http/Controllers/Remarks/FetchRemarkController.php create mode 100644 app/Http/Controllers/Remarks/ListRemarksController.php create mode 100644 app/Http/Controllers/Remarks/UpdateRemarkController.php create mode 100644 app/Http/Controllers/Schedules/CreateScheduleController.php create mode 100644 app/Http/Controllers/Schedules/DeleteScheduleController.php create mode 100644 app/Http/Controllers/Schedules/FetchScheduleController.php create mode 100644 app/Http/Controllers/Schedules/ListSchedulesController.php create mode 100644 app/Http/Controllers/Schedules/UpdateScheduleController.php create mode 100644 app/Http/Controllers/Transports/CreateTransportController.php create mode 100644 app/Http/Controllers/Transports/DeleteTransportController.php create mode 100644 app/Http/Controllers/Transports/FetchTransportController.php create mode 100644 app/Http/Controllers/Transports/ListTransportsController.php create mode 100644 app/Http/Controllers/Transports/UpdateTransportController.php create mode 100644 app/Models/BankAccount.php create mode 100644 app/Models/ContainerPackingList.php create mode 100644 app/Models/Package.php create mode 100644 app/Models/PackageItem.php create mode 100644 app/Models/PackingList.php create mode 100644 app/Models/PackingListPackage.php create mode 100644 app/Models/Remark.php create mode 100644 app/Models/Schedule.php create mode 100644 app/Models/TransportArrangement.php create mode 100644 database/migrations/2021_07_05_115638_create_banks_table.php create mode 100644 database/migrations/2021_07_21_110051_create_packages_table.php create mode 100644 database/migrations/2021_07_21_110058_create_package_items_table.php create mode 100644 database/migrations/2021_07_21_110059_create_packing_lists_table.php create mode 100644 database/migrations/2021_07_21_110208_create_packing_list_packages_table.php create mode 100644 database/migrations/2021_07_21_110240_create_container_packing_lists_table.php create mode 100644 database/migrations/2021_07_21_110310_create_remarks_table.php create mode 100644 database/migrations/2021_07_21_110434_create_transport_arrangements_table.php create mode 100644 database/migrations/2021_07_21_110522_create_schedules_table.php create mode 100644 routes/bank.php create mode 100644 routes/remark.php create mode 100644 routes/schedule.php create mode 100644 routes/transport.php diff --git a/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php new file mode 100644 index 00000000..ff5b16c2 --- /dev/null +++ b/app/Classes/Modules/Banks/ControllersLogic/CreateBankLogic.php @@ -0,0 +1,72 @@ + 'Created Bank', + 'message' => 'You have successfully created a new Bank' + ]; + } + + /** @var CanCreateBank */ + private $canCreateBank; + + /** @var CreatesBank */ + private $createsBank; + + + /** + * CreateBankLogic constructor. + * @param CanCreateBank $canCreateBank + * @param CreatesBank $createsBank + */ + public function __construct( + CanCreateBank $canCreateBank, + CreatesBank $createsBank + ) + { + $this->canCreateBank = $canCreateBank; + $this->createsBank = $createsBank; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $bank_object = new BankObject($request->input('company_id'), $request->input('account_type'), + $request->input('bank_name'), $request->input('holder_name'), $request->input('account_no'), + $request->input('bank_branch'), $request->input('swift'), $request->input('snap'), + $request->input('country_id'), $request->input('reference')); + + $this->canCreateBank->passes($bank_object); + + $bank = $this->createsBank->execute($bank_object); + + return $this->resourceResponse(new BankResource($bank)); + + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php new file mode 100644 index 00000000..24975379 --- /dev/null +++ b/app/Classes/Modules/Banks/ControllersLogic/DeleteBankLogic.php @@ -0,0 +1,77 @@ + 'Delete Bank', + 'message' => 'You have successfully deleted the Bank' + ]; + } + + /** @var CanDeleteBank */ + private $canDeleteBank; + + /** @var DeletesBank */ + private $deletesBank; + + /** @var FetchesBank */ + private $fetchesBank; + + + /** + * DeleteBankLogic constructor. + * @param CanDeleteBank $canDeleteBank + * @param DeletesBank $deletesBank + * @param FetchesBank $fetchesBank + */ + public function __construct( + CanDeleteBank $canDeleteBank, + DeletesBank $deletesBank, + FetchesBank $fetchesBank + ) + { + $this->canDeleteBank = $canDeleteBank; + $this->deletesBank = $deletesBank; + $this->fetchesBank = $fetchesBank; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $this->canDeleteBank->passes(); + + $bank = $this->fetchesBank->execute(['id' => $request->route('id')]); + + if($bank->default){ + throw new RequestValidationException('You can\'t delete bank account when it set to default'); + } + + $this->deletesBank->execute($bank); + + return $this->response([]); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/ControllersLogic/ListBanksLogic.php b/app/Classes/Modules/Banks/ControllersLogic/ListBanksLogic.php new file mode 100644 index 00000000..94396d61 --- /dev/null +++ b/app/Classes/Modules/Banks/ControllersLogic/ListBanksLogic.php @@ -0,0 +1,62 @@ + 'Retrieve Banks', + 'message' => 'You have successfully retrieved a list of Banks' + ]; + } + + /** @var CanListBanks */ + private $canListBanks; + + /** @var ListsBanks */ + private $listsBanks; + + /** + * ListBanksLogic constructor. + * @param CanListBanks $canListBanks + * @param ListsBanks $listsBanks + */ + public function __construct(CanListBanks $canListBanks, ListsBanks $listsBanks) + { + $this->canListBanks = $canListBanks; + $this->listsBanks = $listsBanks; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + $this->canListBanks->passes(); + + $banks = $this->listsBanks->execute($this->listsBanks->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(BankResource::collection($banks)); + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/ControllersLogic/SetBankToDefaultLogic.php b/app/Classes/Modules/Banks/ControllersLogic/SetBankToDefaultLogic.php new file mode 100644 index 00000000..0e9885ae --- /dev/null +++ b/app/Classes/Modules/Banks/ControllersLogic/SetBankToDefaultLogic.php @@ -0,0 +1,78 @@ + 'Updated Bank', + 'message' => 'You have successfully updated the Bank' + ]; + } + + /** @var ResetsBanksDefault */ + private $resetsBanksDefault; + + /** @var FetchesBank */ + private $fetchesBank; + + /** @var SetsBankToDefault*/ + private $setsBankToDefault ; + + /** + * SetBankToDefaultLogic constructor. + * @param ResetsBanksDefault $resetsBanksDefault + * @param FetchesBank $fetchesBank + * @param SetsBankToDefault $setsBankToDefault + */ + public function __construct(ResetsBanksDefault $resetsBanksDefault, FetchesBank $fetchesBank, SetsBankToDefault $setsBankToDefault) + { + $this->resetsBanksDefault = $resetsBanksDefault; + $this->fetchesBank = $fetchesBank; + $this->setsBankToDefault = $setsBankToDefault; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + public function logic(Request $request) : JsonResponse + { + + /** @var Bank $bank */ + $bank = $this->fetchesBank->execute(['id' => $request->route('id')]); + + $this->resetsBanksDefault->execute($bank); + + $this->setsBankToDefault->execute($bank); + + return $this->resourceResponse(new BankResource($this->setsBankToDefault->execute($bank))); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php new file mode 100644 index 00000000..85e3449c --- /dev/null +++ b/app/Classes/Modules/Banks/ControllersLogic/UpdateBankLogic.php @@ -0,0 +1,85 @@ + 'Update Bank Account', + 'message' => 'You have successfully updated the Bank Account' + ]; + } + + /** @var CanUpdateBank */ + private $canUpdateBank; + + /** @var UpdatesBank */ + private $updatesBank; + + /** @var FetchesBank */ + private $fetchesBank; + + + /** + * UpdateBankLogic constructor. + * @param CanUpdateBank $canUpdateBank + * @param UpdatesBank $updatesBank + * @param FetchesBank $fetchesBank + */ + public function __construct( + CanUpdateBank $canUpdateBank, + UpdatesBank $updatesBank, + FetchesBank $fetchesBank + ) + { + $this->canUpdateBank = $canUpdateBank; + $this->updatesBank = $updatesBank; + $this->fetchesBank = $fetchesBank; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $bankObject = new BankObject($request->input('company_id'), $request->input('country_id'), + $request->input('reference'), $request->input('bank_name'), $request->input('holder_name'), + $request->input('account_no')); + + + $bank = $this->fetchesBank->execute(['id' => $request->route('id')]); + + $this->canUpdateBank->passes($bankObject); + + $bank_query = $this->updatesBank->execute($bank, $bankObject); + + return $this->resourceResponse(new BankResource($bank_query)); + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/DataTransferObjects/BankObject.php b/app/Classes/Modules/Banks/DataTransferObjects/BankObject.php new file mode 100644 index 00000000..43ba5fd9 --- /dev/null +++ b/app/Classes/Modules/Banks/DataTransferObjects/BankObject.php @@ -0,0 +1,136 @@ +company_id = $company_id; + $this->type = $type; + $this->bank_name = $bank_name; + $this->holder_name = $holder_name; + $this->account_no = $account_no; + $this->bank_branch = $bank_branch; + $this->swift = $swift; + $this->snap = $snap; + $this->country_id = $country_id; + $this->reference = $reference; + } + + /** + * @return int + */ + public function getCompanyId(): int + { + return $this->company_id; + } + + /** + * @return int + */ + public function getType(): int + { + return $this->type; + } + + /** + * @return string + */ + public function getBankName(): string + { + return $this->bank_name; + } + + /** + * @return string + */ + public function getHolderName(): string + { + return $this->holder_name; + } + + /** + * @return string + */ + public function getAccountNo(): string + { + return $this->account_no; + } + + /** + * @return null|string + */ + public function getBankBranch(): ?string + { + return $this->bank_branch; + } + + /** + * @return null|string + */ + public function getSwift(): ?string + { + return $this->swift; + } + + /** + * @return null|string + */ + public function getSnap(): ?string + { + return $this->snap; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->country_id; + } + + /** + * @return null|string + */ + public function getReference(): ?string + { + return $this->reference; + } + + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/CreatesBank.php b/app/Classes/Modules/Banks/Services/CreatesBank.php new file mode 100644 index 00000000..872dc7ce --- /dev/null +++ b/app/Classes/Modules/Banks/Services/CreatesBank.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->reference = $object->getReference(); + $model->bank_name = $object->getBankName(); + $model->holder_name = $object->getHolderName(); + $model->account_no = $object->getAccountNo(); + $model->bank_branch = $object->getBankBranch(); + $model->swift = $object->getSwift(); + $model->snap = $object->getSnap(); + $model->type = $object->getType(); + $model->country_id = $object->getCountryId(); + + return $this->handler($model); + + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/DeletesBank.php b/app/Classes/Modules/Banks/Services/DeletesBank.php new file mode 100644 index 00000000..2aeb8ea7 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/DeletesBank.php @@ -0,0 +1,19 @@ +handler($model); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/FetchesBank.php b/app/Classes/Modules/Banks/Services/FetchesBank.php new file mode 100644 index 00000000..dd075da6 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/FetchesBank.php @@ -0,0 +1,34 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/ListsBanks.php b/app/Classes/Modules/Banks/Services/ListsBanks.php new file mode 100644 index 00000000..f1470ca4 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/ListsBanks.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/ResetsBanksDefault.php b/app/Classes/Modules/Banks/Services/ResetsBanksDefault.php new file mode 100644 index 00000000..204ce719 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/ResetsBanksDefault.php @@ -0,0 +1,20 @@ +company->banks()->where('type', $bank->type)->update(['default' => false]); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/SetsBankToDefault.php b/app/Classes/Modules/Banks/Services/SetsBankToDefault.php new file mode 100644 index 00000000..eab9b709 --- /dev/null +++ b/app/Classes/Modules/Banks/Services/SetsBankToDefault.php @@ -0,0 +1,22 @@ +default = true; + + return $this->handler($model); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Services/UpdatesBank.php b/app/Classes/Modules/Banks/Services/UpdatesBank.php new file mode 100644 index 00000000..6367a6aa --- /dev/null +++ b/app/Classes/Modules/Banks/Services/UpdatesBank.php @@ -0,0 +1,30 @@ +bank_name = $object->getBankName(); + $model->holder_name = $object->getHolderName(); + $model->account_no = $object->getAccountNo(); + $model->bank_branch = $object->getBankBranch(); + $model->swift = $object->getSwift(); + $model->snap = $object->getSnap(); + $model->default = $object->getDefault(); + + return $this->handler($model); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Standards/Rules/CanCreateBank.php b/app/Classes/Modules/Banks/Standards/Rules/CanCreateBank.php new file mode 100644 index 00000000..8cef85d8 --- /dev/null +++ b/app/Classes/Modules/Banks/Standards/Rules/CanCreateBank.php @@ -0,0 +1,50 @@ +BankValidation = $BankValidation; + } + + /** + * @return bool + */ + protected function authorized(): bool + { + return true; + } + + /** + * @param CompanyObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->BankValidation->validate($object); + } + + /** + * @param CompanyObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Standards/Rules/CanDeleteBank.php b/app/Classes/Modules/Banks/Standards/Rules/CanDeleteBank.php new file mode 100644 index 00000000..074550e5 --- /dev/null +++ b/app/Classes/Modules/Banks/Standards/Rules/CanDeleteBank.php @@ -0,0 +1,40 @@ +BankValidation = $BankValidation; + } + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + } + + /** + * @param BankObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->BankValidation->validate($object); + } + + /** + * @param BankObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Banks/Standards/Validators/BankValidation.php b/app/Classes/Modules/Banks/Standards/Validators/BankValidation.php new file mode 100644 index 00000000..896f70bc --- /dev/null +++ b/app/Classes/Modules/Banks/Standards/Validators/BankValidation.php @@ -0,0 +1,46 @@ + $object->getCountryId(), + 'company_id' => $object->getCompanyId(), + 'bank_name' => $object->getBankName(), + 'holder_name' => $object->getHolderName(), + 'account_no' => $object->getAccountNo() + ]; + } + + /** + * @return array + */ + protected function rules(): array + { + return [ + 'country_id' => 'required', + 'company_id' => 'required', + 'bank_name' => 'required', + 'holder_name' => 'required', + 'account_no' => 'required' + ]; + } + + /** + * @return array + */ + protected function messages(): array + { + return []; + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php new file mode 100644 index 00000000..0b844c93 --- /dev/null +++ b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php @@ -0,0 +1,21 @@ +createsEntity = $createsEntity; + } + + public function execute(){ + return $this->createsEntity->execute(); + } +} diff --git a/app/Classes/Modules/Unity/Processors/GetContractObligationsProcessor.php b/app/Classes/Modules/Unity/Processors/GetContractObligationsProcessor.php index 337b3d7e..82aa0332 100644 --- a/app/Classes/Modules/Unity/Processors/GetContractObligationsProcessor.php +++ b/app/Classes/Modules/Unity/Processors/GetContractObligationsProcessor.php @@ -8,13 +8,10 @@ use App\Classes\Modules\Unity\Services\GetContractObligations; class GetContractObligationsProcessor { - private $unityConfig; - - private $GetContractObligations; + private $getContractObligations; public function __construct(GetContractObligations $getContractObligations) { - $this->unityConfig = Config::get('unity'); $this->getContractObligations = $getContractObligations; } diff --git a/app/Classes/Modules/Unity/Services/CreatesEntity.php b/app/Classes/Modules/Unity/Services/CreatesEntity.php new file mode 100644 index 00000000..4e473f19 --- /dev/null +++ b/app/Classes/Modules/Unity/Services/CreatesEntity.php @@ -0,0 +1,30 @@ +createEntityEndpoint = Config::get('unity.url').Config::get('unity.create_entity_endpoint'); + $this->getAccessToken = $getAccessToken; + } + + public function execute($entity_name){ + + $accesToken=$this->getAccessToken->execute(); + + $response = Http::withToken($accesToken)->post($this->createEntityEndpoint,['name'=>$entity_name])->object(); + + return (isset($response->data)) ? $response->data : []; + + } +} diff --git a/app/Classes/ValueObjects/Constants/BankAccountType.php b/app/Classes/ValueObjects/Constants/BankAccountType.php new file mode 100644 index 00000000..13a36fde --- /dev/null +++ b/app/Classes/ValueObjects/Constants/BankAccountType.php @@ -0,0 +1,11 @@ +execute($request); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Banks/DeleteBankController.php b/app/Http/Controllers/Banks/DeleteBankController.php new file mode 100644 index 00000000..626842fc --- /dev/null +++ b/app/Http/Controllers/Banks/DeleteBankController.php @@ -0,0 +1,19 @@ +execute($request); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Banks/ListBanksController.php b/app/Http/Controllers/Banks/ListBanksController.php new file mode 100644 index 00000000..b8708529 --- /dev/null +++ b/app/Http/Controllers/Banks/ListBanksController.php @@ -0,0 +1,19 @@ +execute($request); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Banks/SetBankToDefaultController.php b/app/Http/Controllers/Banks/SetBankToDefaultController.php new file mode 100644 index 00000000..6d8688b0 --- /dev/null +++ b/app/Http/Controllers/Banks/SetBankToDefaultController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Banks/UpdateBankController.php b/app/Http/Controllers/Banks/UpdateBankController.php new file mode 100644 index 00000000..ddfb2ead --- /dev/null +++ b/app/Http/Controllers/Banks/UpdateBankController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Remarks/CreateRemarkController.php b/app/Http/Controllers/Remarks/CreateRemarkController.php new file mode 100644 index 00000000..530e2737 --- /dev/null +++ b/app/Http/Controllers/Remarks/CreateRemarkController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Remarks/DeleteRemarkController.php b/app/Http/Controllers/Remarks/DeleteRemarkController.php new file mode 100644 index 00000000..ab38015e --- /dev/null +++ b/app/Http/Controllers/Remarks/DeleteRemarkController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Remarks/FetchRemarkController.php b/app/Http/Controllers/Remarks/FetchRemarkController.php new file mode 100644 index 00000000..c9319712 --- /dev/null +++ b/app/Http/Controllers/Remarks/FetchRemarkController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Remarks/ListRemarksController.php b/app/Http/Controllers/Remarks/ListRemarksController.php new file mode 100644 index 00000000..fded91e7 --- /dev/null +++ b/app/Http/Controllers/Remarks/ListRemarksController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Remarks/UpdateRemarkController.php b/app/Http/Controllers/Remarks/UpdateRemarkController.php new file mode 100644 index 00000000..dcc60dc0 --- /dev/null +++ b/app/Http/Controllers/Remarks/UpdateRemarkController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Schedules/CreateScheduleController.php b/app/Http/Controllers/Schedules/CreateScheduleController.php new file mode 100644 index 00000000..530e2737 --- /dev/null +++ b/app/Http/Controllers/Schedules/CreateScheduleController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Schedules/DeleteScheduleController.php b/app/Http/Controllers/Schedules/DeleteScheduleController.php new file mode 100644 index 00000000..ab38015e --- /dev/null +++ b/app/Http/Controllers/Schedules/DeleteScheduleController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Schedules/FetchScheduleController.php b/app/Http/Controllers/Schedules/FetchScheduleController.php new file mode 100644 index 00000000..c9319712 --- /dev/null +++ b/app/Http/Controllers/Schedules/FetchScheduleController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Schedules/ListSchedulesController.php b/app/Http/Controllers/Schedules/ListSchedulesController.php new file mode 100644 index 00000000..fded91e7 --- /dev/null +++ b/app/Http/Controllers/Schedules/ListSchedulesController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Schedules/UpdateScheduleController.php b/app/Http/Controllers/Schedules/UpdateScheduleController.php new file mode 100644 index 00000000..dcc60dc0 --- /dev/null +++ b/app/Http/Controllers/Schedules/UpdateScheduleController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/CreateTransportController.php b/app/Http/Controllers/Transports/CreateTransportController.php new file mode 100644 index 00000000..530e2737 --- /dev/null +++ b/app/Http/Controllers/Transports/CreateTransportController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/DeleteTransportController.php b/app/Http/Controllers/Transports/DeleteTransportController.php new file mode 100644 index 00000000..ab38015e --- /dev/null +++ b/app/Http/Controllers/Transports/DeleteTransportController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/FetchTransportController.php b/app/Http/Controllers/Transports/FetchTransportController.php new file mode 100644 index 00000000..c9319712 --- /dev/null +++ b/app/Http/Controllers/Transports/FetchTransportController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/ListTransportsController.php b/app/Http/Controllers/Transports/ListTransportsController.php new file mode 100644 index 00000000..fded91e7 --- /dev/null +++ b/app/Http/Controllers/Transports/ListTransportsController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/UpdateTransportController.php b/app/Http/Controllers/Transports/UpdateTransportController.php new file mode 100644 index 00000000..dcc60dc0 --- /dev/null +++ b/app/Http/Controllers/Transports/UpdateTransportController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Models/BankAccount.php b/app/Models/BankAccount.php new file mode 100644 index 00000000..94e2f00f --- /dev/null +++ b/app/Models/BankAccount.php @@ -0,0 +1,28 @@ +hasOne(Country::class, 'country_id', 'id'); + } + + public function owner(): morphTo + { + return $this->morphTo(); + } +} diff --git a/app/Models/ContainerPackingList.php b/app/Models/ContainerPackingList.php new file mode 100644 index 00000000..e305f3f8 --- /dev/null +++ b/app/Models/ContainerPackingList.php @@ -0,0 +1,17 @@ +hasMany(PackingList::class, 'packing_list_id', 'id'); + } +} diff --git a/app/Models/Package.php b/app/Models/Package.php new file mode 100644 index 00000000..06094305 --- /dev/null +++ b/app/Models/Package.php @@ -0,0 +1,24 @@ +BelongsTo(Order::class, 'order_id', 'id'); + } + + public function owner(): morphTo + { + return $this->morphTo(); + } + +} diff --git a/app/Models/PackageItem.php b/app/Models/PackageItem.php new file mode 100644 index 00000000..d1c44670 --- /dev/null +++ b/app/Models/PackageItem.php @@ -0,0 +1,18 @@ +BelongsTo(Package::class, 'package_id', 'id'); + } +} diff --git a/app/Models/PackingList.php b/app/Models/PackingList.php new file mode 100644 index 00000000..d1be3ed3 --- /dev/null +++ b/app/Models/PackingList.php @@ -0,0 +1,12 @@ +BelongsTo(Package::class, 'package_id', 'id'); + } + + public function packageList(): BelongsTo + { + return $this->BelongsTo(PackageList::class, 'package_list_id', 'id'); + } +} diff --git a/app/Models/Remark.php b/app/Models/Remark.php new file mode 100644 index 00000000..863c3001 --- /dev/null +++ b/app/Models/Remark.php @@ -0,0 +1,18 @@ +morphTo(); + } +} diff --git a/app/Models/Schedule.php b/app/Models/Schedule.php new file mode 100644 index 00000000..a2746382 --- /dev/null +++ b/app/Models/Schedule.php @@ -0,0 +1,18 @@ +morphTo(); + } +} diff --git a/app/Models/TransportArrangement.php b/app/Models/TransportArrangement.php new file mode 100644 index 00000000..cdf92994 --- /dev/null +++ b/app/Models/TransportArrangement.php @@ -0,0 +1,11 @@ +id(); + $table->morphs('owner'); + $table->foreignId('country_id')->unsigned(); + $table->string('bank_name',45); + $table->string('bank_branch',45)->nullable(); + $table->string('account_name',45); + $table->string('account_number',45); + $table->integer('type')->default(BankAccountType::EXTERNAL); + $table->integer('default')->default(false); + $table->integer('status')->default(ApprovalStatus::APPROVED); + + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('country_id')->references('id')->on('countries'); + }); + + Schema::table('bank_accounts', function (Blueprint $table) { + $table->string('owner_type', 191)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('banks'); + } +} diff --git a/database/migrations/2021_07_21_110051_create_packages_table.php b/database/migrations/2021_07_21_110051_create_packages_table.php new file mode 100644 index 00000000..b23fb84d --- /dev/null +++ b/database/migrations/2021_07_21_110051_create_packages_table.php @@ -0,0 +1,48 @@ +id(); + $table->bigInteger('order_id')->unsigned()->index(); + $table->bigInteger('claimant_id')->unsigned()->index(); + $table->integer('type')->default(0); + + $table->string('description',45); + + $table->decimal('width', 8, 2); + $table->decimal('height', 8, 2); + $table->decimal('length', 8, 2); + $table->decimal('weight', 8, 2); + $table->integer('quantity')->default(0); + + $table->integer('status')->default(0); + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('order_id')->references('id')->on('orders'); + $table->foreign('claimant_id')->references('id')->on('company_modules'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('packages'); + } +} diff --git a/database/migrations/2021_07_21_110058_create_package_items_table.php b/database/migrations/2021_07_21_110058_create_package_items_table.php new file mode 100644 index 00000000..599b691e --- /dev/null +++ b/database/migrations/2021_07_21_110058_create_package_items_table.php @@ -0,0 +1,43 @@ +id(); + $table->bigInteger('package_id')->unsigned()->index(); + $table->string('name',45); + $table->string('reference',45); + $table->string('description',45); + $table->decimal('quantity', 8, 2); + $table->string('uom',45); + $table->decimal('price', 8, 2); + $table->decimal('total', 8, 2); + $table->integer('status')->default(0); + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('package_id')->references('id')->on('packages'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('package_items'); + } +} diff --git a/database/migrations/2021_07_21_110059_create_packing_lists_table.php b/database/migrations/2021_07_21_110059_create_packing_lists_table.php new file mode 100644 index 00000000..460dd35f --- /dev/null +++ b/database/migrations/2021_07_21_110059_create_packing_lists_table.php @@ -0,0 +1,34 @@ +id(); + $table->string('reference',200); + $table->integer('status')->default(0); + $table->softDeletes(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('packing_lists'); + } +} diff --git a/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php b/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php new file mode 100644 index 00000000..4c3b2bb3 --- /dev/null +++ b/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php @@ -0,0 +1,37 @@ +id(); + $table->bigInteger('packing_list_id')->unsigned()->index(); + $table->bigInteger('package_id')->unsigned()->index(); + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('packing_list_id')->references('id')->on('packing_lists'); + $table->foreign('package_id')->references('id')->on('packages'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('packing_list_packages'); + } +} diff --git a/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php new file mode 100644 index 00000000..830e8eb1 --- /dev/null +++ b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php @@ -0,0 +1,37 @@ +id(); + $table->bigInteger('packing_list_id')->unsigned()->index(); + $table->string('container_reference',45); + $table->integer('container_type'); + $table->softDeletes(); + $table->timestamps(); + + $table->foreign('packing_list_id')->references('id')->on('packing_lists'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('container_packing_lists'); + } +} diff --git a/database/migrations/2021_07_21_110310_create_remarks_table.php b/database/migrations/2021_07_21_110310_create_remarks_table.php new file mode 100644 index 00000000..e02b0f44 --- /dev/null +++ b/database/migrations/2021_07_21_110310_create_remarks_table.php @@ -0,0 +1,39 @@ +id(); + $table->morphs('owner'); + $table->bigInteger('commenter_id')->unsigned()->index(); + $table->string('content',200); + $table->softDeletes(); + $table->timestamps(); + }); + + Schema::table('remarks', function (Blueprint $table) { + $table->string('owner_type', 191)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('remarks'); + } +} diff --git a/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php b/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php new file mode 100644 index 00000000..cc642694 --- /dev/null +++ b/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php @@ -0,0 +1,46 @@ +id(); + $table->morphs('owner'); + $table->integer('type')->default(0); + + $table->string('courier',45); + $table->string('tracking_number',45); + + $table->timestamp('dispacth_date')->nullable(); + $table->timestamp('drop_date')->nullable(); + + $table->integer('status')->default(0); + $table->softDeletes(); + $table->timestamps(); + }); + + Schema::table('transport_arrangements', function (Blueprint $table) { + $table->string('owner_type', 191)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('transport_arrangements'); + } +} diff --git a/database/migrations/2021_07_21_110522_create_schedules_table.php b/database/migrations/2021_07_21_110522_create_schedules_table.php new file mode 100644 index 00000000..0e2e8800 --- /dev/null +++ b/database/migrations/2021_07_21_110522_create_schedules_table.php @@ -0,0 +1,42 @@ +id(); + $table->morphs('owner'); + + $table->timestamp('etd')->nullable(); + $table->timestamp('eta')->nullable(); + + $table->integer('status')->default(0); + $table->softDeletes(); + $table->timestamps(); + }); + + Schema::table('schedules', function (Blueprint $table) { + $table->string('owner_type', 191)->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('schedules'); + } +} diff --git a/routes/bank.php b/routes/bank.php new file mode 100644 index 00000000..a17ceb63 --- /dev/null +++ b/routes/bank.php @@ -0,0 +1,11 @@ + 'bank', 'as' => 'bank.', 'namespace' => 'Banks'], function () { + Route::get('/list', 'ListBanksController@list')->name('list'); + Route::post('/create', 'CreateBankController@create')->name('create'); + Route::put('/update/{id}', 'UpdateBankController@update')->name('update'); + Route::put('/{id}/default', 'SetBankToDefaultController@update')->name('default'); + Route::delete('/delete/{id}', 'DeleteBankController@delete')->name('delete'); +}); \ No newline at end of file diff --git a/routes/remark.php b/routes/remark.php new file mode 100644 index 00000000..33756eee --- /dev/null +++ b/routes/remark.php @@ -0,0 +1,11 @@ + 'Remarks', 'as' => 'remark.', 'prefix' => 'remark'], function () { + Route::get('/{id}/show', 'FetchRemarkController@fetch')->name('show'); + Route::get('/list', 'ListRemarksController@list')->name('list'); + Route::post('/create', 'CreateRemarkController@create')->name('create'); + Route::put('/update/{id}', 'UpdateRemarkController@update')->name('update'); + Route::delete('/delete/{id}', 'DeleteRemarkController@delete')->name('delete'); +}); diff --git a/routes/schedule.php b/routes/schedule.php new file mode 100644 index 00000000..5e0dc86f --- /dev/null +++ b/routes/schedule.php @@ -0,0 +1,11 @@ + 'Schedules', 'as' => 'schedule.', 'prefix' => 'schedule'], function () { + Route::get('/{id}/show', 'FetchScheduleController@fetch')->name('show'); + Route::get('/list', 'ListScheduleController@list')->name('list'); + Route::post('/create', 'CreateScheduleController@create')->name('create'); + Route::put('/update/{id}', 'UpdateScheduleController@update')->name('update'); + Route::delete('/delete/{id}', 'DeleteScheduleController@delete')->name('delete'); +}); diff --git a/routes/transport.php b/routes/transport.php new file mode 100644 index 00000000..412005ee --- /dev/null +++ b/routes/transport.php @@ -0,0 +1,11 @@ + 'Transports', 'as' => 'transport.', 'prefix' => 'transport'], function () { + Route::get('/{id}/show', 'FetchTransportController@fetch')->name('show'); + Route::get('/list', 'ListTransportController@list')->name('list'); + Route::post('/create', 'CreateTransportController@create')->name('create'); + Route::put('/update/{id}', 'UpdateTransportController@update')->name('update'); + Route::delete('/delete/{id}', 'DeleteTransportController@delete')->name('delete'); +}); From adf98964100132516a59d6c241a69405c007fa68 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Thu, 22 Jul 2021 13:00:11 +0800 Subject: [PATCH 03/19] WIP - Order steps & remaining APIs --- .gitignore | 3 +- .../ControllersLogic/CreateCompanyLogic.php | 13 ++- .../GenerateOrderStepsProcessor.php | 13 ++- .../ControllersLogic/CreateRemarkLogic.php | 79 +++++++++++++++ .../ControllersLogic/DeleteRemarkLogic.php | 73 ++++++++++++++ .../ControllersLogic/FetchRemarkLogic.php | 66 +++++++++++++ .../ControllersLogic/ListRemarksLogic.php | 66 +++++++++++++ .../ControllersLogic/UpdateRemarkLogic.php | 86 +++++++++++++++++ .../DataTransferObjects/RemarkObject.php | 96 +++++++++++++++++++ .../Remarks/Services/CreatesRemark.php | 32 +++++++ .../Remarks/Services/DeletesRemark.php | 19 ++++ .../Remarks/Services/FetchesRemark.php | 33 +++++++ .../Modules/Remarks/Services/ListsRemarks.php | 33 +++++++ .../Remarks/Services/UpdatesRemark.php | 33 +++++++ .../Standards/Rules/CanCreateRemark.php | 57 +++++++++++ .../Standards/Rules/CanDeleteRemark.php | 43 +++++++++ .../Standards/Rules/CanFetchRemark.php | 43 +++++++++ .../Standards/Rules/CanListRemarks.php | 43 +++++++++ .../Standards/Rules/CanUpdateRemark.php | 57 +++++++++++ .../Standards/Validators/RemarkValidation.php | 42 ++++++++ .../ControllersLogic/CreateScheduleLogic.php | 79 +++++++++++++++ .../ControllersLogic/DeleteScheduleLogic.php | 73 ++++++++++++++ .../ControllersLogic/FetchScheduleLogic.php | 66 +++++++++++++ .../ControllersLogic/ListSchedulesLogic.php | 66 +++++++++++++ .../ControllersLogic/UpdateScheduleLogic.php | 86 +++++++++++++++++ .../DataTransferObjects/ScheduleObject.php | 96 +++++++++++++++++++ .../Schedules/Services/CreatesSchedule.php | 32 +++++++ .../Schedules/Services/DeletesSchedule.php | 19 ++++ .../Schedules/Services/FetchesSchedule.php | 33 +++++++ .../Schedules/Services/ListsSchedules.php | 33 +++++++ .../Schedules/Services/UpdatesSchedule.php | 33 +++++++ .../Standards/Rules/CanCreateSchedule.php | 57 +++++++++++ .../Standards/Rules/CanDeleteSchedule.php | 43 +++++++++ .../Standards/Rules/CanFetchSchedule.php | 43 +++++++++ .../Standards/Rules/CanListSchedules.php | 43 +++++++++ .../Standards/Rules/CanUpdateSchedule.php | 57 +++++++++++ .../Validators/ScheduleValidation.php | 42 ++++++++ .../ControllersLogic/CreateTransportLogic.php | 79 +++++++++++++++ .../ControllersLogic/DeleteTransportLogic.php | 73 ++++++++++++++ .../ControllersLogic/FetchTransportLogic.php | 66 +++++++++++++ .../ControllersLogic/ListTransportsLogic.php | 66 +++++++++++++ .../ControllersLogic/UpdateTransportLogic.php | 86 +++++++++++++++++ .../DataTransferObjects/TransportObject.php | 96 +++++++++++++++++++ .../Transports/Services/CreatesTransport.php | 32 +++++++ .../Transports/Services/DeletesTransport.php | 19 ++++ .../Transports/Services/FetchesTransport.php | 33 +++++++ .../Transports/Services/ListsTransports.php | 33 +++++++ .../Transports/Services/UpdatesTransport.php | 33 +++++++ .../Standards/Rules/CanCreateTransport.php | 57 +++++++++++ .../Standards/Rules/CanDeleteTransport.php | 43 +++++++++ .../Standards/Rules/CanFetchTransport.php | 43 +++++++++ .../Standards/Rules/CanListTransports.php | 43 +++++++++ .../Standards/Rules/CanUpdateTransport.php | 57 +++++++++++ .../Validators/TransportValidation.php | 42 ++++++++ .../Remarks/CreateRemarkController.php | 8 +- .../Remarks/DeleteRemarkController.php | 8 +- .../Remarks/FetchRemarkController.php | 8 +- .../Remarks/ListRemarksController.php | 8 +- .../Remarks/UpdateRemarkController.php | 8 +- .../Schedules/CreateScheduleController.php | 8 +- .../Schedules/DeleteScheduleController.php | 8 +- .../Schedules/FetchScheduleController.php | 8 +- .../Schedules/ListSchedulesController.php | 8 +- .../Schedules/UpdateScheduleController.php | 8 +- .../Transports/CreateTransportController.php | 8 +- .../Transports/DeleteTransportController.php | 8 +- .../Transports/FetchTransportController.php | 8 +- .../Transports/ListTransportsController.php | 8 +- .../Transports/UpdateTransportController.php | 8 +- 69 files changed, 2781 insertions(+), 71 deletions(-) create mode 100644 app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php create mode 100644 app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php create mode 100644 app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php create mode 100644 app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php create mode 100644 app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php create mode 100644 app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php create mode 100644 app/Classes/Modules/Remarks/Services/CreatesRemark.php create mode 100644 app/Classes/Modules/Remarks/Services/DeletesRemark.php create mode 100644 app/Classes/Modules/Remarks/Services/FetchesRemark.php create mode 100644 app/Classes/Modules/Remarks/Services/ListsRemarks.php create mode 100644 app/Classes/Modules/Remarks/Services/UpdatesRemark.php create mode 100644 app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php create mode 100644 app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php create mode 100644 app/Classes/Modules/Remarks/Standards/Rules/CanFetchRemark.php create mode 100644 app/Classes/Modules/Remarks/Standards/Rules/CanListRemarks.php create mode 100644 app/Classes/Modules/Remarks/Standards/Rules/CanUpdateRemark.php create mode 100644 app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php create mode 100644 app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php create mode 100644 app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php create mode 100644 app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php create mode 100644 app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php create mode 100644 app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php create mode 100644 app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php create mode 100644 app/Classes/Modules/Schedules/Services/CreatesSchedule.php create mode 100644 app/Classes/Modules/Schedules/Services/DeletesSchedule.php create mode 100644 app/Classes/Modules/Schedules/Services/FetchesSchedule.php create mode 100644 app/Classes/Modules/Schedules/Services/ListsSchedules.php create mode 100644 app/Classes/Modules/Schedules/Services/UpdatesSchedule.php create mode 100644 app/Classes/Modules/Schedules/Standards/Rules/CanCreateSchedule.php create mode 100644 app/Classes/Modules/Schedules/Standards/Rules/CanDeleteSchedule.php create mode 100644 app/Classes/Modules/Schedules/Standards/Rules/CanFetchSchedule.php create mode 100644 app/Classes/Modules/Schedules/Standards/Rules/CanListSchedules.php create mode 100644 app/Classes/Modules/Schedules/Standards/Rules/CanUpdateSchedule.php create mode 100644 app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php create mode 100644 app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php create mode 100644 app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php create mode 100644 app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php create mode 100644 app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php create mode 100644 app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php create mode 100644 app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php create mode 100644 app/Classes/Modules/Transports/Services/CreatesTransport.php create mode 100644 app/Classes/Modules/Transports/Services/DeletesTransport.php create mode 100644 app/Classes/Modules/Transports/Services/FetchesTransport.php create mode 100644 app/Classes/Modules/Transports/Services/ListsTransports.php create mode 100644 app/Classes/Modules/Transports/Services/UpdatesTransport.php create mode 100644 app/Classes/Modules/Transports/Standards/Rules/CanCreateTransport.php create mode 100644 app/Classes/Modules/Transports/Standards/Rules/CanDeleteTransport.php create mode 100644 app/Classes/Modules/Transports/Standards/Rules/CanFetchTransport.php create mode 100644 app/Classes/Modules/Transports/Standards/Rules/CanListTransports.php create mode 100644 app/Classes/Modules/Transports/Standards/Rules/CanUpdateTransport.php create mode 100644 app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php diff --git a/.gitignore b/.gitignore index de84bee2..ac0eb695 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,8 @@ public/.DS_Store public/images/.DS_Store gox.iml rebuild_docker.sh +r.sh docker/* db/* docker-compose.yml -package-lock.json \ No newline at end of file +package-lock.json diff --git a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php index c0b60806..b3bc375f 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\Companies\ControllersLogic; - +use App\Classes\Modules\Unity\Processors\CreateEntityProcessor; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor; use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor; @@ -15,15 +15,19 @@ use Illuminate\Http\Request; class CreateCompanyLogic extends AbstractControllerLogic { + + private $createUnityEntityProcessor; + /** * CreateCompanyLogic constructor. * @param CreateCompanyProcessor $createCompanyProcessor * @param CreateCompanyModuleProcessor $createCompanyModuleProcessor */ - public function __construct(CreateCompanyProcessor $createCompanyProcessor ,CreateCompanyModuleProcessor $createCompanyModuleProcessor) + public function __construct(CreateCompanyProcessor $createCompanyProcessor ,CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreateEntityProcessor $createUnityEntityProcessor) { $this->createCompanyProcessor = $createCompanyProcessor; $this->createCompanyModuleProcessor = $createCompanyModuleProcessor; + $this->createUnityEntityProcessor = $createUnityEntityProcessor; } /** @@ -53,7 +57,10 @@ class CreateCompanyLogic extends AbstractControllerLogic $this->createCompanyModuleProcessor->execute($company , $request->input('business_type')); + //$unityEntity = $this->createUnityEntityProcessor->execute($company->name); + //TODO: Update company table with hash id + return $this->resourceResponse(new CompanyResource($company)); } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php b/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php index 97789148..343c0ad0 100644 --- a/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php +++ b/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php @@ -27,24 +27,23 @@ class GenerateOrderStepsProcessor private $createsManyOrderStep; - private $unityConfig; - private $updateOrderStepProcessors; - private $getContractObligationsProcessor; + private $getUnityContractObligationsProcessor; - public function __construct(UpdatesOrderCurrentStepProcessor $updatesOrderCurrentStep, CreatesManyOrderSteps $createsManyOrderStep, UpdateOrderStepsProcessor $updateOrderStepProcessors, GetContractObligationsProcessor $getContractObligationsProcessor) + public function __construct(UpdatesOrderCurrentStepProcessor $updatesOrderCurrentStep, CreatesManyOrderSteps $createsManyOrderStep, UpdateOrderStepsProcessor $updateOrderStepProcessors, GetContractObligationsProcessor $getUnityContractObligationsProcessor) { $this->updatesOrderCurrentStep = $updatesOrderCurrentStep; - $this->unityConfig = Config::get('unity'); $this->createsManyOrderStep = $createsManyOrderStep; $this->updateOrderStepProcessors = $updateOrderStepProcessors; - $this->getContractObligationsProcessor = $getContractObligationsProcessor; + $this->getUnityContractObligationsProcessor = $getUnityContractObligationsProcessor; } public function execute(Order $order){ - $obligations = $this->getContractObligationsProcessor->execute(); + $obligations = $this->getUnityContractObligationsProcessor->execute(); + + //TODO: Update Appointee ID to Entity User base on hash key foreach($obligations as $step){ $orderSteps[] = new OrderStepsObject( diff --git a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php new file mode 100644 index 00000000..4eb7665e --- /dev/null +++ b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php @@ -0,0 +1,79 @@ + 'Created Remark', + 'message' => 'You have successfully created a new Remark' + ]; + } + + /** @var CanCreateRemark */ + private $canCreateRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesRemark */ + private $createsRemark; + + /** + * CreateRemarkLogic constructor. + * @param CanCreateRemark $canCreateRemark + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesRemark $createsRemark + */ + public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + { + $this->canCreateRemark = $canCreateRemark; + $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesCompany = $fetchesCompany; + $this->createsRemark = $createsRemark; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreateRemark->passes($object); + + $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new RemarkResource($query)); + + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php new file mode 100644 index 00000000..f731cca5 --- /dev/null +++ b/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php @@ -0,0 +1,73 @@ + 'Deleted Remark', + 'message' => 'You have successfully deleted a Remark' + ]; + } + + + /** @var CanDeleteRemark */ + private $canDeleteRemark; + + /** @var DeletesRemark */ + private $deletesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * DeleteRemarkControllersLogic constructor. + * @param CanDeleteRemark $canDeleteRemark + * @param DeletesRemark $deletesRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanDeleteRemark $canDeleteRemark, DeletesRemark $deletesRemark, FetchesRemark $fetchesRemark) + { + $this->canDeleteRemark = $canDeleteRemark; + $this->deletesRemark = $deletesRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $this->deletesRemark->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php new file mode 100644 index 00000000..3ff151d3 --- /dev/null +++ b/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remark', + 'message' => 'You have successfully retrieved a Remark' + ]; + } + + /** @var CanFetchRemark */ + private $canFetchRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * FetchRemarkControllersLogic constructor. + * @param CanFetchRemark $canFetchRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanFetchRemark $canFetchRemark, FetchesRemark $fetchesRemark) + { + $this->canFetchRemark = $canFetchRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new RemarkResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php new file mode 100644 index 00000000..a7d7ff43 --- /dev/null +++ b/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remarks', + 'message' => 'You have successfully retrieved a list of Remarks' + ]; + } + + /** @var CanListRemarks */ + private $canListRemarks; + + /** @var ListsRemarks */ + private $listsRemarks; + + /** + * ListRemarksLogic constructor. + * @param CanListRemarks $canListRemarks + * @param ListsRemarks $listsRemarks + */ + public function __construct(CanListRemarks $canListRemarks, ListsRemarks $listsRemarks) + { + $this->canListRemarks = $canListRemarks; + $this->listsRemarks = $listsRemarks; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListRemarks->passes(); + + $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(RemarkResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php new file mode 100644 index 00000000..020906eb --- /dev/null +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -0,0 +1,86 @@ + 'Updated Remark', + 'message' => 'You have successfully updated the Remark' + ]; + } + + /** @var CanUpdateRemark */ + private $canUpdateRemark; + + /** @var UpdatesRemark */ + private $updatesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateRemarkLogic constructor. + * @param CanUpdateRemark $canUpdateRemark + * @param UpdatesRemark $updatesRemark + * @param FetchesRemark $fetchesRemark + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateRemark = $canUpdateRemark; + $this->updatesRemark = $updatesRemark; + $this->fetchesRemark = $fetchesRemark; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateRemark->passes($object); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $query = $this->updatesRemark->execute($query, $object); + + return $this->resourceResponse(new RemarkResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php new file mode 100644 index 00000000..67beaa30 --- /dev/null +++ b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php @@ -0,0 +1,96 @@ +streetOne = $streetOne; + $this->streetTwo = $streetTwo; + $this->countryId = $countryId; + $this->stateId = $stateId; + $this->districtId = $districtId; + $this->postCode = $postCode; + } + + /** + * @return string + */ + public function getStreetOne(): string + { + return $this->streetOne; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->streetTwo; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->countryId; + } + + /** + * @return int + */ + public function getStateId(): int + { + return $this->stateId; + } + + /** + * @return int + */ + public function getDistrictId(): int + { + return $this->districtId; + } + + /** + * @return int + */ + public function getPostCode(): int + { + return $this->postCode; + } + + +} diff --git a/app/Classes/Modules/Remarks/Services/CreatesRemark.php b/app/Classes/Modules/Remarks/Services/CreatesRemark.php new file mode 100644 index 00000000..c4067869 --- /dev/null +++ b/app/Classes/Modules/Remarks/Services/CreatesRemark.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->Remarks(), $model); + + } +} diff --git a/app/Classes/Modules/Remarks/Services/DeletesRemark.php b/app/Classes/Modules/Remarks/Services/DeletesRemark.php new file mode 100644 index 00000000..4c29be9d --- /dev/null +++ b/app/Classes/Modules/Remarks/Services/DeletesRemark.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/Remarks/Services/FetchesRemark.php b/app/Classes/Modules/Remarks/Services/FetchesRemark.php new file mode 100644 index 00000000..a3b5c765 --- /dev/null +++ b/app/Classes/Modules/Remarks/Services/FetchesRemark.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Remarks/Services/ListsRemarks.php b/app/Classes/Modules/Remarks/Services/ListsRemarks.php new file mode 100644 index 00000000..53479558 --- /dev/null +++ b/app/Classes/Modules/Remarks/Services/ListsRemarks.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php new file mode 100644 index 00000000..082e2281 --- /dev/null +++ b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->district_id = $object->getDistrictId(); + $model->state_id = $object->getStateId(); + $model->postcode = $object->getPostCode(); + $model->country_id = $object->getCountryId(); + //$model->default = $object->getDefault(); + //$model->billing = $object->getBilling(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php new file mode 100644 index 00000000..fc51178f --- /dev/null +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php @@ -0,0 +1,57 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php new file mode 100644 index 00000000..7ddece31 --- /dev/null +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php @@ -0,0 +1,43 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php new file mode 100644 index 00000000..25c9dfee --- /dev/null +++ b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php @@ -0,0 +1,42 @@ + $object->getStreetOne(), + 'street_two' => $object->getStreetTwo(), + 'district_id' => $object->getDistrictId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'street_one' => 'required', + 'district_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php new file mode 100644 index 00000000..06ca06a8 --- /dev/null +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -0,0 +1,79 @@ + 'Created Schedule', + 'message' => 'You have successfully created a new Schedule' + ]; + } + + /** @var CanCreateSchedule */ + private $canCreateSchedule; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesSchedule */ + private $createsSchedule; + + /** + * CreateScheduleLogic constructor. + * @param CanCreateSchedule $canCreateSchedule + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesSchedule $createsSchedule + */ + public function __construct(CanCreateSchedule $canCreateSchedule, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesSchedule $createsSchedule) + { + $this->canCreateSchedule = $canCreateSchedule; + $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesCompany = $fetchesCompany; + $this->createsSchedule = $createsSchedule; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreateSchedule->passes($object); + + $query = $this->createsSchedule->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new ScheduleResource($query)); + + } + +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php new file mode 100644 index 00000000..2d0f62e7 --- /dev/null +++ b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php @@ -0,0 +1,73 @@ + 'Deleted Schedule', + 'message' => 'You have successfully deleted a Schedule' + ]; + } + + + /** @var CanDeleteSchedule */ + private $canDeleteSchedule; + + /** @var DeletesSchedule */ + private $deletesSchedule; + + /** @var FetchesSchedule */ + private $fetchesSchedule; + + /** + * DeleteScheduleControllersLogic constructor. + * @param CanDeleteSchedule $canDeleteSchedule + * @param DeletesSchedule $deletesSchedule + * @param FetchesSchedule $fetchesSchedule + */ + public function __construct(CanDeleteSchedule $canDeleteSchedule, DeletesSchedule $deletesSchedule, FetchesSchedule $fetchesSchedule) + { + $this->canDeleteSchedule = $canDeleteSchedule; + $this->deletesSchedule = $deletesSchedule; + $this->fetchesSchedule = $fetchesSchedule; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteSchedule->passes(); + + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + + $this->deletesSchedule->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php new file mode 100644 index 00000000..2c36a0d1 --- /dev/null +++ b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Schedule', + 'message' => 'You have successfully retrieved a Schedule' + ]; + } + + /** @var CanFetchSchedule */ + private $canFetchSchedule; + + /** @var FetchesSchedule */ + private $fetchesSchedule; + + /** + * FetchScheduleControllersLogic constructor. + * @param CanFetchSchedule $canFetchSchedule + * @param FetchesSchedule $fetchesSchedule + */ + public function __construct(CanFetchSchedule $canFetchSchedule, FetchesSchedule $fetchesSchedule) + { + $this->canFetchSchedule = $canFetchSchedule; + $this->fetchesSchedule = $fetchesSchedule; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchSchedule->passes(); + + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new ScheduleResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php new file mode 100644 index 00000000..17f4dee8 --- /dev/null +++ b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Schedules', + 'message' => 'You have successfully retrieved a list of Schedules' + ]; + } + + /** @var CanListSchedules */ + private $canListSchedules; + + /** @var ListsSchedules */ + private $listsSchedules; + + /** + * ListSchedulesLogic constructor. + * @param CanListSchedules $canListSchedules + * @param ListsSchedules $listsSchedules + */ + public function __construct(CanListSchedules $canListSchedules, ListsSchedules $listsSchedules) + { + $this->canListSchedules = $canListSchedules; + $this->listsSchedules = $listsSchedules; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListSchedules->passes(); + + $query = $this->listsSchedules->execute($this->listsSchedules->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(ScheduleResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php new file mode 100644 index 00000000..b8589cf6 --- /dev/null +++ b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php @@ -0,0 +1,86 @@ + 'Updated Schedule', + 'message' => 'You have successfully updated the Schedule' + ]; + } + + /** @var CanUpdateSchedule */ + private $canUpdateSchedule; + + /** @var UpdatesSchedule */ + private $updatesSchedule; + + /** @var FetchesSchedule */ + private $fetchesSchedule; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateScheduleLogic constructor. + * @param CanUpdateSchedule $canUpdateSchedule + * @param UpdatesSchedule $updatesSchedule + * @param FetchesSchedule $fetchesSchedule + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateSchedule $canUpdateSchedule, UpdatesSchedule $updatesSchedule, FetchesSchedule $fetchesSchedule, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateSchedule = $canUpdateSchedule; + $this->updatesSchedule = $updatesSchedule; + $this->fetchesSchedule = $fetchesSchedule; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new ScheduleObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateSchedule->passes($object); + + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + + $query = $this->updatesSchedule->execute($query, $object); + + return $this->resourceResponse(new ScheduleResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php new file mode 100644 index 00000000..9a85301d --- /dev/null +++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php @@ -0,0 +1,96 @@ +streetOne = $streetOne; + $this->streetTwo = $streetTwo; + $this->countryId = $countryId; + $this->stateId = $stateId; + $this->districtId = $districtId; + $this->postCode = $postCode; + } + + /** + * @return string + */ + public function getStreetOne(): string + { + return $this->streetOne; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->streetTwo; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->countryId; + } + + /** + * @return int + */ + public function getStateId(): int + { + return $this->stateId; + } + + /** + * @return int + */ + public function getDistrictId(): int + { + return $this->districtId; + } + + /** + * @return int + */ + public function getPostCode(): int + { + return $this->postCode; + } + + +} diff --git a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php new file mode 100644 index 00000000..2cb67a6f --- /dev/null +++ b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->Schedules(), $model); + + } +} diff --git a/app/Classes/Modules/Schedules/Services/DeletesSchedule.php b/app/Classes/Modules/Schedules/Services/DeletesSchedule.php new file mode 100644 index 00000000..cd1368cf --- /dev/null +++ b/app/Classes/Modules/Schedules/Services/DeletesSchedule.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/Schedules/Services/FetchesSchedule.php b/app/Classes/Modules/Schedules/Services/FetchesSchedule.php new file mode 100644 index 00000000..eb7e4311 --- /dev/null +++ b/app/Classes/Modules/Schedules/Services/FetchesSchedule.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Schedules/Services/ListsSchedules.php b/app/Classes/Modules/Schedules/Services/ListsSchedules.php new file mode 100644 index 00000000..aeacc9e3 --- /dev/null +++ b/app/Classes/Modules/Schedules/Services/ListsSchedules.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php new file mode 100644 index 00000000..84e9491c --- /dev/null +++ b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->district_id = $object->getDistrictId(); + $model->state_id = $object->getStateId(); + $model->postcode = $object->getPostCode(); + $model->country_id = $object->getCountryId(); + //$model->default = $object->getDefault(); + //$model->billing = $object->getBilling(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/Schedules/Standards/Rules/CanCreateSchedule.php b/app/Classes/Modules/Schedules/Standards/Rules/CanCreateSchedule.php new file mode 100644 index 00000000..38dadf18 --- /dev/null +++ b/app/Classes/Modules/Schedules/Standards/Rules/CanCreateSchedule.php @@ -0,0 +1,57 @@ +ScheduleValidation = $ScheduleValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param ScheduleObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->ScheduleValidation->validate($object); + + } + + + /** + * @param ScheduleObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Schedules/Standards/Rules/CanDeleteSchedule.php b/app/Classes/Modules/Schedules/Standards/Rules/CanDeleteSchedule.php new file mode 100644 index 00000000..31b5fb08 --- /dev/null +++ b/app/Classes/Modules/Schedules/Standards/Rules/CanDeleteSchedule.php @@ -0,0 +1,43 @@ +ScheduleValidation = $ScheduleValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param ScheduleObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->ScheduleValidation->validate($object); + + } + + + /** + * @param ScheduleObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php new file mode 100644 index 00000000..4039e0ee --- /dev/null +++ b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php @@ -0,0 +1,42 @@ + $object->getStreetOne(), + 'street_two' => $object->getStreetTwo(), + 'district_id' => $object->getDistrictId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'street_one' => 'required', + 'district_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php new file mode 100644 index 00000000..b3e8d554 --- /dev/null +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -0,0 +1,79 @@ + 'Created Transport', + 'message' => 'You have successfully created a new Transport' + ]; + } + + /** @var CanCreateTransport */ + private $canCreateTransport; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesTransport */ + private $createsTransport; + + /** + * CreateTransportLogic constructor. + * @param CanCreateTransport $canCreateTransport + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesTransport $createsTransport + */ + public function __construct(CanCreateTransport $canCreateTransport, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesTransport $createsTransport) + { + $this->canCreateTransport = $canCreateTransport; + $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesCompany = $fetchesCompany; + $this->createsTransport = $createsTransport; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new TransportObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreateTransport->passes($object); + + $query = $this->createsTransport->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new TransportResource($query)); + + } + +} diff --git a/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php new file mode 100644 index 00000000..c21afd27 --- /dev/null +++ b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php @@ -0,0 +1,73 @@ + 'Deleted Transport', + 'message' => 'You have successfully deleted a Transport' + ]; + } + + + /** @var CanDeleteTransport */ + private $canDeleteTransport; + + /** @var DeletesTransport */ + private $deletesTransport; + + /** @var FetchesTransport */ + private $fetchesTransport; + + /** + * DeleteTransportControllersLogic constructor. + * @param CanDeleteTransport $canDeleteTransport + * @param DeletesTransport $deletesTransport + * @param FetchesTransport $fetchesTransport + */ + public function __construct(CanDeleteTransport $canDeleteTransport, DeletesTransport $deletesTransport, FetchesTransport $fetchesTransport) + { + $this->canDeleteTransport = $canDeleteTransport; + $this->deletesTransport = $deletesTransport; + $this->fetchesTransport = $fetchesTransport; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteTransport->passes(); + + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); + + $this->deletesTransport->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php new file mode 100644 index 00000000..ed624581 --- /dev/null +++ b/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Transport', + 'message' => 'You have successfully retrieved a Transport' + ]; + } + + /** @var CanFetchTransport */ + private $canFetchTransport; + + /** @var FetchesTransport */ + private $fetchesTransport; + + /** + * FetchTransportControllersLogic constructor. + * @param CanFetchTransport $canFetchTransport + * @param FetchesTransport $fetchesTransport + */ + public function __construct(CanFetchTransport $canFetchTransport, FetchesTransport $fetchesTransport) + { + $this->canFetchTransport = $canFetchTransport; + $this->fetchesTransport = $fetchesTransport; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchTransport->passes(); + + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new TransportResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php b/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php new file mode 100644 index 00000000..2d5d1bc5 --- /dev/null +++ b/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Transports', + 'message' => 'You have successfully retrieved a list of Transports' + ]; + } + + /** @var CanListTransports */ + private $canListTransports; + + /** @var ListsTransports */ + private $listsTransports; + + /** + * ListTransportsLogic constructor. + * @param CanListTransports $canListTransports + * @param ListsTransports $listsTransports + */ + public function __construct(CanListTransports $canListTransports, ListsTransports $listsTransports) + { + $this->canListTransports = $canListTransports; + $this->listsTransports = $listsTransports; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListTransports->passes(); + + $query = $this->listsTransports->execute($this->listsTransports->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(TransportResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php new file mode 100644 index 00000000..b6925003 --- /dev/null +++ b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php @@ -0,0 +1,86 @@ + 'Updated Transport', + 'message' => 'You have successfully updated the Transport' + ]; + } + + /** @var CanUpdateTransport */ + private $canUpdateTransport; + + /** @var UpdatesTransport */ + private $updatesTransport; + + /** @var FetchesTransport */ + private $fetchesTransport; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateTransportLogic constructor. + * @param CanUpdateTransport $canUpdateTransport + * @param UpdatesTransport $updatesTransport + * @param FetchesTransport $fetchesTransport + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateTransport $canUpdateTransport, UpdatesTransport $updatesTransport, FetchesTransport $fetchesTransport, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateTransport = $canUpdateTransport; + $this->updatesTransport = $updatesTransport; + $this->fetchesTransport = $fetchesTransport; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new TransportObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new TransportObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateTransport->passes($object); + + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); + + $query = $this->updatesTransport->execute($query, $object); + + return $this->resourceResponse(new TransportResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php new file mode 100644 index 00000000..9b90b930 --- /dev/null +++ b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php @@ -0,0 +1,96 @@ +streetOne = $streetOne; + $this->streetTwo = $streetTwo; + $this->countryId = $countryId; + $this->stateId = $stateId; + $this->districtId = $districtId; + $this->postCode = $postCode; + } + + /** + * @return string + */ + public function getStreetOne(): string + { + return $this->streetOne; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->streetTwo; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->countryId; + } + + /** + * @return int + */ + public function getStateId(): int + { + return $this->stateId; + } + + /** + * @return int + */ + public function getDistrictId(): int + { + return $this->districtId; + } + + /** + * @return int + */ + public function getPostCode(): int + { + return $this->postCode; + } + + +} diff --git a/app/Classes/Modules/Transports/Services/CreatesTransport.php b/app/Classes/Modules/Transports/Services/CreatesTransport.php new file mode 100644 index 00000000..80a08a16 --- /dev/null +++ b/app/Classes/Modules/Transports/Services/CreatesTransport.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->Transports(), $model); + + } +} diff --git a/app/Classes/Modules/Transports/Services/DeletesTransport.php b/app/Classes/Modules/Transports/Services/DeletesTransport.php new file mode 100644 index 00000000..b75d7db3 --- /dev/null +++ b/app/Classes/Modules/Transports/Services/DeletesTransport.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/Transports/Services/FetchesTransport.php b/app/Classes/Modules/Transports/Services/FetchesTransport.php new file mode 100644 index 00000000..2d507237 --- /dev/null +++ b/app/Classes/Modules/Transports/Services/FetchesTransport.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Transports/Services/ListsTransports.php b/app/Classes/Modules/Transports/Services/ListsTransports.php new file mode 100644 index 00000000..904dab0f --- /dev/null +++ b/app/Classes/Modules/Transports/Services/ListsTransports.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Transports/Services/UpdatesTransport.php b/app/Classes/Modules/Transports/Services/UpdatesTransport.php new file mode 100644 index 00000000..155e793d --- /dev/null +++ b/app/Classes/Modules/Transports/Services/UpdatesTransport.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->district_id = $object->getDistrictId(); + $model->state_id = $object->getStateId(); + $model->postcode = $object->getPostCode(); + $model->country_id = $object->getCountryId(); + //$model->default = $object->getDefault(); + //$model->billing = $object->getBilling(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/Transports/Standards/Rules/CanCreateTransport.php b/app/Classes/Modules/Transports/Standards/Rules/CanCreateTransport.php new file mode 100644 index 00000000..a7e41ea1 --- /dev/null +++ b/app/Classes/Modules/Transports/Standards/Rules/CanCreateTransport.php @@ -0,0 +1,57 @@ +TransportValidation = $TransportValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param TransportObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->TransportValidation->validate($object); + + } + + + /** + * @param TransportObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Transports/Standards/Rules/CanDeleteTransport.php b/app/Classes/Modules/Transports/Standards/Rules/CanDeleteTransport.php new file mode 100644 index 00000000..1d1e94ab --- /dev/null +++ b/app/Classes/Modules/Transports/Standards/Rules/CanDeleteTransport.php @@ -0,0 +1,43 @@ +TransportValidation = $TransportValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param TransportObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->TransportValidation->validate($object); + + } + + + /** + * @param TransportObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php new file mode 100644 index 00000000..83737634 --- /dev/null +++ b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php @@ -0,0 +1,42 @@ + $object->getStreetOne(), + 'street_two' => $object->getStreetTwo(), + 'district_id' => $object->getDistrictId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'street_one' => 'required', + 'district_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Http/Controllers/Remarks/CreateRemarkController.php b/app/Http/Controllers/Remarks/CreateRemarkController.php index 530e2737..313a25b6 100644 --- a/app/Http/Controllers/Remarks/CreateRemarkController.php +++ b/app/Http/Controllers/Remarks/CreateRemarkController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Remarks/DeleteRemarkController.php b/app/Http/Controllers/Remarks/DeleteRemarkController.php index ab38015e..aa292c48 100644 --- a/app/Http/Controllers/Remarks/DeleteRemarkController.php +++ b/app/Http/Controllers/Remarks/DeleteRemarkController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Remarks/FetchRemarkController.php b/app/Http/Controllers/Remarks/FetchRemarkController.php index c9319712..b5c31024 100644 --- a/app/Http/Controllers/Remarks/FetchRemarkController.php +++ b/app/Http/Controllers/Remarks/FetchRemarkController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Remarks/ListRemarksController.php b/app/Http/Controllers/Remarks/ListRemarksController.php index fded91e7..85d16ff6 100644 --- a/app/Http/Controllers/Remarks/ListRemarksController.php +++ b/app/Http/Controllers/Remarks/ListRemarksController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Remarks/UpdateRemarkController.php b/app/Http/Controllers/Remarks/UpdateRemarkController.php index dcc60dc0..b18efcf7 100644 --- a/app/Http/Controllers/Remarks/UpdateRemarkController.php +++ b/app/Http/Controllers/Remarks/UpdateRemarkController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Schedules/CreateScheduleController.php b/app/Http/Controllers/Schedules/CreateScheduleController.php index 530e2737..ff154ee1 100644 --- a/app/Http/Controllers/Schedules/CreateScheduleController.php +++ b/app/Http/Controllers/Schedules/CreateScheduleController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Schedules/DeleteScheduleController.php b/app/Http/Controllers/Schedules/DeleteScheduleController.php index ab38015e..de9d178c 100644 --- a/app/Http/Controllers/Schedules/DeleteScheduleController.php +++ b/app/Http/Controllers/Schedules/DeleteScheduleController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Schedules/FetchScheduleController.php b/app/Http/Controllers/Schedules/FetchScheduleController.php index c9319712..6f393e6a 100644 --- a/app/Http/Controllers/Schedules/FetchScheduleController.php +++ b/app/Http/Controllers/Schedules/FetchScheduleController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Schedules/ListSchedulesController.php b/app/Http/Controllers/Schedules/ListSchedulesController.php index fded91e7..996b0d1d 100644 --- a/app/Http/Controllers/Schedules/ListSchedulesController.php +++ b/app/Http/Controllers/Schedules/ListSchedulesController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Schedules/UpdateScheduleController.php b/app/Http/Controllers/Schedules/UpdateScheduleController.php index dcc60dc0..80a630c2 100644 --- a/app/Http/Controllers/Schedules/UpdateScheduleController.php +++ b/app/Http/Controllers/Schedules/UpdateScheduleController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Transports/CreateTransportController.php b/app/Http/Controllers/Transports/CreateTransportController.php index 530e2737..e9b179ed 100644 --- a/app/Http/Controllers/Transports/CreateTransportController.php +++ b/app/Http/Controllers/Transports/CreateTransportController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Transports/DeleteTransportController.php b/app/Http/Controllers/Transports/DeleteTransportController.php index ab38015e..4b4fe378 100644 --- a/app/Http/Controllers/Transports/DeleteTransportController.php +++ b/app/Http/Controllers/Transports/DeleteTransportController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Transports/FetchTransportController.php b/app/Http/Controllers/Transports/FetchTransportController.php index c9319712..7ab2b449 100644 --- a/app/Http/Controllers/Transports/FetchTransportController.php +++ b/app/Http/Controllers/Transports/FetchTransportController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Transports/ListTransportsController.php b/app/Http/Controllers/Transports/ListTransportsController.php index fded91e7..8050ca13 100644 --- a/app/Http/Controllers/Transports/ListTransportsController.php +++ b/app/Http/Controllers/Transports/ListTransportsController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Transports/UpdateTransportController.php b/app/Http/Controllers/Transports/UpdateTransportController.php index dcc60dc0..28704686 100644 --- a/app/Http/Controllers/Transports/UpdateTransportController.php +++ b/app/Http/Controllers/Transports/UpdateTransportController.php @@ -1,8 +1,8 @@ execute($request); } From 3dfa087831295cbc129edc7df8d0d2bc8c27e664 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Thu, 22 Jul 2021 14:28:02 +0800 Subject: [PATCH 04/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreateCompanyLogic.php | 6 ++- .../Processors/CreateOrderStepsProcessor.php | 4 +- .../Processors/ConfirmOrderProcessor.php | 45 +++++++------------ .../Processors/CreateOrderProcessor.php | 14 ++++-- ...sor copy.php => CreateEntityProcessor.php} | 4 +- .../Modules/Unity/Services/CreatesEntity.php | 2 +- config/unity.php | 2 +- database/seeders/CompaniesTableSeeder.php | 26 ++++++++--- 8 files changed, 56 insertions(+), 47 deletions(-) rename app/Classes/Modules/Unity/Processors/{CreateEntityProcessor copy.php => CreateEntityProcessor.php} (77%) diff --git a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php index b3bc375f..2039c457 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php @@ -57,8 +57,10 @@ class CreateCompanyLogic extends AbstractControllerLogic $this->createCompanyModuleProcessor->execute($company , $request->input('business_type')); - //$unityEntity = $this->createUnityEntityProcessor->execute($company->name); - //TODO: Update company table with hash id + $unityEntity = $this->createUnityEntityProcessor->execute($company->name); + + //$company->unity_hash_id = $unityEntity->hash_id; + //Update company table return $this->resourceResponse(new CompanyResource($company)); } diff --git a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php b/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php index 2f39e830..9f781c9a 100644 --- a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php +++ b/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php @@ -35,9 +35,9 @@ class CreateOrderStepsProcessor $this->fetchesOrderSteps = $fetchesOrderSteps; } - public function execute(Model $order, string $currentStep){ + public function execute(Model $order, string $currentStep, $appointee_id){ - $order_steps_object = new OrderStepsObject($order->id, $order->company_module_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null); + $order_steps_object = new OrderStepsObject($order->id, $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null); $this->canCreateOrderStep->passes($order_steps_object); diff --git a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php index 74b50ed9..2bf0ea54 100644 --- a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php @@ -1,53 +1,40 @@ canUpdateCurrentStep = $canUpdateCurrentStep; - $this->updatesCurrentStep = $updatesCurrentStep; + $this->canConfirmOrder = $canConfirmOrder; + $this->generateOrderStepsProcessor = $generateOrderStepsProcessor; $this->fetchesOrder = $fetchesOrder; - $this->fetchesOrderSteps = $fetchesOrderSteps; - $this->updateOrderStepProcessors = $updateOrderStepProcessors; } - public function execute(int $orderId, string $currentStep){ + public function execute(int $orderId){ - $order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId); + $order_object = new OrderObject(0,'','',0,0, '',$orderId); - $this->canUpdateCurrentStep->passes($order_object); + $this->canConfirmOrder->passes($order_object); $order = $this->fetchesOrder->execute(['id'=>$order_object->getId()]); - $order_steps = $this->fetchesOrderSteps->execute(['order_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING, 'order_by' => 'sequence', 'per_page' => 1]); - - $order_object->setCurrentStep($currentStep); - - $order = $this->updatesCurrentStep->execute($order, $order_object); - - $this->updateOrderStepProcessors->execute($currentStep); + $this->generateOrderStepsProcessor->execute($order); } } diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 4b2708da..4d5ec2f7 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -5,6 +5,7 @@ namespace App\Classes\Modules\Orders\Processors; use App\Classes\Modules\Orders\DataTransferObjects\OrderObject; use App\Classes\Modules\Orders\Services\CreatesOrder; use App\Classes\Modules\Orders\Standards\Rules\CanCreateOrder; +use App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor; use App\Classes\Modules\OrderSteps\Processors\CreateOrderStepsProcessor; use App\Classes\ValueObjects\Constants\OrderStatus; use App\Classes\ValueObjects\Constants\OrderSteps; @@ -17,12 +18,15 @@ class CreateOrderProcessor private $createsOrder; + private $confirmOrderProcessor; + private $createOrderStepsProcessor; - public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor) + public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor) { $this->canCreateOrder = $canCreateOrder; $this->createsOrder = $createsOrder; + $this->confirmOrderProcessor = $confirmOrderProcessor; $this->createOrderStepsProcessor = $createOrderStepsProcessor; } @@ -35,8 +39,12 @@ class CreateOrderProcessor $order = $this->createsOrder->execute($order_object); //Add processing to order step - $this->createOrderStepsProcessor->execute($order, OrderSteps::PROCESSING); + //Note: For processing apointee_id is CIEF Freight Forward , id is 1, reserved in company table + $this->createOrderStepsProcessor->execute($order, OrderSteps::PROCESSING, 1); + + //Pre-approved order, no need Admin to process it + $this->confirmOrderProcessor->execute($order->id); return $order; } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php similarity index 77% rename from app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php rename to app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php index 0b844c93..ccffb96b 100644 --- a/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php +++ b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php @@ -15,7 +15,7 @@ class CreateEntityProcessor $this->createsEntity = $createsEntity; } - public function execute(){ - return $this->createsEntity->execute(); + public function execute($entity_name){ + return $this->createsEntity->execute($entity_name); } } diff --git a/app/Classes/Modules/Unity/Services/CreatesEntity.php b/app/Classes/Modules/Unity/Services/CreatesEntity.php index 4e473f19..d6dc7d7f 100644 --- a/app/Classes/Modules/Unity/Services/CreatesEntity.php +++ b/app/Classes/Modules/Unity/Services/CreatesEntity.php @@ -24,7 +24,7 @@ class CreatesEntity $response = Http::withToken($accesToken)->post($this->createEntityEndpoint,['name'=>$entity_name])->object(); - return (isset($response->data)) ? $response->data : []; + return (isset($response->data)) ? $response->data : null; } } diff --git a/config/unity.php b/config/unity.php index a0c576ce..bcca587b 100644 --- a/config/unity.php +++ b/config/unity.php @@ -23,7 +23,7 @@ return [ 'get_ob_endpoint' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), - 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','contract-template-obligation/list'), + 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','entity/store'), 'default_auth' => env('UNITY_AUTH','login'), diff --git a/database/seeders/CompaniesTableSeeder.php b/database/seeders/CompaniesTableSeeder.php index 8593efa4..fcb6a33a 100644 --- a/database/seeders/CompaniesTableSeeder.php +++ b/database/seeders/CompaniesTableSeeder.php @@ -22,6 +22,13 @@ class CompaniesTableSeeder extends Seeder { $companies = [ + [ + 'id' => 1, //Reserve ID + 'name' => 'CIEF SDN BHD', + 'reference' => 'CIEF', + 'type' => CompanyType::COMPANY_BUSINESS, + 'status' => ApprovalStatus::APPROVED, + ], [ 'name' => 'Guang Zhou', 'reference' => 'guangzhouwarehouse', @@ -42,13 +49,18 @@ class CompaniesTableSeeder extends Seeder $company = Company::create($company); - CompanyModule::create( - [ - 'company_id' => $company->id, - 'type' => BusinessType::WAREHOUSE, - 'status' => ApprovalStatus::APPROVED, - ] - ); + $companyModule = [ + 'company_id' => $company->id, + 'type' => BusinessType::WAREHOUSE, + 'status' => ApprovalStatus::APPROVED, + ]; + + if($company['reference']=='CIEF'){ + $companyModule['id']= 1; //Reserve ID + $companyModule['type']=BusinessType::FREIGHT_FORWARDER; + } + + CompanyModule::create($companyModule); } } } From d87c4f7df4790c4b814c9b4b9ccfad1e6ce28da4 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Thu, 22 Jul 2021 16:53:52 +0800 Subject: [PATCH 05/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreateCompanyLogic.php | 8 --- .../CompanyModuleObject.php | 14 ++++- .../DataTransferObjects/CompanyObject.php | 8 +-- .../CreateCompanyModuleProcessor.php | 18 +++++-- .../Processors/CreateCompanyProcessor.php | 6 +-- .../Services/CreatesCompanyModule.php | 1 + .../Rules/CanCreateCompanyModule.php | 51 +++++++++++++++++++ .../Validators/CompanyModuleValidation.php | 39 ++++++++++++++ .../Validators/CompanyValidation.php | 2 +- .../Processors/CreateContractProcessor.php | 21 ++++++++ .../Processors/UpdateObligationStatus.php | 21 ++++++++ .../Modules/Unity/Services/GetAccessToken.php | 2 +- config/unity.php | 22 ++++---- ...2021_07_22_145827_modify_company_table.php | 30 +++++++++++ 14 files changed, 211 insertions(+), 32 deletions(-) create mode 100644 app/Classes/Modules/Companies/Standards/Rules/CanCreateCompanyModule.php create mode 100644 app/Classes/Modules/Companies/Standards/Validators/CompanyModuleValidation.php create mode 100644 app/Classes/Modules/Unity/Processors/CreateContractProcessor.php create mode 100644 app/Classes/Modules/Unity/Processors/UpdateObligationStatus.php create mode 100644 database/migrations/2021_07_22_145827_modify_company_table.php diff --git a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php index 2039c457..55c7f574 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php @@ -2,7 +2,6 @@ namespace App\Classes\Modules\Companies\ControllersLogic; -use App\Classes\Modules\Unity\Processors\CreateEntityProcessor; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor; use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor; @@ -16,8 +15,6 @@ use Illuminate\Http\Request; class CreateCompanyLogic extends AbstractControllerLogic { - private $createUnityEntityProcessor; - /** * CreateCompanyLogic constructor. * @param CreateCompanyProcessor $createCompanyProcessor @@ -57,11 +54,6 @@ class CreateCompanyLogic extends AbstractControllerLogic $this->createCompanyModuleProcessor->execute($company , $request->input('business_type')); - $unityEntity = $this->createUnityEntityProcessor->execute($company->name); - - //$company->unity_hash_id = $unityEntity->hash_id; - //Update company table - return $this->resourceResponse(new CompanyResource($company)); } diff --git a/app/Classes/Modules/Companies/DataTransferObjects/CompanyModuleObject.php b/app/Classes/Modules/Companies/DataTransferObjects/CompanyModuleObject.php index 10e2a7ae..8dc949fd 100644 --- a/app/Classes/Modules/Companies/DataTransferObjects/CompanyModuleObject.php +++ b/app/Classes/Modules/Companies/DataTransferObjects/CompanyModuleObject.php @@ -15,17 +15,21 @@ class CompanyModuleObject implements DataTransferObject /** @var int|null */ private $status; + /** @var string */ + private $unity_hash_id; + /** * CompanyObject constructor. * @param int $companyId * @param int|null $type * @param int|null $status */ - public function __construct(int $companyId, int $type, int $status) + public function __construct(int $companyId, int $type, int $status, ?string $unity_hash_id) { $this->companyId = $companyId; $this->type = $type; $this->status = $status; + $this->unity_hash_id = $unity_hash_id; } /** @@ -51,4 +55,12 @@ class CompanyModuleObject implements DataTransferObject { return $this->status; } + + /** + * @return string + */ + public function getUnityHashId(): string + { + return $this->unity_hash_id; + } } diff --git a/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php b/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php index 3bd52d5c..94818a7a 100644 --- a/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php +++ b/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php @@ -20,6 +20,9 @@ class CompanyObject implements DataTransferObject /** @var int|null */ private $status; + /** @var string */ + private $unity_hash_id; + /** * CompanyObject constructor. * @param string $name @@ -71,7 +74,4 @@ class CompanyObject implements DataTransferObject return $this->status; } - - - -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php b/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php index 2d117fc1..8569db18 100644 --- a/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php +++ b/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php @@ -2,13 +2,12 @@ namespace App\Classes\Modules\Companies\Processors; +use App\Classes\Modules\Unity\Processors\CreateEntityProcessor; use App\Classes\Modules\Companies\DataTransferObjects\CompanyModuleObject; use App\Classes\Modules\Companies\Services\CreatesCompanyModule; - +use App\Classes\Modules\Companies\Standards\Rules\CanCreateCompanyModule; use App\Classes\ValueObjects\Constants\BusinessType; - use Illuminate\Database\Eloquent\Model; - use App\Models\Company; class CreateCompanyModuleProcessor @@ -17,13 +16,19 @@ class CreateCompanyModuleProcessor /** @var CreatesCompanyModule */ private $createsCompanyModule; + private $createUnityEntityProcessor; + + private $canCreateCompanyModule; + /** * CreateCompanyModuleProcessor constructor. * @param CreatesCompanyModule $createsCompanyModule */ - public function __construct(CreatesCompanyModule $createsCompanyModule) + public function __construct(CanCreateCompanyModule $canCreateCompanyModule, CreatesCompanyModule $createsCompanyModule, CreateEntityProcessor $createUnityEntityProcessor) { $this->createsCompanyModule = $createsCompanyModule; + $this->createUnityEntityProcessor = $createUnityEntityProcessor; + $this->canCreateCompanyModule = $canCreateCompanyModule; } /** @@ -32,12 +37,17 @@ class CreateCompanyModuleProcessor */ public function execute(Company $company , ?int $businessType): Model { + $unityEntity = $this->createUnityEntityProcessor->execute($company->name); + $company_module_object = new CompanyModuleObject( $company->id, $businessType??BusinessType::IMPORTER, $company->status, + $unityEntity->hash_id ); + $this->canCreateCompanyModule->passes($company_module_object); + return $this->createsCompanyModule->execute($company_module_object); } } diff --git a/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php b/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php index 95ef5eb9..09516c9d 100644 --- a/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php +++ b/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php @@ -50,8 +50,8 @@ class CreateCompanyProcessor $companyName, mt_rand(1000, 9999).(new GeneratesInitials())->name($companyName)->length(3)->generate(), $companyType, - $status); - + $status + ); $this->canCreateCompany->passes($company_object); @@ -59,4 +59,4 @@ class CreateCompanyProcessor } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Companies/Services/CreatesCompanyModule.php b/app/Classes/Modules/Companies/Services/CreatesCompanyModule.php index ae6b2b78..ba974838 100644 --- a/app/Classes/Modules/Companies/Services/CreatesCompanyModule.php +++ b/app/Classes/Modules/Companies/Services/CreatesCompanyModule.php @@ -20,6 +20,7 @@ class CreatesCompanyModule extends AbstractUpdateRecord $model->company_id = $object->getCompanyId(); $model->type = $object->getType(); $model->status = $object->getStatus(); + $model->unity_hash_id = $object->getUnityHashId(); return $this->handler($model); } diff --git a/app/Classes/Modules/Companies/Standards/Rules/CanCreateCompanyModule.php b/app/Classes/Modules/Companies/Standards/Rules/CanCreateCompanyModule.php new file mode 100644 index 00000000..e017c7f1 --- /dev/null +++ b/app/Classes/Modules/Companies/Standards/Rules/CanCreateCompanyModule.php @@ -0,0 +1,51 @@ +companyModuleValidation = $companyModuleValidation; + } + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + } + + /** + * @param CompanyObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->companyModuleValidation->validate($object); + } + + /** + * @param CompanyObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } +} diff --git a/app/Classes/Modules/Companies/Standards/Validators/CompanyModuleValidation.php b/app/Classes/Modules/Companies/Standards/Validators/CompanyModuleValidation.php new file mode 100644 index 00000000..f12dc234 --- /dev/null +++ b/app/Classes/Modules/Companies/Standards/Validators/CompanyModuleValidation.php @@ -0,0 +1,39 @@ + $object->getUnityHashId() + ]; + } + + /** + * @param string $type + * @return array + */ + protected function rules(): array + { + return [ + 'unity_hash_id' => 'required' + ]; + } + + /** + * @return array + */ + protected function messages(): array + { + return []; + } +} diff --git a/app/Classes/Modules/Companies/Standards/Validators/CompanyValidation.php b/app/Classes/Modules/Companies/Standards/Validators/CompanyValidation.php index 5ea263ac..e9809fff 100644 --- a/app/Classes/Modules/Companies/Standards/Validators/CompanyValidation.php +++ b/app/Classes/Modules/Companies/Standards/Validators/CompanyValidation.php @@ -15,7 +15,7 @@ class CompanyValidation extends AbstractValidation { return [ 'company_name' => $object->getName(), - 'company_reference' => $object->getReference(), + 'company_reference' => $object->getReference() ]; } diff --git a/app/Classes/Modules/Unity/Processors/CreateContractProcessor.php b/app/Classes/Modules/Unity/Processors/CreateContractProcessor.php new file mode 100644 index 00000000..70756d75 --- /dev/null +++ b/app/Classes/Modules/Unity/Processors/CreateContractProcessor.php @@ -0,0 +1,21 @@ +getContractObligations = $getContractObligations; + } + + public function execute(){ + return $this->getContractObligations->execute(); + } +} diff --git a/app/Classes/Modules/Unity/Processors/UpdateObligationStatus.php b/app/Classes/Modules/Unity/Processors/UpdateObligationStatus.php new file mode 100644 index 00000000..951b52fb --- /dev/null +++ b/app/Classes/Modules/Unity/Processors/UpdateObligationStatus.php @@ -0,0 +1,21 @@ +getContractObligations = $getContractObligations; + } + + public function execute(){ + return $this->getContractObligations->execute(); + } +} diff --git a/app/Classes/Modules/Unity/Services/GetAccessToken.php b/app/Classes/Modules/Unity/Services/GetAccessToken.php index 353389ed..fe1e78be 100644 --- a/app/Classes/Modules/Unity/Services/GetAccessToken.php +++ b/app/Classes/Modules/Unity/Services/GetAccessToken.php @@ -21,7 +21,7 @@ class GetAccessToken $accesToken=''; if($this->unityConfig['default_auth']=='login'){ $loginDetails = $this->unityConfig['auth']['login']; - $response = Http::post($this->unityConfig['url'].$loginDetails['endpoint'], [ + $response = Http::post($this->unityConfig['url'].$this->unityConfig['endpoint']['login'], [ 'email' => $loginDetails['username'], 'password' => $loginDetails['password'], ])->object(); diff --git a/config/unity.php b/config/unity.php index bcca587b..7408dc8c 100644 --- a/config/unity.php +++ b/config/unity.php @@ -7,6 +7,16 @@ return [ 'url' => env('UNITY_API_URL', 'https://dev.unity.izyim.com/user-backsys/api/'), + 'endpoint' => [ + 'login' => env('UNITY_LOGIN_ENDPOINT','login'), + 'create_entity' => env('UNITY_CREATE_ENTITY_ENDPOINT','entity/store'), + 'get_contract_obligations' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), + 'create_contract' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), + 'update_obligation_status' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), + ], + + 'default_auth' => env('UNITY_AUTH','login'), + 'auth' => [ 'api_key' => [ @@ -16,7 +26,6 @@ return [ 'login' => [ 'username' => env('UNITY_LOGIN_USERNAME','one@izyim.com'), 'password' => env('UNITY_LOGIN_PASSWORD','pass123'), - 'endpoint' => env('UNITY_LOGIN_ENDPOINT','login') ], ], @@ -25,20 +34,13 @@ return [ 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','entity/store'), - 'default_auth' => env('UNITY_AUTH','login'), - 'on_error_email' => env('UNITY_ON_ERROR_EMAIL','dev@shipping.com,dev@unity.com'), 'contract_template_id' => env('UNITY_CONTRACT_TEMPLATE_ID', 102), - 'contract_template_cache' => env('UNITY_CONTRACT_TEMPLATE_CACHE','60'), + 'contract_template_hash_id' => env('UNITY_CONTRACT_TEMPLATE_HASH_ID', '5lpn70mA2VmgxoekgYrJ'), - 'entities' => [ - 'xxx_key' => Constant\OrderEntity::SUPPLIER, - 'zzz_key' => Constant\OrderEntity::WAREHOUSE_YIWU, - 'vvv_key' => Constant\OrderEntity::WAREHOUSE_GUANG_ZHOU, - 'wwww_key' => Constant\OrderEntity::SUPPLIER, - ], + 'contract_template_cache' => env('UNITY_CONTRACT_TEMPLATE_CACHE','60'), 'obligations' => [ 'PACKING' => Constant\OrderSteps::PACKING, diff --git a/database/migrations/2021_07_22_145827_modify_company_table.php b/database/migrations/2021_07_22_145827_modify_company_table.php new file mode 100644 index 00000000..59bc2b9e --- /dev/null +++ b/database/migrations/2021_07_22_145827_modify_company_table.php @@ -0,0 +1,30 @@ +string('unity_hash_id',200)->nullable()->after('status'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} From d74d12da9692a917dc31e503b51d9b1edffcf9f3 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 01:16:19 +0800 Subject: [PATCH 06/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreatePackageLogic.php | 79 +++++++++++++++ .../ControllersLogic/DeletePackageLogic.php | 73 ++++++++++++++ .../ControllersLogic/FetchPackageLogic.php | 66 +++++++++++++ .../ControllersLogic/ListPackagesLogic.php | 66 +++++++++++++ .../ControllersLogic/UpdatePackageLogic.php | 86 +++++++++++++++++ .../DataTransferObjects/PackageObject.php | 96 +++++++++++++++++++ .../Packages/Services/CreatesPackage.php | 32 +++++++ .../Packages/Services/DeletesPackage.php | 19 ++++ .../Packages/Services/FetchesPackage.php | 33 +++++++ .../Packages/Services/ListsPackages.php | 33 +++++++ .../Packages/Services/UpdatesPackage.php | 33 +++++++ .../Standards/Rules/CanCreatePackage.php | 57 +++++++++++ .../Standards/Rules/CanDeletePackage.php | 43 +++++++++ .../Standards/Rules/CanFetchPackage.php | 43 +++++++++ .../Standards/Rules/CanListPackages.php | 43 +++++++++ .../Standards/Rules/CanUpdatePackage.php | 57 +++++++++++ .../Validators/PackageValidation.php | 42 ++++++++ .../CreatePackingListLogic.php | 79 +++++++++++++++ .../DeletePackingListLogic.php | 73 ++++++++++++++ .../FetchPackingListLogic.php | 66 +++++++++++++ .../ListPackingListsLogic.php | 66 +++++++++++++ .../UpdatePackingListLogic.php | 86 +++++++++++++++++ .../DataTransferObjects/PackingListObject.php | 96 +++++++++++++++++++ .../Services/CreatesPackingList.php | 32 +++++++ .../Services/DeletesPackingList.php | 19 ++++ .../Services/FetchesPackingList.php | 33 +++++++ .../Services/ListsPackingLists.php | 33 +++++++ .../Services/UpdatesPackingList.php | 33 +++++++ .../Standards/Rules/CanCreatePackingList.php | 57 +++++++++++ .../Standards/Rules/CanDeletePackingList.php | 43 +++++++++ .../Standards/Rules/CanFetchPackingList.php | 43 +++++++++ .../Standards/Rules/CanListPackingLists.php | 43 +++++++++ .../Standards/Rules/CanUpdatePackingList.php | 57 +++++++++++ .../Validators/PackingListValidation.php | 42 ++++++++ .../Packages/CreatePackageController.php | 20 ++++ .../Packages/DeletePackageController.php | 20 ++++ .../Packages/FetchPackageController.php | 20 ++++ .../Packages/ListPackagesController.php | 20 ++++ .../Packages/UpdatePackageController.php | 20 ++++ .../CreatePackingListController.php | 20 ++++ .../DeletePackingListController.php | 20 ++++ .../FetchPackingListController.php | 20 ++++ .../ListPackingListsController.php | 20 ++++ .../UpdatePackingListController.php | 20 ++++ .../Remarks/CreateRemarkController.php | 4 +- .../Remarks/DeleteRemarkController.php | 4 +- .../Remarks/FetchRemarkController.php | 4 +- .../Remarks/ListRemarksController.php | 6 +- .../Remarks/UpdateRemarkController.php | 4 +- routes/api.php | 12 ++- routes/package.php | 19 ++++ 51 files changed, 2042 insertions(+), 13 deletions(-) create mode 100644 app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php create mode 100644 app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php create mode 100644 app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php create mode 100644 app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php create mode 100644 app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php create mode 100644 app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php create mode 100644 app/Classes/Modules/Packages/Services/CreatesPackage.php create mode 100644 app/Classes/Modules/Packages/Services/DeletesPackage.php create mode 100644 app/Classes/Modules/Packages/Services/FetchesPackage.php create mode 100644 app/Classes/Modules/Packages/Services/ListsPackages.php create mode 100644 app/Classes/Modules/Packages/Services/UpdatesPackage.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanFetchPackage.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanListPackages.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanUpdatePackage.php create mode 100644 app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php create mode 100644 app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php create mode 100644 app/Classes/Modules/PackingLists/Services/CreatesPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Services/DeletesPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Services/FetchesPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Services/ListsPackingLists.php create mode 100644 app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanFetchPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanListPackingLists.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanUpdatePackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php create mode 100644 app/Http/Controllers/Packages/CreatePackageController.php create mode 100644 app/Http/Controllers/Packages/DeletePackageController.php create mode 100644 app/Http/Controllers/Packages/FetchPackageController.php create mode 100644 app/Http/Controllers/Packages/ListPackagesController.php create mode 100644 app/Http/Controllers/Packages/UpdatePackageController.php create mode 100644 app/Http/Controllers/PackingLists/CreatePackingListController.php create mode 100644 app/Http/Controllers/PackingLists/DeletePackingListController.php create mode 100644 app/Http/Controllers/PackingLists/FetchPackingListController.php create mode 100644 app/Http/Controllers/PackingLists/ListPackingListsController.php create mode 100644 app/Http/Controllers/PackingLists/UpdatePackingListController.php create mode 100644 routes/package.php diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php new file mode 100644 index 00000000..4eb7665e --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -0,0 +1,79 @@ + 'Created Remark', + 'message' => 'You have successfully created a new Remark' + ]; + } + + /** @var CanCreateRemark */ + private $canCreateRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesRemark */ + private $createsRemark; + + /** + * CreateRemarkLogic constructor. + * @param CanCreateRemark $canCreateRemark + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesRemark $createsRemark + */ + public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + { + $this->canCreateRemark = $canCreateRemark; + $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesCompany = $fetchesCompany; + $this->createsRemark = $createsRemark; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreateRemark->passes($object); + + $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new RemarkResource($query)); + + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php new file mode 100644 index 00000000..f731cca5 --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php @@ -0,0 +1,73 @@ + 'Deleted Remark', + 'message' => 'You have successfully deleted a Remark' + ]; + } + + + /** @var CanDeleteRemark */ + private $canDeleteRemark; + + /** @var DeletesRemark */ + private $deletesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * DeleteRemarkControllersLogic constructor. + * @param CanDeleteRemark $canDeleteRemark + * @param DeletesRemark $deletesRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanDeleteRemark $canDeleteRemark, DeletesRemark $deletesRemark, FetchesRemark $fetchesRemark) + { + $this->canDeleteRemark = $canDeleteRemark; + $this->deletesRemark = $deletesRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $this->deletesRemark->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php new file mode 100644 index 00000000..3ff151d3 --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remark', + 'message' => 'You have successfully retrieved a Remark' + ]; + } + + /** @var CanFetchRemark */ + private $canFetchRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * FetchRemarkControllersLogic constructor. + * @param CanFetchRemark $canFetchRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanFetchRemark $canFetchRemark, FetchesRemark $fetchesRemark) + { + $this->canFetchRemark = $canFetchRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new RemarkResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php b/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php new file mode 100644 index 00000000..a7d7ff43 --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remarks', + 'message' => 'You have successfully retrieved a list of Remarks' + ]; + } + + /** @var CanListRemarks */ + private $canListRemarks; + + /** @var ListsRemarks */ + private $listsRemarks; + + /** + * ListRemarksLogic constructor. + * @param CanListRemarks $canListRemarks + * @param ListsRemarks $listsRemarks + */ + public function __construct(CanListRemarks $canListRemarks, ListsRemarks $listsRemarks) + { + $this->canListRemarks = $canListRemarks; + $this->listsRemarks = $listsRemarks; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListRemarks->passes(); + + $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(RemarkResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php new file mode 100644 index 00000000..020906eb --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php @@ -0,0 +1,86 @@ + 'Updated Remark', + 'message' => 'You have successfully updated the Remark' + ]; + } + + /** @var CanUpdateRemark */ + private $canUpdateRemark; + + /** @var UpdatesRemark */ + private $updatesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateRemarkLogic constructor. + * @param CanUpdateRemark $canUpdateRemark + * @param UpdatesRemark $updatesRemark + * @param FetchesRemark $fetchesRemark + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateRemark = $canUpdateRemark; + $this->updatesRemark = $updatesRemark; + $this->fetchesRemark = $fetchesRemark; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateRemark->passes($object); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $query = $this->updatesRemark->execute($query, $object); + + return $this->resourceResponse(new RemarkResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php new file mode 100644 index 00000000..67beaa30 --- /dev/null +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php @@ -0,0 +1,96 @@ +streetOne = $streetOne; + $this->streetTwo = $streetTwo; + $this->countryId = $countryId; + $this->stateId = $stateId; + $this->districtId = $districtId; + $this->postCode = $postCode; + } + + /** + * @return string + */ + public function getStreetOne(): string + { + return $this->streetOne; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->streetTwo; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->countryId; + } + + /** + * @return int + */ + public function getStateId(): int + { + return $this->stateId; + } + + /** + * @return int + */ + public function getDistrictId(): int + { + return $this->districtId; + } + + /** + * @return int + */ + public function getPostCode(): int + { + return $this->postCode; + } + + +} diff --git a/app/Classes/Modules/Packages/Services/CreatesPackage.php b/app/Classes/Modules/Packages/Services/CreatesPackage.php new file mode 100644 index 00000000..c4067869 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/CreatesPackage.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->Remarks(), $model); + + } +} diff --git a/app/Classes/Modules/Packages/Services/DeletesPackage.php b/app/Classes/Modules/Packages/Services/DeletesPackage.php new file mode 100644 index 00000000..4c29be9d --- /dev/null +++ b/app/Classes/Modules/Packages/Services/DeletesPackage.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/Packages/Services/FetchesPackage.php b/app/Classes/Modules/Packages/Services/FetchesPackage.php new file mode 100644 index 00000000..a3b5c765 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/FetchesPackage.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Packages/Services/ListsPackages.php b/app/Classes/Modules/Packages/Services/ListsPackages.php new file mode 100644 index 00000000..53479558 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/ListsPackages.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/Packages/Services/UpdatesPackage.php b/app/Classes/Modules/Packages/Services/UpdatesPackage.php new file mode 100644 index 00000000..082e2281 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/UpdatesPackage.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->district_id = $object->getDistrictId(); + $model->state_id = $object->getStateId(); + $model->postcode = $object->getPostCode(); + $model->country_id = $object->getCountryId(); + //$model->default = $object->getDefault(); + //$model->billing = $object->getBilling(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php new file mode 100644 index 00000000..fc51178f --- /dev/null +++ b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php @@ -0,0 +1,57 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php b/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php new file mode 100644 index 00000000..7ddece31 --- /dev/null +++ b/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php @@ -0,0 +1,43 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php new file mode 100644 index 00000000..25c9dfee --- /dev/null +++ b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php @@ -0,0 +1,42 @@ + $object->getStreetOne(), + 'street_two' => $object->getStreetTwo(), + 'district_id' => $object->getDistrictId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'street_one' => 'required', + 'district_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php new file mode 100644 index 00000000..4eb7665e --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -0,0 +1,79 @@ + 'Created Remark', + 'message' => 'You have successfully created a new Remark' + ]; + } + + /** @var CanCreateRemark */ + private $canCreateRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesRemark */ + private $createsRemark; + + /** + * CreateRemarkLogic constructor. + * @param CanCreateRemark $canCreateRemark + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesRemark $createsRemark + */ + public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + { + $this->canCreateRemark = $canCreateRemark; + $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesCompany = $fetchesCompany; + $this->createsRemark = $createsRemark; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreateRemark->passes($object); + + $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new RemarkResource($query)); + + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php new file mode 100644 index 00000000..f731cca5 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php @@ -0,0 +1,73 @@ + 'Deleted Remark', + 'message' => 'You have successfully deleted a Remark' + ]; + } + + + /** @var CanDeleteRemark */ + private $canDeleteRemark; + + /** @var DeletesRemark */ + private $deletesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * DeleteRemarkControllersLogic constructor. + * @param CanDeleteRemark $canDeleteRemark + * @param DeletesRemark $deletesRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanDeleteRemark $canDeleteRemark, DeletesRemark $deletesRemark, FetchesRemark $fetchesRemark) + { + $this->canDeleteRemark = $canDeleteRemark; + $this->deletesRemark = $deletesRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $this->deletesRemark->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php new file mode 100644 index 00000000..3ff151d3 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remark', + 'message' => 'You have successfully retrieved a Remark' + ]; + } + + /** @var CanFetchRemark */ + private $canFetchRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** + * FetchRemarkControllersLogic constructor. + * @param CanFetchRemark $canFetchRemark + * @param FetchesRemark $fetchesRemark + */ + public function __construct(CanFetchRemark $canFetchRemark, FetchesRemark $fetchesRemark) + { + $this->canFetchRemark = $canFetchRemark; + $this->fetchesRemark = $fetchesRemark; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchRemark->passes(); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new RemarkResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php new file mode 100644 index 00000000..a7d7ff43 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Remarks', + 'message' => 'You have successfully retrieved a list of Remarks' + ]; + } + + /** @var CanListRemarks */ + private $canListRemarks; + + /** @var ListsRemarks */ + private $listsRemarks; + + /** + * ListRemarksLogic constructor. + * @param CanListRemarks $canListRemarks + * @param ListsRemarks $listsRemarks + */ + public function __construct(CanListRemarks $canListRemarks, ListsRemarks $listsRemarks) + { + $this->canListRemarks = $canListRemarks; + $this->listsRemarks = $listsRemarks; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListRemarks->passes(); + + $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(RemarkResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php new file mode 100644 index 00000000..020906eb --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php @@ -0,0 +1,86 @@ + 'Updated Remark', + 'message' => 'You have successfully updated the Remark' + ]; + } + + /** @var CanUpdateRemark */ + private $canUpdateRemark; + + /** @var UpdatesRemark */ + private $updatesRemark; + + /** @var FetchesRemark */ + private $fetchesRemark; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateRemarkLogic constructor. + * @param CanUpdateRemark $canUpdateRemark + * @param UpdatesRemark $updatesRemark + * @param FetchesRemark $fetchesRemark + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateRemark = $canUpdateRemark; + $this->updatesRemark = $updatesRemark; + $this->fetchesRemark = $fetchesRemark; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateRemark->passes($object); + + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + + $query = $this->updatesRemark->execute($query, $object); + + return $this->resourceResponse(new RemarkResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php new file mode 100644 index 00000000..67beaa30 --- /dev/null +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php @@ -0,0 +1,96 @@ +streetOne = $streetOne; + $this->streetTwo = $streetTwo; + $this->countryId = $countryId; + $this->stateId = $stateId; + $this->districtId = $districtId; + $this->postCode = $postCode; + } + + /** + * @return string + */ + public function getStreetOne(): string + { + return $this->streetOne; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->streetTwo; + } + + /** + * @return int + */ + public function getCountryId(): int + { + return $this->countryId; + } + + /** + * @return int + */ + public function getStateId(): int + { + return $this->stateId; + } + + /** + * @return int + */ + public function getDistrictId(): int + { + return $this->districtId; + } + + /** + * @return int + */ + public function getPostCode(): int + { + return $this->postCode; + } + + +} diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php new file mode 100644 index 00000000..c4067869 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->Remarks(), $model); + + } +} diff --git a/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php b/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php new file mode 100644 index 00000000..4c29be9d --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php b/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php new file mode 100644 index 00000000..a3b5c765 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php b/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php new file mode 100644 index 00000000..53479558 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php new file mode 100644 index 00000000..082e2281 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php @@ -0,0 +1,33 @@ +company_id = $object->getCompanyId(); + $model->street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->district_id = $object->getDistrictId(); + $model->state_id = $object->getStateId(); + $model->postcode = $object->getPostCode(); + $model->country_id = $object->getCountryId(); + //$model->default = $object->getDefault(); + //$model->billing = $object->getBilling(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php new file mode 100644 index 00000000..fc51178f --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php @@ -0,0 +1,57 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php new file mode 100644 index 00000000..7ddece31 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php @@ -0,0 +1,43 @@ +RemarkValidation = $RemarkValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param RemarkObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->RemarkValidation->validate($object); + + } + + + /** + * @param RemarkObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php new file mode 100644 index 00000000..25c9dfee --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php @@ -0,0 +1,42 @@ + $object->getStreetOne(), + 'street_two' => $object->getStreetTwo(), + 'district_id' => $object->getDistrictId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'street_one' => 'required', + 'district_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Http/Controllers/Packages/CreatePackageController.php b/app/Http/Controllers/Packages/CreatePackageController.php new file mode 100644 index 00000000..458936fa --- /dev/null +++ b/app/Http/Controllers/Packages/CreatePackageController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/DeletePackageController.php b/app/Http/Controllers/Packages/DeletePackageController.php new file mode 100644 index 00000000..a2dad9d0 --- /dev/null +++ b/app/Http/Controllers/Packages/DeletePackageController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/FetchPackageController.php b/app/Http/Controllers/Packages/FetchPackageController.php new file mode 100644 index 00000000..b3c1db46 --- /dev/null +++ b/app/Http/Controllers/Packages/FetchPackageController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/ListPackagesController.php b/app/Http/Controllers/Packages/ListPackagesController.php new file mode 100644 index 00000000..30367587 --- /dev/null +++ b/app/Http/Controllers/Packages/ListPackagesController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/UpdatePackageController.php b/app/Http/Controllers/Packages/UpdatePackageController.php new file mode 100644 index 00000000..6c945c30 --- /dev/null +++ b/app/Http/Controllers/Packages/UpdatePackageController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/CreatePackingListController.php b/app/Http/Controllers/PackingLists/CreatePackingListController.php new file mode 100644 index 00000000..9f6bc16d --- /dev/null +++ b/app/Http/Controllers/PackingLists/CreatePackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/DeletePackingListController.php b/app/Http/Controllers/PackingLists/DeletePackingListController.php new file mode 100644 index 00000000..f2b18e5d --- /dev/null +++ b/app/Http/Controllers/PackingLists/DeletePackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/FetchPackingListController.php b/app/Http/Controllers/PackingLists/FetchPackingListController.php new file mode 100644 index 00000000..0c2e3afb --- /dev/null +++ b/app/Http/Controllers/PackingLists/FetchPackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/ListPackingListsController.php b/app/Http/Controllers/PackingLists/ListPackingListsController.php new file mode 100644 index 00000000..d006c892 --- /dev/null +++ b/app/Http/Controllers/PackingLists/ListPackingListsController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/UpdatePackingListController.php b/app/Http/Controllers/PackingLists/UpdatePackingListController.php new file mode 100644 index 00000000..008b1b2a --- /dev/null +++ b/app/Http/Controllers/PackingLists/UpdatePackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Remarks/CreateRemarkController.php b/app/Http/Controllers/Remarks/CreateRemarkController.php index 313a25b6..a66aa8fd 100644 --- a/app/Http/Controllers/Remarks/CreateRemarkController.php +++ b/app/Http/Controllers/Remarks/CreateRemarkController.php @@ -1,8 +1,8 @@ execute($request); } diff --git a/app/Http/Controllers/Remarks/UpdateRemarkController.php b/app/Http/Controllers/Remarks/UpdateRemarkController.php index b18efcf7..ae53f6b7 100644 --- a/app/Http/Controllers/Remarks/UpdateRemarkController.php +++ b/app/Http/Controllers/Remarks/UpdateRemarkController.php @@ -1,8 +1,8 @@ 'api', 'prefix' => 'v1', 'as' => 'api.'], function // require __DIR__ . '/bank.php'; - require __DIR__ . '/order.php'; - require __DIR__ . '/currency.php'; require __DIR__ . '/address.php'; @@ -50,6 +48,16 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function require __DIR__ . '/receipt.php'; + require __DIR__ . '/order.php'; + + require __DIR__ . '/package.php'; + + require __DIR__ . '/remark.php'; + + require __DIR__ . '/transport.php'; + + require __DIR__ . '/schedule.php'; + // require __DIR__ . '/announcement.php'; // require __DIR__ . '/wallet.php'; // require __DIR__ . '/rate.php'; diff --git a/routes/package.php b/routes/package.php new file mode 100644 index 00000000..641e183c --- /dev/null +++ b/routes/package.php @@ -0,0 +1,19 @@ + 'Packages', 'as' => 'package.', 'prefix' => 'package'], function () { + Route::get('/{id}/show', 'FetchPackageController@fetch')->name('show'); + Route::get('/list', 'ListPackageController@list')->name('list'); + Route::post('/create', 'CreatePackageController@create')->name('create'); + Route::put('/update/{id}', 'UpdatePackageController@update')->name('update'); + Route::delete('/delete/{id}', 'DeletePackageController@delete')->name('delete'); +}); + +Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' => 'packing_list'], function () { + Route::get('/{id}/show', 'FetchPackingListController@fetch')->name('show'); + Route::get('/list', 'ListPackingListController@list')->name('list'); + Route::post('/create', 'CreatePackingListController@create')->name('create'); + Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); + Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); +}); From 67e104d7e7832ed17feb81bab4cf6df3e5ee74e5 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 01:25:48 +0800 Subject: [PATCH 07/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreatePackageLogic.php | 46 +++++++------- .../ControllersLogic/DeletePackageLogic.php | 48 +++++++-------- .../ControllersLogic/FetchPackageLogic.php | 40 ++++++------- .../ControllersLogic/ListPackagesLogic.php | 40 ++++++------- .../ControllersLogic/UpdatePackageLogic.php | 60 +++++++++---------- .../DataTransferObjects/PackageObject.php | 6 +- .../Packages/Services/CreatesPackage.php | 16 ++--- .../Packages/Services/DeletesPackage.php | 10 ++-- .../Packages/Services/FetchesPackage.php | 14 ++--- .../Packages/Services/ListsPackages.php | 14 ++--- .../Packages/Services/UpdatesPackage.php | 14 ++--- .../Standards/Rules/CanCreatePackage.php | 26 ++++---- .../Standards/Rules/CanDeletePackage.php | 10 ++-- .../Standards/Rules/CanFetchPackage.php | 10 ++-- .../Standards/Rules/CanListPackages.php | 10 ++-- .../Standards/Rules/CanUpdatePackage.php | 26 ++++---- .../Validators/PackageValidation.php | 8 +-- .../CreatePackingListLogic.php | 46 +++++++------- .../DeletePackingListLogic.php | 48 +++++++-------- .../FetchPackingListLogic.php | 40 ++++++------- .../ListPackingListsLogic.php | 40 ++++++------- .../UpdatePackingListLogic.php | 60 +++++++++---------- .../DataTransferObjects/PackingListObject.php | 6 +- .../Services/CreatesPackingList.php | 16 ++--- .../Services/DeletesPackingList.php | 10 ++-- .../Services/FetchesPackingList.php | 14 ++--- .../Services/ListsPackingLists.php | 14 ++--- .../Services/UpdatesPackingList.php | 14 ++--- .../Standards/Rules/CanCreatePackingList.php | 26 ++++---- .../Standards/Rules/CanDeletePackingList.php | 10 ++-- .../Standards/Rules/CanFetchPackingList.php | 10 ++-- .../Standards/Rules/CanListPackingLists.php | 10 ++-- .../Standards/Rules/CanUpdatePackingList.php | 26 ++++---- .../Validators/PackingListValidation.php | 8 +-- 34 files changed, 398 insertions(+), 398 deletions(-) diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php index 4eb7665e..f3492f4f 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -1,20 +1,20 @@ 'Created Remark', - 'message' => 'You have successfully created a new Remark' + 'title' => 'Created Package', + 'message' => 'You have successfully created a new Package' ]; } - /** @var CanCreateRemark */ - private $canCreateRemark; + /** @var CanCreatePackage */ + private $canCreatePackage; /** @var FetchesDistrict */ private $fetchesDistrict; @@ -36,22 +36,22 @@ class CreateRemarkLogic extends AbstractControllerLogic /** @var FetchesCompany */ private $fetchesCompany; - /** @var CreatesRemark */ - private $createsRemark; + /** @var CreatesPackage */ + private $createsPackage; /** - * CreateRemarkLogic constructor. - * @param CanCreateRemark $canCreateRemark + * CreatePackageLogic constructor. + * @param CanCreatePackage $canCreatePackage * @param FetchesDistrict $fetchesDistrict * @param FetchesCompany $fetchesCompany - * @param CreatesRemark $createsRemark + * @param CreatesPackage $createsPackage */ - public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + public function __construct(CanCreatePackage $canCreatePackage, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesPackage $createsPackage) { - $this->canCreateRemark = $canCreateRemark; + $this->canCreatePackage = $canCreatePackage; $this->fetchesDistrict = $fetchesDistrict; $this->fetchesCompany = $fetchesCompany; - $this->createsRemark = $createsRemark; + $this->createsPackage = $createsPackage; } /** @@ -66,13 +66,13 @@ class CreateRemarkLogic extends AbstractControllerLogic $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new PackageObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - $this->canCreateRemark->passes($object); + $this->canCreatePackage->passes($object); - $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsPackage->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackageResource($query)); } diff --git a/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php index f731cca5..3fc88e79 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/DeletePackageLogic.php @@ -1,49 +1,49 @@ 'Deleted Remark', - 'message' => 'You have successfully deleted a Remark' + 'title' => 'Deleted Package', + 'message' => 'You have successfully deleted a Package' ]; } - /** @var CanDeleteRemark */ - private $canDeleteRemark; + /** @var CanDeletePackage */ + private $canDeletePackage; - /** @var DeletesRemark */ - private $deletesRemark; + /** @var DeletesPackage */ + private $deletesPackage; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackage */ + private $fetchesPackage; /** - * DeleteRemarkControllersLogic constructor. - * @param CanDeleteRemark $canDeleteRemark - * @param DeletesRemark $deletesRemark - * @param FetchesRemark $fetchesRemark + * DeletePackageControllersLogic constructor. + * @param CanDeletePackage $canDeletePackage + * @param DeletesPackage $deletesPackage + * @param FetchesPackage $fetchesPackage */ - public function __construct(CanDeleteRemark $canDeleteRemark, DeletesRemark $deletesRemark, FetchesRemark $fetchesRemark) + public function __construct(CanDeletePackage $canDeletePackage, DeletesPackage $deletesPackage, FetchesPackage $fetchesPackage) { - $this->canDeleteRemark = $canDeleteRemark; - $this->deletesRemark = $deletesRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canDeletePackage = $canDeletePackage; + $this->deletesPackage = $deletesPackage; + $this->fetchesPackage = $fetchesPackage; } @@ -56,11 +56,11 @@ class DeleteRemarkLogic extends AbstractControllerLogic { try { - $this->canDeleteRemark->passes(); + $this->canDeletePackage->passes(); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackage->execute(['id' => $request->route('id')]); - $this->deletesRemark->execute($query); + $this->deletesPackage->execute($query); return $this->response([]); diff --git a/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php index 3ff151d3..20ea0a94 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/FetchPackageLogic.php @@ -1,17 +1,17 @@ 'Retrieved Remark', - 'message' => 'You have successfully retrieved a Remark' + 'title' => 'Retrieved Package', + 'message' => 'You have successfully retrieved a Package' ]; } - /** @var CanFetchRemark */ - private $canFetchRemark; + /** @var CanFetchPackage */ + private $canFetchPackage; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackage */ + private $fetchesPackage; /** - * FetchRemarkControllersLogic constructor. - * @param CanFetchRemark $canFetchRemark - * @param FetchesRemark $fetchesRemark + * FetchPackageControllersLogic constructor. + * @param CanFetchPackage $canFetchPackage + * @param FetchesPackage $fetchesPackage */ - public function __construct(CanFetchRemark $canFetchRemark, FetchesRemark $fetchesRemark) + public function __construct(CanFetchPackage $canFetchPackage, FetchesPackage $fetchesPackage) { - $this->canFetchRemark = $canFetchRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canFetchPackage = $canFetchPackage; + $this->fetchesPackage = $fetchesPackage; } @@ -51,11 +51,11 @@ class FetchRemarkLogic extends AbstractControllerLogic { try { - $this->canFetchRemark->passes(); + $this->canFetchPackage->passes(); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackage->execute(['id' => $request->route('id')]); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackageResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); diff --git a/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php b/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php index a7d7ff43..69acf7b6 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php @@ -1,17 +1,17 @@ 'Retrieved Remarks', - 'message' => 'You have successfully retrieved a list of Remarks' + 'title' => 'Retrieved Packages', + 'message' => 'You have successfully retrieved a list of Packages' ]; } - /** @var CanListRemarks */ - private $canListRemarks; + /** @var CanListPackages */ + private $canListPackages; - /** @var ListsRemarks */ - private $listsRemarks; + /** @var ListsPackages */ + private $listsPackages; /** - * ListRemarksLogic constructor. - * @param CanListRemarks $canListRemarks - * @param ListsRemarks $listsRemarks + * ListPackagesLogic constructor. + * @param CanListPackages $canListPackages + * @param ListsPackages $listsPackages */ - public function __construct(CanListRemarks $canListRemarks, ListsRemarks $listsRemarks) + public function __construct(CanListPackages $canListPackages, ListsPackages $listsPackages) { - $this->canListRemarks = $canListRemarks; - $this->listsRemarks = $listsRemarks; + $this->canListPackages = $canListPackages; + $this->listsPackages = $listsPackages; } @@ -51,11 +51,11 @@ class ListRemarksLogic extends AbstractControllerLogic { try { - $this->canListRemarks->passes(); + $this->canListPackages->passes(); - $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + $query = $this->listsPackages->execute($this->listsPackages->deserializeFilters($request->input('filters'))); - return $this->collectionResponse(RemarkResource::collection($query)); + return $this->collectionResponse(PackageResource::collection($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); diff --git a/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php index 020906eb..3a844486 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php @@ -1,20 +1,20 @@ 'Updated Remark', - 'message' => 'You have successfully updated the Remark' + 'title' => 'Updated Package', + 'message' => 'You have successfully updated the Package' ]; } - /** @var CanUpdateRemark */ - private $canUpdateRemark; + /** @var CanUpdatePackage */ + private $canUpdatePackage; - /** @var UpdatesRemark */ - private $updatesRemark; + /** @var UpdatesPackage */ + private $updatesPackage; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackage */ + private $fetchesPackage; /** @var FetchesDistrict */ private $fetchesDistrict; /** - * UpdateRemarkLogic constructor. - * @param CanUpdateRemark $canUpdateRemark - * @param UpdatesRemark $updatesRemark - * @param FetchesRemark $fetchesRemark + * UpdatePackageLogic constructor. + * @param CanUpdatePackage $canUpdatePackage + * @param UpdatesPackage $updatesPackage + * @param FetchesPackage $fetchesPackage * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdatePackage $canUpdatePackage, UpdatesPackage $updatesPackage, FetchesPackage $fetchesPackage, FetchesDistrict $fetchesDistrict) { - $this->canUpdateRemark = $canUpdateRemark; - $this->updatesRemark = $updatesRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canUpdatePackage = $canUpdatePackage; + $this->updatesPackage = $updatesPackage; + $this->fetchesPackage = $fetchesPackage; $this->fetchesDistrict = $fetchesDistrict; } @@ -65,16 +65,16 @@ class UpdateRemarkLogic extends AbstractControllerLogic try { $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new PackageObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new PackageObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); - $this->canUpdateRemark->passes($object); + $this->canUpdatePackage->passes($object); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackage->execute(['id' => $request->route('id')]); - $query = $this->updatesRemark->execute($query, $object); + $query = $this->updatesPackage->execute($query, $object); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackageResource($query)); } catch (\Exception $exception){ diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php index 67beaa30..ae6112c1 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php @@ -1,10 +1,10 @@ street_one = $object->getStreetOne(); $model->street_two = $object->getStreetTwo(); $model->country_id = $object->getCountryId(); @@ -26,7 +26,7 @@ class CreatesRemark extends AbstractUpdateRelationshipRecord $model->district_id = $object->getDistrictId(); $model->postcode = $object->getPostCode(); - return $this->handler($company->Remarks(), $model); + return $this->handler($company->Packages(), $model); } } diff --git a/app/Classes/Modules/Packages/Services/DeletesPackage.php b/app/Classes/Modules/Packages/Services/DeletesPackage.php index 4c29be9d..ec780b79 100644 --- a/app/Classes/Modules/Packages/Services/DeletesPackage.php +++ b/app/Classes/Modules/Packages/Services/DeletesPackage.php @@ -1,19 +1,19 @@ handler($model); } } diff --git a/app/Classes/Modules/Packages/Services/FetchesPackage.php b/app/Classes/Modules/Packages/Services/FetchesPackage.php index a3b5c765..310b6620 100644 --- a/app/Classes/Modules/Packages/Services/FetchesPackage.php +++ b/app/Classes/Modules/Packages/Services/FetchesPackage.php @@ -1,23 +1,23 @@ repository = $repository; } diff --git a/app/Classes/Modules/Packages/Services/ListsPackages.php b/app/Classes/Modules/Packages/Services/ListsPackages.php index 53479558..40bdd5bb 100644 --- a/app/Classes/Modules/Packages/Services/ListsPackages.php +++ b/app/Classes/Modules/Packages/Services/ListsPackages.php @@ -1,23 +1,23 @@ repository = $repository; } diff --git a/app/Classes/Modules/Packages/Services/UpdatesPackage.php b/app/Classes/Modules/Packages/Services/UpdatesPackage.php index 082e2281..bdee9f3e 100644 --- a/app/Classes/Modules/Packages/Services/UpdatesPackage.php +++ b/app/Classes/Modules/Packages/Services/UpdatesPackage.php @@ -1,21 +1,21 @@ company_id = $object->getCompanyId(); $model->street_one = $object->getStreetOne(); diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php index fc51178f..d40b1591 100644 --- a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php +++ b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php @@ -1,25 +1,25 @@ RemarkValidation = $RemarkValidation; + $this->PackageValidation = $PackageValidation; } @@ -34,19 +34,19 @@ class CanCreateRemark extends AbstractRule } /** - * @param RemarkObject $object + * @param PackageObject $object * @return bool * @throws \App\Classes\Exceptions\RequestValidationException */ protected function validators($object): bool { - return $this->RemarkValidation->validate($object); + return $this->PackageValidation->validate($object); } /** - * @param RemarkObject $object + * @param PackageObject $object * @return bool */ protected function criteria($object): bool diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php b/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php index 7ddece31..80139d86 100644 --- a/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php +++ b/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php @@ -1,12 +1,12 @@ RemarkValidation = $RemarkValidation; + $this->PackageValidation = $PackageValidation; } @@ -34,19 +34,19 @@ class CanUpdateRemark extends AbstractRule } /** - * @param RemarkObject $object + * @param PackageObject $object * @return bool * @throws \App\Classes\Exceptions\RequestValidationException */ protected function validators($object): bool { - return $this->RemarkValidation->validate($object); + return $this->PackageValidation->validate($object); } /** - * @param RemarkObject $object + * @param PackageObject $object * @return bool */ protected function criteria($object): bool diff --git a/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php index 25c9dfee..2cbf304e 100644 --- a/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php +++ b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php @@ -1,17 +1,17 @@ 'Created Remark', - 'message' => 'You have successfully created a new Remark' + 'title' => 'Created PackingList', + 'message' => 'You have successfully created a new PackingList' ]; } - /** @var CanCreateRemark */ - private $canCreateRemark; + /** @var CanCreatePackingList */ + private $canCreatePackingList; /** @var FetchesDistrict */ private $fetchesDistrict; @@ -36,22 +36,22 @@ class CreateRemarkLogic extends AbstractControllerLogic /** @var FetchesCompany */ private $fetchesCompany; - /** @var CreatesRemark */ - private $createsRemark; + /** @var CreatesPackingList */ + private $createsPackingList; /** - * CreateRemarkLogic constructor. - * @param CanCreateRemark $canCreateRemark + * CreatePackingListLogic constructor. + * @param CanCreatePackingList $canCreatePackingList * @param FetchesDistrict $fetchesDistrict * @param FetchesCompany $fetchesCompany - * @param CreatesRemark $createsRemark + * @param CreatesPackingList $createsPackingList */ - public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + public function __construct(CanCreatePackingList $canCreatePackingList, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) { - $this->canCreateRemark = $canCreateRemark; + $this->canCreatePackingList = $canCreatePackingList; $this->fetchesDistrict = $fetchesDistrict; $this->fetchesCompany = $fetchesCompany; - $this->createsRemark = $createsRemark; + $this->createsPackingList = $createsPackingList; } /** @@ -66,13 +66,13 @@ class CreateRemarkLogic extends AbstractControllerLogic $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - $this->canCreateRemark->passes($object); + $this->canCreatePackingList->passes($object); - $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsPackingList->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackingListResource($query)); } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php index f731cca5..850f196b 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListLogic.php @@ -1,49 +1,49 @@ 'Deleted Remark', - 'message' => 'You have successfully deleted a Remark' + 'title' => 'Deleted PackingList', + 'message' => 'You have successfully deleted a PackingList' ]; } - /** @var CanDeleteRemark */ - private $canDeleteRemark; + /** @var CanDeletePackingList */ + private $canDeletePackingList; - /** @var DeletesRemark */ - private $deletesRemark; + /** @var DeletesPackingList */ + private $deletesPackingList; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackingList */ + private $fetchesPackingList; /** - * DeleteRemarkControllersLogic constructor. - * @param CanDeleteRemark $canDeleteRemark - * @param DeletesRemark $deletesRemark - * @param FetchesRemark $fetchesRemark + * DeletePackingListControllersLogic constructor. + * @param CanDeletePackingList $canDeletePackingList + * @param DeletesPackingList $deletesPackingList + * @param FetchesPackingList $fetchesPackingList */ - public function __construct(CanDeleteRemark $canDeleteRemark, DeletesRemark $deletesRemark, FetchesRemark $fetchesRemark) + public function __construct(CanDeletePackingList $canDeletePackingList, DeletesPackingList $deletesPackingList, FetchesPackingList $fetchesPackingList) { - $this->canDeleteRemark = $canDeleteRemark; - $this->deletesRemark = $deletesRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canDeletePackingList = $canDeletePackingList; + $this->deletesPackingList = $deletesPackingList; + $this->fetchesPackingList = $fetchesPackingList; } @@ -56,11 +56,11 @@ class DeleteRemarkLogic extends AbstractControllerLogic { try { - $this->canDeleteRemark->passes(); + $this->canDeletePackingList->passes(); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - $this->deletesRemark->execute($query); + $this->deletesPackingList->execute($query); return $this->response([]); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php index 3ff151d3..6d722729 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/FetchPackingListLogic.php @@ -1,17 +1,17 @@ 'Retrieved Remark', - 'message' => 'You have successfully retrieved a Remark' + 'title' => 'Retrieved PackingList', + 'message' => 'You have successfully retrieved a PackingList' ]; } - /** @var CanFetchRemark */ - private $canFetchRemark; + /** @var CanFetchPackingList */ + private $canFetchPackingList; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackingList */ + private $fetchesPackingList; /** - * FetchRemarkControllersLogic constructor. - * @param CanFetchRemark $canFetchRemark - * @param FetchesRemark $fetchesRemark + * FetchPackingListControllersLogic constructor. + * @param CanFetchPackingList $canFetchPackingList + * @param FetchesPackingList $fetchesPackingList */ - public function __construct(CanFetchRemark $canFetchRemark, FetchesRemark $fetchesRemark) + public function __construct(CanFetchPackingList $canFetchPackingList, FetchesPackingList $fetchesPackingList) { - $this->canFetchRemark = $canFetchRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canFetchPackingList = $canFetchPackingList; + $this->fetchesPackingList = $fetchesPackingList; } @@ -51,11 +51,11 @@ class FetchRemarkLogic extends AbstractControllerLogic { try { - $this->canFetchRemark->passes(); + $this->canFetchPackingList->passes(); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackingListResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php index a7d7ff43..a1e485ce 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/ListPackingListsLogic.php @@ -1,17 +1,17 @@ 'Retrieved Remarks', - 'message' => 'You have successfully retrieved a list of Remarks' + 'title' => 'Retrieved PackingLists', + 'message' => 'You have successfully retrieved a list of PackingLists' ]; } - /** @var CanListRemarks */ - private $canListRemarks; + /** @var CanListPackingLists */ + private $canListPackingLists; - /** @var ListsRemarks */ - private $listsRemarks; + /** @var ListsPackingLists */ + private $listsPackingLists; /** - * ListRemarksLogic constructor. - * @param CanListRemarks $canListRemarks - * @param ListsRemarks $listsRemarks + * ListPackingListsLogic constructor. + * @param CanListPackingLists $canListPackingLists + * @param ListsPackingLists $listsPackingLists */ - public function __construct(CanListRemarks $canListRemarks, ListsRemarks $listsRemarks) + public function __construct(CanListPackingLists $canListPackingLists, ListsPackingLists $listsPackingLists) { - $this->canListRemarks = $canListRemarks; - $this->listsRemarks = $listsRemarks; + $this->canListPackingLists = $canListPackingLists; + $this->listsPackingLists = $listsPackingLists; } @@ -51,11 +51,11 @@ class ListRemarksLogic extends AbstractControllerLogic { try { - $this->canListRemarks->passes(); + $this->canListPackingLists->passes(); - $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + $query = $this->listsPackingLists->execute($this->listsPackingLists->deserializeFilters($request->input('filters'))); - return $this->collectionResponse(RemarkResource::collection($query)); + return $this->collectionResponse(PackingListResource::collection($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php index 020906eb..399a55e5 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php @@ -1,20 +1,20 @@ 'Updated Remark', - 'message' => 'You have successfully updated the Remark' + 'title' => 'Updated PackingList', + 'message' => 'You have successfully updated the PackingList' ]; } - /** @var CanUpdateRemark */ - private $canUpdateRemark; + /** @var CanUpdatePackingList */ + private $canUpdatePackingList; - /** @var UpdatesRemark */ - private $updatesRemark; + /** @var UpdatesPackingList */ + private $updatesPackingList; - /** @var FetchesRemark */ - private $fetchesRemark; + /** @var FetchesPackingList */ + private $fetchesPackingList; /** @var FetchesDistrict */ private $fetchesDistrict; /** - * UpdateRemarkLogic constructor. - * @param CanUpdateRemark $canUpdateRemark - * @param UpdatesRemark $updatesRemark - * @param FetchesRemark $fetchesRemark + * UpdatePackingListLogic constructor. + * @param CanUpdatePackingList $canUpdatePackingList + * @param UpdatesPackingList $updatesPackingList + * @param FetchesPackingList $fetchesPackingList * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdatePackingList $canUpdatePackingList, UpdatesPackingList $updatesPackingList, FetchesPackingList $fetchesPackingList, FetchesDistrict $fetchesDistrict) { - $this->canUpdateRemark = $canUpdateRemark; - $this->updatesRemark = $updatesRemark; - $this->fetchesRemark = $fetchesRemark; + $this->canUpdatePackingList = $canUpdatePackingList; + $this->updatesPackingList = $updatesPackingList; + $this->fetchesPackingList = $fetchesPackingList; $this->fetchesDistrict = $fetchesDistrict; } @@ -65,16 +65,16 @@ class UpdateRemarkLogic extends AbstractControllerLogic try { $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new PackingListObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); - $this->canUpdateRemark->passes($object); + $this->canUpdatePackingList->passes($object); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - $query = $this->updatesRemark->execute($query, $object); + $query = $this->updatesPackingList->execute($query, $object); - return $this->resourceResponse(new RemarkResource($query)); + return $this->resourceResponse(new PackingListResource($query)); } catch (\Exception $exception){ diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php index 67beaa30..8410d893 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php @@ -1,10 +1,10 @@ street_one = $object->getStreetOne(); $model->street_two = $object->getStreetTwo(); $model->country_id = $object->getCountryId(); @@ -26,7 +26,7 @@ class CreatesRemark extends AbstractUpdateRelationshipRecord $model->district_id = $object->getDistrictId(); $model->postcode = $object->getPostCode(); - return $this->handler($company->Remarks(), $model); + return $this->handler($company->PackingLists(), $model); } } diff --git a/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php b/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php index 4c29be9d..c0102a97 100644 --- a/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php +++ b/app/Classes/Modules/PackingLists/Services/DeletesPackingList.php @@ -1,19 +1,19 @@ handler($model); } } diff --git a/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php b/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php index a3b5c765..7d16bafe 100644 --- a/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php +++ b/app/Classes/Modules/PackingLists/Services/FetchesPackingList.php @@ -1,23 +1,23 @@ repository = $repository; } diff --git a/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php b/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php index 53479558..7cf87438 100644 --- a/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php +++ b/app/Classes/Modules/PackingLists/Services/ListsPackingLists.php @@ -1,23 +1,23 @@ repository = $repository; } diff --git a/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php index 082e2281..2a53408b 100644 --- a/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php +++ b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php @@ -1,21 +1,21 @@ company_id = $object->getCompanyId(); $model->street_one = $object->getStreetOne(); diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php index fc51178f..e100bbac 100644 --- a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php @@ -1,25 +1,25 @@ RemarkValidation = $RemarkValidation; + $this->PackingListValidation = $PackingListValidation; } @@ -34,19 +34,19 @@ class CanCreateRemark extends AbstractRule } /** - * @param RemarkObject $object + * @param PackingListObject $object * @return bool * @throws \App\Classes\Exceptions\RequestValidationException */ protected function validators($object): bool { - return $this->RemarkValidation->validate($object); + return $this->PackingListValidation->validate($object); } /** - * @param RemarkObject $object + * @param PackingListObject $object * @return bool */ protected function criteria($object): bool diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php index 7ddece31..ac8abc28 100644 --- a/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanDeletePackingList.php @@ -1,12 +1,12 @@ RemarkValidation = $RemarkValidation; + $this->PackingListValidation = $PackingListValidation; } @@ -34,19 +34,19 @@ class CanUpdateRemark extends AbstractRule } /** - * @param RemarkObject $object + * @param PackingListObject $object * @return bool * @throws \App\Classes\Exceptions\RequestValidationException */ protected function validators($object): bool { - return $this->RemarkValidation->validate($object); + return $this->PackingListValidation->validate($object); } /** - * @param RemarkObject $object + * @param PackingListObject $object * @return bool */ protected function criteria($object): bool diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php index 25c9dfee..88585970 100644 --- a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php +++ b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php @@ -1,17 +1,17 @@ Date: Fri, 23 Jul 2021 12:41:06 +0800 Subject: [PATCH 08/19] WIP - Order steps & remaining APIs --- .../Processors/CreateOrderProcessor.php | 6 ++ .../ControllersLogic/CreateRemarkLogic.php | 25 ++---- .../ControllersLogic/UpdateRemarkLogic.php | 18 ++-- .../DataTransferObjects/RemarkObject.php | 86 +++---------------- .../Remarks/Services/CreatesRemark.php | 15 ++-- .../Remarks/Services/UpdatesRemark.php | 11 +-- .../Standards/Validators/RemarkValidation.php | 9 +- .../ControllersLogic/CreateScheduleLogic.php | 28 ++---- .../ControllersLogic/DeleteScheduleLogic.php | 16 +--- .../ControllersLogic/FetchScheduleLogic.php | 13 +-- .../ControllersLogic/ListSchedulesLogic.php | 13 +-- .../ControllersLogic/UpdateScheduleLogic.php | 20 ++--- .../DataTransferObjects/ScheduleObject.php | 81 +++++------------ .../Schedules/Services/CreatesSchedule.php | 17 ++-- .../Schedules/Services/UpdatesSchedule.php | 11 +-- .../Validators/ScheduleValidation.php | 10 +-- app/Http/Resources/PackageResource.php | 31 +++++++ app/Http/Resources/PackingListResource.php | 23 +++++ app/Http/Resources/RemarkResource.php | 23 +++++ app/Http/Resources/ScheduleResource.php | 24 ++++++ app/Http/Resources/TransportResource.php | 27 ++++++ app/Models/User.php | 8 ++ 22 files changed, 239 insertions(+), 276 deletions(-) create mode 100644 app/Http/Resources/PackageResource.php create mode 100644 app/Http/Resources/PackingListResource.php create mode 100644 app/Http/Resources/RemarkResource.php create mode 100644 app/Http/Resources/ScheduleResource.php create mode 100644 app/Http/Resources/TransportResource.php diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 4d5ec2f7..85e5ae50 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -32,6 +32,12 @@ class CreateOrderProcessor public function execute(Request $request){ + //TODO: Generate internal reference number + //faker->numberBetween(1000000, 9999999), + + //TODO: Call Unity to create contract and get contract reference no (and all the obligations) + //$contract_reference_no = 99; + $order_object = new OrderObject($request->get('company_module_id'), $request->get('reference'), '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING); $this->canCreateOrder->passes($order_object); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php index 4eb7665e..81aa054b 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php @@ -5,10 +5,9 @@ namespace App\Classes\Modules\Remarks\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Remarks\Services\CreatesRemark; -use App\Classes\Modules\Remarks\Services\FetchesDistrict; use App\Classes\Modules\Remarks\Standards\Rules\CanCreateRemark; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\Accounts\Services\FetchesUser; use App\Http\Resources\RemarkResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -30,28 +29,22 @@ class CreateRemarkLogic extends AbstractControllerLogic /** @var CanCreateRemark */ private $canCreateRemark; - /** @var FetchesDistrict */ - private $fetchesDistrict; - - /** @var FetchesCompany */ - private $fetchesCompany; - /** @var CreatesRemark */ private $createsRemark; + /** @var FetchesUser */ + private $fetchesUser; + /** * CreateRemarkLogic constructor. * @param CanCreateRemark $canCreateRemark - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany * @param CreatesRemark $createsRemark */ - public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + public function __construct(CanCreateRemark $canCreateRemark, CreatesRemark $createsRemark, FetchesUser $fetchesUser) { $this->canCreateRemark = $canCreateRemark; - $this->fetchesDistrict = $fetchesDistrict; - $this->fetchesCompany = $fetchesCompany; $this->createsRemark = $createsRemark; + $this->fetchesUser = $fetchesUser; } /** @@ -64,13 +57,11 @@ class CreateRemarkLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); $this->canCreateRemark->passes($object); - $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsRemark->execute($this->fetches->execute(['id' => $request->input('commenter_id')]), $object); return $this->resourceResponse(new RemarkResource($query)); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php index 020906eb..c29799dd 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -62,24 +62,16 @@ class UpdateRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); - $this->canUpdateRemark->passes($object); + $this->canUpdateRemark->passes($object); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); - $query = $this->updatesRemark->execute($query, $object); + $query = $this->updatesRemark->execute($query, $object); - return $this->resourceResponse(new RemarkResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + return $this->resourceResponse(new RemarkResource($query)); } diff --git a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php index 67beaa30..e0c509e6 100644 --- a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php +++ b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php @@ -7,90 +7,32 @@ use App\Classes\General\Interfaces\DataTransferObject; class RemarkObject implements DataTransferObject { - /** @var string */ - private $streetOne; + /** @var int */ + private $commenterID; - /** @var string|null */ - private $streetTwo; + /** @var string*/ + private $comment;; - /** @var int */ - private $countryId; - - /** @var int */ - private $stateId; - - /** @var int */ - private $districtId; - - /** @var int */ - private $postCode; + public function __construct(int $commenterID, string $comment) + { + $this->commenterID = $commenterID; + $this->comment = $comment; + } /** - * RemarkObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode + * @return int */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function getCommenterId(): string { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + return $this->commenterID; } /** * @return string */ - public function getStreetOne(): string + public function getComment(): ?string { - return $this->streetOne; + return $this->comment; } - /** - * @return null|string - */ - public function getStreetTwo(): ?string - { - return $this->streetTwo; - } - - /** - * @return int - */ - public function getCountryId(): int - { - return $this->countryId; - } - - /** - * @return int - */ - public function getStateId(): int - { - return $this->stateId; - } - - /** - * @return int - */ - public function getDistrictId(): int - { - return $this->districtId; - } - - /** - * @return int - */ - public function getPostCode(): int - { - return $this->postCode; - } - - } diff --git a/app/Classes/Modules/Remarks/Services/CreatesRemark.php b/app/Classes/Modules/Remarks/Services/CreatesRemark.php index c4067869..9bfe3303 100644 --- a/app/Classes/Modules/Remarks/Services/CreatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/CreatesRemark.php @@ -6,7 +6,7 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; use App\Models\Remark; -use App\Models\Company; +use App\Models\User; class CreatesRemark extends AbstractUpdateRelationshipRecord { @@ -17,16 +17,13 @@ class CreatesRemark extends AbstractUpdateRelationshipRecord * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, RemarkObject $object) { + public function execute(User $user, RemarkObject $object) { $model = new Remark(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - return $this->handler($company->Remarks(), $model); + $model->commenter_id = $object->getCommenterId(); + $model->comment = $object->getComment(); + + return $this->handler($user->remarks(), $model); } } diff --git a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php index 082e2281..6d0c61eb 100644 --- a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php @@ -17,15 +17,8 @@ class UpdatesRemark extends AbstractUpdateRecord */ public function execute(Remark $model, RemarkObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->commenter_id = $object->getCommenterId(); + $model->comment = $object->getComment(); return $this->handler($model); diff --git a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php index 25c9dfee..afbd8b82 100644 --- a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php +++ b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php @@ -16,9 +16,8 @@ class RemarkValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'commenter_id' => $object->getCommenterId(), + 'comment' => $object->getComment(), ]; } @@ -27,8 +26,8 @@ class RemarkValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'commenter_id' => 'required', + 'comment' => 'required', ]; } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php index 06ca06a8..17ad9d62 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -2,13 +2,11 @@ namespace App\Classes\Modules\Schedules\ControllersLogic; - use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Schedules\Services\CreatesSchedule; -use App\Classes\Modules\Schedules\Services\FetchesDistrict; use App\Classes\Modules\Schedules\Standards\Rules\CanCreateSchedule; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\Transports\Services\FetchesTransport; use App\Http\Resources\ScheduleResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -16,7 +14,6 @@ use Illuminate\Http\Request; class CreateScheduleLogic extends AbstractControllerLogic { - /** * @return array */ @@ -30,11 +27,8 @@ class CreateScheduleLogic extends AbstractControllerLogic /** @var CanCreateSchedule */ private $canCreateSchedule; - /** @var FetchesDistrict */ - private $fetchesDistrict; - - /** @var FetchesCompany */ - private $fetchesCompany; + /** @var FetchesTransport */ + private $fetchesTransport; /** @var CreatesSchedule */ private $createsSchedule; @@ -42,15 +36,13 @@ class CreateScheduleLogic extends AbstractControllerLogic /** * CreateScheduleLogic constructor. * @param CanCreateSchedule $canCreateSchedule - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany + * @param FetchesTransport $fetchesTransport * @param CreatesSchedule $createsSchedule */ - public function __construct(CanCreateSchedule $canCreateSchedule, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesSchedule $createsSchedule) + public function __construct(CanCreateSchedule $canCreateSchedule, FetchesTransport $fetchesTransport, CreatesSchedule $createsSchedule) { $this->canCreateSchedule = $canCreateSchedule; - $this->fetchesDistrict = $fetchesDistrict; - $this->fetchesCompany = $fetchesCompany; + $this->fetchesTransport = $fetchesTransport; $this->createsSchedule = $createsSchedule; } @@ -63,17 +55,13 @@ class CreateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id')); $this->canCreateSchedule->passes($object); - $query = $this->createsSchedule->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsSchedule->execute($this->fetchesTransport->execute(['id' => $request->input('transport_id')]), $object); return $this->resourceResponse(new ScheduleResource($query)); - } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php index 2d0f62e7..06184388 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php @@ -46,7 +46,6 @@ class DeleteScheduleLogic extends AbstractControllerLogic $this->fetchesSchedule = $fetchesSchedule; } - /** * @param Request $request * @return JsonResponse @@ -54,20 +53,13 @@ class DeleteScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canDeleteSchedule->passes(); - $this->canDeleteSchedule->passes(); + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - $this->deletesSchedule->execute($query); - - return $this->response([]); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $this->deletesSchedule->execute($query); + return $this->response([]); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php index 2c36a0d1..7b5bd11f 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php @@ -49,18 +49,11 @@ class FetchScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canFetchSchedule->passes(); - $this->canFetchSchedule->passes(); - - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new ScheduleResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + return $this->resourceResponse(new ScheduleResource($query)); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php index 17f4dee8..d0666763 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php @@ -49,18 +49,11 @@ class ListSchedulesLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canListSchedules->passes(); - $this->canListSchedules->passes(); - - $query = $this->listsSchedules->execute($this->listsSchedules->deserializeFilters($request->input('filters'))); - - return $this->collectionResponse(ScheduleResource::collection($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->listsSchedules->execute($this->listsSchedules->deserializeFilters($request->input('filters'))); + return $this->collectionResponse(ScheduleResource::collection($query)); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php index b8589cf6..803fa119 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php @@ -62,25 +62,15 @@ class UpdateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $object = new ScheduleObject($request->input('etd'), $request->input('eta')); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new ScheduleObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $this->canUpdateSchedule->passes($object); - $this->canUpdateSchedule->passes($object); + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - $query = $this->updatesSchedule->execute($query, $object); - - return $this->resourceResponse(new ScheduleResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->updatesSchedule->execute($query, $object); + return $this->resourceResponse(new ScheduleResource($query)); } } diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php index 9a85301d..b92211d3 100644 --- a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php +++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php @@ -3,94 +3,55 @@ namespace App\Classes\Modules\Schedules\DataTransferObjects; use App\Classes\General\Interfaces\DataTransferObject; +use Carbon\Carbon; class ScheduleObject implements DataTransferObject { - /** @var string */ - private $streetOne; + /** @var Carbonn date */ + private $etd; - /** @var string|null */ - private $streetTwo; + /** @var Carbon date */ + private $eta; /** @var int */ - private $countryId; - - /** @var int */ - private $stateId; - - /** @var int */ - private $districtId; - - /** @var int */ - private $postCode; + private $transport_id; /** - * ScheduleObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode + * ScheduleObject constructor + * @param int $etd + * @param int $eta + * @param int $transport_id */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function __construct(string $etd, string $eta, int $transport_id) { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + $this->etd = $etd; + $this->eta = $eta; + $this->transport_id = $transport_id; } /** * @return string */ - public function getStreetOne(): string + public function getETD(): Carbon { - return $this->streetOne; + return $this->completed_date ? Carbon::parse($this->etd); } /** - * @return null|string + * @return string */ - public function getStreetTwo(): ?string + public function getETA(): Carbon { - return $this->streetTwo; + return $this->completed_date ? Carbon::parse($this->eta); } /** * @return int */ - public function getCountryId(): int + public function getTransportId(): int { - return $this->countryId; + return $this->transport_id; } - /** - * @return int - */ - public function getStateId(): int - { - return $this->stateId; - } - - /** - * @return int - */ - public function getDistrictId(): int - { - return $this->districtId; - } - - /** - * @return int - */ - public function getPostCode(): int - { - return $this->postCode; - } - - } diff --git a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php index 2cb67a6f..20a064e3 100644 --- a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php @@ -6,27 +6,24 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; use App\Models\Schedule; -use App\Models\Company; +use App\Models\TransportArrangement; class CreatesSchedule extends AbstractUpdateRelationshipRecord { /** - * @param Company $company + * @param TransportArrangement $transport * @param ScheduleObject $object * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, ScheduleObject $object) { + public function execute(TransportArrangement $transport, ScheduleObject $object) { $model = new Schedule(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); + $model->etd = $object->getETD(); + $model->eta = $object->getETA(); + $model->transport_id = $object->getTransportId(); - return $this->handler($company->Schedules(), $model); + return $this->handler($transport->schedules(), $model); } } diff --git a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php index 84e9491c..f7105824 100644 --- a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php @@ -17,15 +17,8 @@ class UpdatesSchedule extends AbstractUpdateRecord */ public function execute(Schedule $model, ScheduleObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->etd = $object->getETD(); + $model->eta = $object->getETA(); return $this->handler($model); diff --git a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php index 4039e0ee..26352de4 100644 --- a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php +++ b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php @@ -16,9 +16,8 @@ class ScheduleValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'etd' => $object->getETD(), + 'eta' => $object->getETA(), ]; } @@ -27,8 +26,9 @@ class ScheduleValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'transport_id' => 'required', + 'etd' => 'required', + 'eta' => 'required', ]; } diff --git a/app/Http/Resources/PackageResource.php b/app/Http/Resources/PackageResource.php new file mode 100644 index 00000000..0c1530b8 --- /dev/null +++ b/app/Http/Resources/PackageResource.php @@ -0,0 +1,31 @@ + $this->id, + 'order_id' => $this->order_id, + 'claimant_id' => $this->claimant_id, + 'type' => $this->type, + 'description' => $this->description, + 'width' => $this->width, + 'height' => $this->height, + 'length' => $this->length, + 'weight' => $this->weight, + 'quantity' => $this->quantity, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/PackingListResource.php b/app/Http/Resources/PackingListResource.php new file mode 100644 index 00000000..a143d523 --- /dev/null +++ b/app/Http/Resources/PackingListResource.php @@ -0,0 +1,23 @@ + $this->id, + 'reference' => $this->reference, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/RemarkResource.php b/app/Http/Resources/RemarkResource.php new file mode 100644 index 00000000..72721f02 --- /dev/null +++ b/app/Http/Resources/RemarkResource.php @@ -0,0 +1,23 @@ + $this->id, + 'commenter_id' => $this->commenter_id, + 'comment' => $this->comment, + ]; + } +} diff --git a/app/Http/Resources/ScheduleResource.php b/app/Http/Resources/ScheduleResource.php new file mode 100644 index 00000000..702fb642 --- /dev/null +++ b/app/Http/Resources/ScheduleResource.php @@ -0,0 +1,24 @@ + $this->id, + 'etd' => $this->etd, + 'eta' => $this->eta, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/TransportResource.php b/app/Http/Resources/TransportResource.php new file mode 100644 index 00000000..86e894cf --- /dev/null +++ b/app/Http/Resources/TransportResource.php @@ -0,0 +1,27 @@ + $this->id, + 'type' => $this->type, + 'courier' => $this->courier, + 'tracking_number' => $this->tracking_number, + 'dispatch_date' => $this->dispatch_date, + 'drop_date' => $this->drop_date, + 'status' => $this->status, + ]; + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 33da7042..dccda6d2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -73,4 +73,12 @@ class User extends AbstractModel implements { return $this->morphMany(Contact::class, 'owner'); } + + /** + * @return MorphMany + */ + public function remarks(): morphMany + { + return $this->morphMany(Remark::class, 'owner'); + } } From 1fe25476ce2d99b6f2e4e179e6bd0fbf74e15c93 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 15:07:05 +0800 Subject: [PATCH 09/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreateOrderLogic.php | 8 +- .../Processors/CreateOrderProcessor.php | 2 + .../FetchContainerPackingListLogic.php | 66 + .../ControllersLogic/DeleteRemarkLogic.php | 15 +- .../ControllersLogic/FetchRemarkLogic.php | 13 +- .../ControllersLogic/ListRemarksLogic.php | 13 +- .../ControllersLogic/UpdateRemarkLogic.php | 2 - .../DataTransferObjects/ScheduleObject.php | 4 +- .../Schedules/Services/CreatesSchedule.php | 6 +- .../ControllersLogic/CreateTransportLogic.php | 23 +- .../ControllersLogic/DeleteTransportLogic.php | 15 +- .../ControllersLogic/FetchTransportLogic.php | 13 +- .../ControllersLogic/ListTransportsLogic.php | 13 +- .../ControllersLogic/UpdateTransportLogic.php | 20 +- .../DataTransferObjects/TransportObject.php | 57 +- .../Validators/TransportValidation.php | 17 +- app/Models/ContainerPackingList.php | 8 + app/Models/TransportArrangement.php | 18 +- resources/views/swagger/json.blade.php | 3686 ++++++++++++----- 19 files changed, 2914 insertions(+), 1085 deletions(-) create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php diff --git a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php index cd8d43c9..42e625c2 100644 --- a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php +++ b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php @@ -35,12 +35,6 @@ class CreateOrderLogic extends AbstractControllerLogic $order = $this->createOrderProcessor->execute($request); - //$order_object = new OrderObject($request->get('company_module_id'), '', '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING); - - //$this->canCreateOrder->passes($order_object); - - //$order = $this->createsOrder->execute($order_object); - return $this->resourceResponse(new OrderResource($order)); } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 85e5ae50..1252efe9 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -51,6 +51,8 @@ class CreateOrderProcessor //Pre-approved order, no need Admin to process it $this->confirmOrderProcessor->execute($order->id); + //TODO: Add order roles - Allow multiple entity to process this order + return $order; } } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php new file mode 100644 index 00000000..e9248ada --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php @@ -0,0 +1,66 @@ + 'Retrieved PackingList', + 'message' => 'You have successfully retrieved a PackingList' + ]; + } + + /** @var CanFetchPackingList */ + private $canFetchPackingList; + + /** @var FetchesPackingList */ + private $fetchesPackingList; + + /** + * FetchPackingListControllersLogic constructor. + * @param CanFetchPackingList $canFetchPackingList + * @param FetchesPackingList $fetchesPackingList + */ + public function __construct(CanFetchPackingList $canFetchPackingList, FetchesPackingList $fetchesPackingList) + { + $this->canFetchPackingList = $canFetchPackingList; + $this->fetchesPackingList = $fetchesPackingList; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchPackingList->passes(); + + $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new PackingListResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php index f731cca5..b593d603 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/DeleteRemarkLogic.php @@ -54,20 +54,13 @@ class DeleteRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canDeleteRemark->passes(); - $this->canDeleteRemark->passes(); + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); - - $this->deletesRemark->execute($query); - - return $this->response([]); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $this->deletesRemark->execute($query); + return $this->response([]); } } diff --git a/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php index 3ff151d3..9c5aa5af 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/FetchRemarkLogic.php @@ -49,18 +49,11 @@ class FetchRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canFetchRemark->passes(); - $this->canFetchRemark->passes(); - - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new RemarkResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + return $this->resourceResponse(new RemarkResource($query)); } } diff --git a/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php index a7d7ff43..c70ccee1 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/ListRemarksLogic.php @@ -49,18 +49,11 @@ class ListRemarksLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canListRemarks->passes(); - $this->canListRemarks->passes(); - - $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); - - return $this->collectionResponse(RemarkResource::collection($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->listsRemarks->execute($this->listsRemarks->deserializeFilters($request->input('filters'))); + return $this->collectionResponse(RemarkResource::collection($query)); } } diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php index c29799dd..0649c857 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -62,7 +62,6 @@ class UpdateRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); $this->canUpdateRemark->passes($object); @@ -72,7 +71,6 @@ class UpdateRemarkLogic extends AbstractControllerLogic $query = $this->updatesRemark->execute($query, $object); return $this->resourceResponse(new RemarkResource($query)); - } } diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php index b92211d3..956cd24d 100644 --- a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php +++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php @@ -35,7 +35,7 @@ class ScheduleObject implements DataTransferObject */ public function getETD(): Carbon { - return $this->completed_date ? Carbon::parse($this->etd); + return Carbon::parse($this->etd); } /** @@ -43,7 +43,7 @@ class ScheduleObject implements DataTransferObject */ public function getETA(): Carbon { - return $this->completed_date ? Carbon::parse($this->eta); + return Carbon::parse($this->eta); } /** diff --git a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php index 20a064e3..60e9913a 100644 --- a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php @@ -6,18 +6,18 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; use App\Models\Schedule; -use App\Models\TransportArrangement; +use App\Models\Transport; class CreatesSchedule extends AbstractUpdateRelationshipRecord { /** - * @param TransportArrangement $transport + * @param Transport $transport * @param ScheduleObject $object * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(TransportArrangement $transport, ScheduleObject $object) { + public function execute(Transport $transport, ScheduleObject $object) { $model = new Schedule(); $model->etd = $object->getETD(); $model->eta = $object->getETA(); diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index b3e8d554..1b30b95d 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -8,7 +8,7 @@ use App\Classes\Modules\Transports\Services\CreatesTransport; use App\Classes\Modules\Transports\Services\FetchesDistrict; use App\Classes\Modules\Transports\Standards\Rules\CanCreateTransport; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\PackingLists\Services\FetchesContainerPackingList; use App\Http\Resources\TransportResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -30,11 +30,8 @@ class CreateTransportLogic extends AbstractControllerLogic /** @var CanCreateTransport */ private $canCreateTransport; - /** @var FetchesDistrict */ - private $fetchesDistrict; - - /** @var FetchesCompany */ - private $fetchesCompany; + /** @var FetchesContainerPackingList */ + private $fetchesContainerPackingList; /** @var CreatesTransport */ private $createsTransport; @@ -42,15 +39,13 @@ class CreateTransportLogic extends AbstractControllerLogic /** * CreateTransportLogic constructor. * @param CanCreateTransport $canCreateTransport - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany + * @param FetchesContainerPackingList $fetchesContainerPackingList * @param CreatesTransport $createsTransport */ - public function __construct(CanCreateTransport $canCreateTransport, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesTransport $createsTransport) + public function __construct(CanCreateTransport $canCreateTransport, FetchesContainerPackingList $fetchesContainerPackingList, CreatesTransport $createsTransport) { $this->canCreateTransport = $canCreateTransport; - $this->fetchesDistrict = $fetchesDistrict; - $this->fetchesCompany = $fetchesCompany; + $this->fetchesContainerPackingList = $fetchesContainerPackingList; $this->createsTransport = $createsTransport; } @@ -64,13 +59,11 @@ class CreateTransportLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new TransportObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), null, null, 0); $this->canCreateTransport->passes($object); - $query = $this->createsTransport->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsTransport->execute($this->fetchesContainerPackingList->execute(['id' => $request->input('container_id')]), $object); return $this->resourceResponse(new TransportResource($query)); diff --git a/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php index c21afd27..03c01168 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php @@ -54,20 +54,13 @@ class DeleteTransportLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canDeleteTransport->passes(); - $this->canDeleteTransport->passes(); + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - - $this->deletesTransport->execute($query); - - return $this->response([]); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $this->deletesTransport->execute($query); + return $this->response([]); } } diff --git a/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php index ed624581..6129e6ed 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/FetchTransportLogic.php @@ -49,18 +49,11 @@ class FetchTransportLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canFetchTransport->passes(); - $this->canFetchTransport->passes(); - - $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new TransportResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); + return $this->resourceResponse(new TransportResource($query)); } } diff --git a/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php b/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php index 2d5d1bc5..b85e07e7 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/ListTransportsLogic.php @@ -49,18 +49,11 @@ class ListTransportsLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canListTransports->passes(); - $this->canListTransports->passes(); - - $query = $this->listsTransports->execute($this->listsTransports->deserializeFilters($request->input('filters'))); - - return $this->collectionResponse(TransportResource::collection($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->listsTransports->execute($this->listsTransports->deserializeFilters($request->input('filters'))); + return $this->collectionResponse(TransportResource::collection($query)); } } diff --git a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php index b6925003..c8630224 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php @@ -62,25 +62,15 @@ class UpdateTransportLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), $request->input('dispact_date'), $request->input('drop_date'), $request->input('status')); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new TransportObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new TransportObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $this->canUpdateTransport->passes($object); - $this->canUpdateTransport->passes($object); + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - - $query = $this->updatesTransport->execute($query, $object); - - return $this->resourceResponse(new TransportResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->updatesTransport->execute($query, $object); + return $this->resourceResponse(new TransportResource($query)); } } diff --git a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php index 9b90b930..4f82c78b 100644 --- a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php +++ b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php @@ -3,51 +3,52 @@ namespace App\Classes\Modules\Transports\DataTransferObjects; use App\Classes\General\Interfaces\DataTransferObject; +use Carbon\Carbon; class TransportObject implements DataTransferObject { /** @var string */ - private $streetOne; + private $type; /** @var string|null */ - private $streetTwo; + private $courier; /** @var int */ - private $countryId; + private $tracking_number; /** @var int */ - private $stateId; + private $dispacth_date; /** @var int */ - private $districtId; + private $drop_date; /** @var int */ - private $postCode; + private $status; /** * TransportObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode + * @param string $type + * @param null|string $courier + * @param int $tracking_number + * @param int $dispatch_date + * @param int $drop_date + * @param int $status */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function __construct(string $type, string $courier, int $tracking_number, ?string $dispatch_date, ?string $drop_date, int $status) { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + $this->type = $type; + $this->courier = $courier; + $this->tracking_number = $tracking_number; + $this->dispatch_date = $dispatch_date; + $this->drop_date = $drop_date; + $this->status = $status; } /** * @return string */ - public function getStreetOne(): string + public function getType(): string { return $this->streetOne; } @@ -55,7 +56,7 @@ class TransportObject implements DataTransferObject /** * @return null|string */ - public function getStreetTwo(): ?string + public function getCourier(): ?string { return $this->streetTwo; } @@ -63,7 +64,7 @@ class TransportObject implements DataTransferObject /** * @return int */ - public function getCountryId(): int + public function getTrackingNumber(): int { return $this->countryId; } @@ -71,25 +72,25 @@ class TransportObject implements DataTransferObject /** * @return int */ - public function getStateId(): int + public function getDispatchDate(): Carbon { - return $this->stateId; + return $this->dispatch_date ? Carbon::parse($this->dispatch_date) : null; } /** * @return int */ - public function getDistrictId(): int + public function getDropDate(): Carbon { - return $this->districtId; + return $this->drop_date ? Carbon::parse($this->drop_date) : null; } /** * @return int */ - public function getPostCode(): int + public function getStatus(): int { - return $this->postCode; + return $this->status; } diff --git a/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php index 83737634..0a41982b 100644 --- a/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php +++ b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php @@ -16,9 +16,12 @@ class TransportValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'type' => $object->getType(), + 'courier' => $object->getCourier(), + 'tracking_number' => $object->getTrackingNumber() + 'dispacth_date' => $object->getDispatchDate() + 'drop_date' => $object->getDropDate() + 'status' => $object->getStatus() ]; } @@ -27,8 +30,12 @@ class TransportValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'type' => 'required', + 'courier' => 'required', + 'tracking_number' => 'required', + 'dispacth_date' => '', + 'drop_date' => '', + 'status' => '', ]; } diff --git a/app/Models/ContainerPackingList.php b/app/Models/ContainerPackingList.php index e305f3f8..228c6fce 100644 --- a/app/Models/ContainerPackingList.php +++ b/app/Models/ContainerPackingList.php @@ -14,4 +14,12 @@ class ContainerPackingList extends AbstractModel { return $this->hasMany(PackingList::class, 'packing_list_id', 'id'); } + + /** + * @return MorphMany + */ + public function transports(): morphMany + { + return $this->morphMany(Transport::class, 'owner'); + } } diff --git a/app/Models/TransportArrangement.php b/app/Models/TransportArrangement.php index cdf92994..3bb122d1 100644 --- a/app/Models/TransportArrangement.php +++ b/app/Models/TransportArrangement.php @@ -2,10 +2,20 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\MorphTo; +use Illuminate\Database\Eloquent\SoftDeletes; -class TransportArrangement extends Model +class Transport extends AbstractModel { - use HasFactory; + use SoftDeletes; + + protected $table = 'schedules'; + + /** + * @return MorphMany + */ + public function schedule(): morphMany + { + return $this->morphMany(Schdule::class, 'owner'); + } } diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 36b0abd8..4dbc8fd3 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -1,944 +1,2746 @@ { -"swagger": "2.0", -"info": { -"description": "Shipping Portal to manage parcel", -"version": "1.0.0", -"title": "Shipping Portal" -}, -"host": "{{request()->getHttpHost()}}", -"basePath": "/api/v1", -"tags": [ -{ -"name": "Account", -"description": "Endpoints related to user module, e.g. login, register." -}, -{ -"name": "Address", -"description": "Endpoints related to address module, e.g. create, district." -}, -{ -"name": "Company", -"description": "Endpoints related to company module." -}, -{ -"name": "Order", -"description": "Endpoints related to order module." -}, -{ -"name": "Flow - Registration", -"description": "Endpoints related to registration flow." -} -], -"schemes": [ -"http", -"https" -], -"paths": { -"/order/create": { -"post": { -"tags": [ -"Order" -], -"produces": [ -"application/json" -], -"operationId": "createOrder", -"summary": "Create order", -"description": "", -"parameters": [ -{ -"name": "company_module_id", -"in": "query", -"description": "Company Module ID", -"required": true, -"type": "integer" -}, -{ -"name": "reference", -"in": "query", -"description": "Internal reference id", -"required": true, -"type": "string" -}, -{ -"name": "reference_contract", -"in": "query", -"description": "Unity contract reference id", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/order/confirm/{id}": { -"put": { -"tags": [ -"Order" -], -"produces": [ -"application/json" -], -"operationId": "confirmOrder", -"summary": "Admin confirms order", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "Order ID", -"required": true, -"type": "integer" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/order/{id}/step/completes": { -"post": { -"tags": [ -"Order" -], -"produces": [ -"application/json" -], -"operationId": "createOrder", -"summary": "Completes order step", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "Order Id", -"required": true, -"type": "integer" -}, -{ -"name": "reference", -"in": "query", -"description": "Order step reference", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/create": { -"post": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "createAddress", -"summary": "Create address", -"description": "", -"parameters": [ -{ -"name": "district_id", -"in": "query", -"description": "District id", -"required": true, -"type": "integer" -}, -{ -"name": "street_one", -"in": "query", -"description": "Address line 1", -"required": true, -"type": "string" -}, -{ -"name": "street_two", -"in": "query", -"description": "Address line 2", -"required": true, -"type": "string" -}, -{ -"name": "post_code", -"in": "query", -"description": "Postcode of the address", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/delete/{id}": { -"delete": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "deleteAddress", -"summary": "Delete address", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "District id", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/district/list": { -"get": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "listDistrictAddress", -"summary": "List districts", -"description": "", -"parameters": [ -{ -"name": "filter", -"in": "query", -"description": "Filters", -"required": false, -"type": "array", -"items": { -"type": "string" -} -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/list": { -"get": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "listAddress", -"summary": "List addresses of logged in user", -"description": "", -"parameters": [ -{ -"name": "filter", -"in": "query", -"description": "Filters", -"required": false, -"type": "array", -"items": { -"type": "string" -} -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/{id}/show": { -"get": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "showAddress", -"summary": "List addresses of logged in user", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "Address id", -"required": true, -"type": "integer" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/{id}/default": { -"put": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "setDefaultAddress", -"summary": "Set default address", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "Address id", -"required": true, -"type": "integer" -}, -{ -"name": "district_id", -"in": "query", -"description": "District id", -"required": true, -"type": "integer" -}, -{ -"name": "street_one", -"in": "query", -"description": "Address line 1", -"required": true, -"type": "string" -}, -{ -"name": "street_two", -"in": "query", -"description": "Address line 2", -"required": true, -"type": "string" -}, -{ -"name": "post_code", -"in": "query", -"description": "Postcode of the address", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/address/update/{id}": { -"put": { -"tags": [ -"Address" -], -"produces": [ -"application/json" -], -"operationId": "setDefaultAddress", -"summary": "Set default address", -"description": "", -"parameters": [ -{ -"name": "id", -"in": "path", -"description": "Address id", -"required": true, -"type": "integer" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"422": { -"description": "Invalid input supplied" -} -} -} -}, -"/account/authentication/login/check_email": { -"post": { -"tags": [ -"Account", -"Flow - Registration" -], -"summary": "Check if email registered", -"description": "", -"operationId": "userList", -"produces": [ -"application/json", -"application/xml" -], -"parameters": [ -{ -"name": "email", -"in": "query", -"description": "email", -"required": true, -"type": "string" -} -], -"responses": { -"default": { -"description": "successful operation" -} -} -} -}, -"/account/registration/registration": { -"post": { -"tags": [ -"Account", -"Flow - Registration" -], -"produces": [ -"application/json" -], -"summary": "Register user into the system", -"description": "", -"parameters": [ -{ -"name": "name", -"in": "query", -"description": "The name of user", -"required": true, -"type": "string" -}, -{ -"name": "email", -"in": "query", -"description": "The email for login", -"required": true, -"type": "string", -"format": "email" -}, -{ -"name": "password", -"in": "query", -"description": "The password for login", -"required": true, -"type": "string", -"format": "password" -}, -{ -"name": "password_confirmation", -"in": "query", -"description": "The confirmation password for login", -"required": true, -"type": "string", -"format": "password" -}, -{ -"name": "type", -"in": "query", -"description": "Company Type - PERSONAL_BUSINESS:0 , COMPANY_BUSINESS:1", -"required": true, -"type": "integer" -}, -{ -"name": "phone", -"in": "query", -"description": "Contact phone number", -"required": true, -"type": "string" -}, -{ -"name": "contact_email", -"in": "query", -"description": "Contact email", -"required": true, -"type": "string" -}, -{ -"name": "company_name", -"in": "query", -"description": "The company name - if not defined , name of user will save as the company name", -"required": false, -"type": "string" -}, -{ -"name": "business_type", -"in": "query", -"description": "Business Type - FREIGHT_FORWARDER:1, IMPORTER:2, CURRENCY_VENDOR:3, WAREHOUSE:4", -"required": false, -"default": 2, -"type": "integer" -}, -{ -"name": "wechat_id", -"in": "query", -"description": "Contact Wechat id", -"required": false, -"type": "string" -}, -{ -"name": "files[0]", -"in": "query", -"description": "File need to convert to base64 example : 'data:application/pdf;base64,{Base64}';", -"required": true, -"type": "string" -}, -{ -"name": "identification_no", -"in": "query", -"description": "Personal identification no or company registration no", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"400": { -"description": "Invalid username/password supplied" -} -} -} -}, -"/account/authentication/login/attempt": { -"post": { -"tags": [ -"Account" -], -"produces": [ -"application/json" -], -"summary": "Logs user into the system", -"operationId": "aaa", -"description": "", -"parameters": [ -{ -"name": "email", -"in": "query", -"description": "The user name for login", -"required": true, -"type": "string" -}, -{ -"name": "password", -"in": "query", -"description": "The password for login in clear text", -"required": true, -"type": "string" -} -], -"responses": { -"200": { -"description": "successful operation", -"headers": { -"X-Expires-After": { -"type": "string", -"format": "date-time", -"description": "date in UTC when token expires" -}, -"X-Rate-Limit": { -"type": "integer", -"format": "int32", -"description": "calls per hour allowed by the user" -} -}, -"schema": { -"type": "string" -} -}, -"400": { -"description": "Invalid username/password supplied" -} -} -} -}, -"/account/authentication/logout": { -"get": { -"tags": [ -"Account" -], -"summary": "Logs out current logged in user session", -"description": "", -"operationId": "logoutUser", -"produces": [ -"application/json", -"application/xml" -], -"parameters": [], -"responses": { -"default": { -"description": "successful operation" -} -} -} -}, -"/account/user/list": { -"get": { -"tags": [ -"Account" -], -"summary": "Logs out current logged in user session", -"description": "", -"operationId": "userList", -"produces": [ -"application/json", -"application/xml" -], -"parameters": [], -"responses": { -"default": { -"description": "successful operation" -} -} -} -}, -"/company/list": { -"get": { -"tags": [ -"Company" -], -"summary": "List of Companies", -"description": "example filters={\"WithCompanyModuleType\":4,\"order_by\":{\"column\":\"id\",\"DESC\":true}} | to get list of company with company_module.Type(business type) = 4(Warehouse)", -"operationId": "companyList", -"produces": [ -"application/json", -"application/xml" -], -"parameters": [ -{ -"name": "filters", -"in": "query", -"description": "Eloquent Filter", -"required": false, -"type": "array", -"items": { -"type": "string" -} -} -], -"responses": { -"default": { -"description": "successful operation" -} -} -} -}, -"/company/create": { -"post": { -"tags": [ -"Company" -], -"summary": "Create company", -"description": "", -"operationId": "companyCreate", -"produces": [ -"application/json", -"application/xml" -], -"parameters": [ -{ -"name": "type", -"in": "query", -"description": "Company Type - PERSONAL_BUSINESS:0 , COMPANY_BUSINESS:1", -"required": true, -"type": "integer", -"enum": [ -0, -1 -] -}, -{ -"name": "business_type", -"in": "query", -"description": "Business Type - FREIGHT_FORWARDER:1, IMPORTER:2, CURRENCY_VENDOR:3, WAREHOUSE:4", -"required": true, -"type": "integer", -"enum": [ -1, -2, -3, -4 -] -}, -{ -"name": "name", -"in": "query", -"description": "Fill in name if type = 0", -"required": false, -"type": "string" -}, -{ -"name": "name", -"in": "query", -"description": "Fill in name if type = 0", -"required": false, -"type": "string" -}, -{ -"name": "company_name", -"in": "query", -"description": "Fill in company_name if type = 1", -"required": false, -"type": "string" -} -], -"responses": { -"default": { -"description": "successful operation" -} -} -} -} -}, -"securityDefinitions": { -"Authorization": { -"type": "apiKey", -"name": "api_key", -"in": "header" -}, -"petstore_auth": { -"type": "oauth2", -"authorizationUrl": "https://petstore.swagger.io/oauth/authorize", -"flow": "implicit", -"scopes": { -"read:pets": "read your pets", -"write:pets": "modify pets in your account" -} -} -}, -"definitions": { -"ApiResponse": { -"type": "object", -"properties": { -"code": { -"type": "integer", -"format": "int32" -}, -"title": { -"type": "string" -}, -"message": { -"type": "string" -}, -"payload": { -"type": "object" -} -} -} -} + "swagger": "2.0", + "info": { + "description": "Shipping Portal to manage parcel", + "version": "1.0.0", + "title": "Shipping Portal" + }, + "host": "{{request()->getHttpHost()}}", + "basePath": "/api/v1", + "tags": [ + { + "name": "Account", + "description": "Endpoints related to user module, e.g. login, register." + }, + { + "name": "Address", + "description": "Endpoints related to address module, e.g. create, district." + }, + { + "name": "Bank", + "description": "Endpoints related to bank module." + }, + { + "name": "Company", + "description": "Endpoints related to company module." + }, + { + "name": "Order", + "description": "Endpoints related to order module." + }, + { + "name": "Package", + "description": "Endpoints related to package module." + }, + { + "name": "Packing", + "description": "Endpoints related to packing module." + }, + { + "name": "Transport", + "description": "Endpoints related to transport module." + }, + { + "name": "Schedule", + "description": "Endpoints related to schedule module." + }, + { + "name": "Remark", + "description": "Endpoints related to remark module." + }, + { + "name": "Flow - Registration", + "description": "Endpoints related to registration flow." + } + ], + "schemes": [ + "http", + "https" + ], + "paths": { + "/packing_list/create": { + "post": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "createPacking", + "summary": "Create packing", + "description": "", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Transport type", + "required": true, + "type": "integer" + }, + { + "name": "courier", + "in": "query", + "description": "Courier Provider Name", + "required": true, + "type": "string" + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/list": { + "get": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "listPacking", + "summary": "List packing", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/{id}/show": { + "get": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "showPacking", + "summary": "Show packing", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/update": { + "put": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "updatePacking", + "summary": "Update packing", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "transport id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/delete/{id}": { + "delete": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "deletePacking", + "summary": "Delete packing", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/bank/create": { + "post": { + "tags": [ + "Bank" + ], + "produces": [ + "application/json" + ], + "operationId": "createBank", + "summary": "Create bank", + "description": "", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Transport type", + "required": true, + "type": "integer" + }, + { + "name": "courier", + "in": "query", + "description": "Courier Provider Name", + "required": true, + "type": "string" + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/bank/list": { + "get": { + "tags": [ + "Bank" + ], + "produces": [ + "application/json" + ], + "operationId": "listBank", + "summary": "List bank account", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/bank/{id}/show": { + "get": { + "tags": [ + "Bank" + ], + "produces": [ + "application/json" + ], + "operationId": "showBank", + "summary": "Show bank account", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/bank/update": { + "put": { + "tags": [ + "Bank" + ], + "produces": [ + "application/json" + ], + "operationId": "updateBank", + "summary": "Update bank", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "transport id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/bank/delete/{id}": { + "delete": { + "tags": [ + "Bank" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteBank", + "summary": "Delete bank", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Bank id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/create": { + "post": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "createPackage", + "summary": "Create package", + "description": "", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Transport type", + "required": true, + "type": "integer" + }, + { + "name": "courier", + "in": "query", + "description": "Courier Provider Name", + "required": true, + "type": "string" + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/list": { + "get": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "listPackage", + "summary": "List package", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/{id}/show": { + "get": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "showPackage", + "summary": "Show package", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/update": { + "put": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "updatePackage", + "summary": "Update package", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "transport id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/delete/{id}": { + "delete": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "deletePackage", + "summary": "Delete package", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/item/create": { + "post": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "createPackageItem", + "summary": "Create package item", + "description": "", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Transport type", + "required": true, + "type": "integer" + }, + { + "name": "courier", + "in": "query", + "description": "Courier Provider Name", + "required": true, + "type": "string" + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/item/list": { + "get": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "listPackageItem", + "summary": "List package item", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/item/{id}/show": { + "get": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "showPackageItem", + "summary": "Show package item", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package item id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/item/update": { + "put": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "updatePackageItem", + "summary": "Update package item", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "transport id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/package/item/delete/{id}": { + "delete": { + "tags": [ + "Package" + ], + "produces": [ + "application/json" + ], + "operationId": "deletePackageItem", + "summary": "Delete package item", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Package item id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/transport/create": { + "post": { + "tags": [ + "Transport" + ], + "produces": [ + "application/json" + ], + "operationId": "createTransport", + "summary": "Create transport", + "description": "", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Transport type", + "required": true, + "type": "integer" + }, + { + "name": "courier", + "in": "query", + "description": "Courier Provider Name", + "required": true, + "type": "string" + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/transport/list": { + "get": { + "tags": [ + "Transport" + ], + "produces": [ + "application/json" + ], + "operationId": "listTransport", + "summary": "List transport", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/transport/{id}/show": { + "get": { + "tags": [ + "Transport" + ], + "produces": [ + "application/json" + ], + "operationId": "showTransport", + "summary": "Show transport", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Transport id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/transport/update": { + "put": { + "tags": [ + "Transport" + ], + "produces": [ + "application/json" + ], + "operationId": "updateTransport", + "summary": "Update transport", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "transport id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/transport/delete/{id}": { + "delete": { + "tags": [ + "Transport" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteTransport", + "summary": "Delete transport", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Transport id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/schedule/create": { + "post": { + "tags": [ + "Schedule" + ], + "produces": [ + "application/json" + ], + "operationId": "createSchedule", + "summary": "Create schedule", + "description": "", + "parameters": [ + { + "name": "transport_id", + "in": "query", + "description": "Transport arrangment id", + "required": true, + "type": "integer" + }, + { + "name": "etd", + "in": "query", + "description": "Estimate time deliver", + "required": true, + "type": "string" + }, + { + "name": "eta", + "in": "query", + "description": "Estimate time arrival", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/schedule/list": { + "get": { + "tags": [ + "Schedule" + ], + "produces": [ + "application/json" + ], + "operationId": "listSchedule", + "summary": "List schedule", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/schedule/{id}/show": { + "get": { + "tags": [ + "Schedule" + ], + "produces": [ + "application/json" + ], + "operationId": "showSchedule", + "summary": "Show schedules", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Schedule id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/schedule/update": { + "put": { + "tags": [ + "Schedule" + ], + "produces": [ + "application/json" + ], + "operationId": "updateSchedule", + "summary": "Update schedule", + "description": "", + "parameters": [ + { + "name": "schedule_id", + "in": "query", + "description": "Schedule id", + "required": true, + "type": "integer" + }, + { + "name": "etd", + "in": "query", + "description": "Estimate time deliver", + "required": true, + "type": "string" + }, + { + "name": "eta", + "in": "query", + "description": "Estimate time arrival", + "required": true, + "type": "string" + }, + { + "name": "status", + "in": "query", + "description": "Status", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/schedule/delete/{id}": { + "delete": { + "tags": [ + "Schedule" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteSchedule", + "summary": "Delete schedule", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Schedule id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/remark/create": { + "post": { + "tags": [ + "Remark" + ], + "produces": [ + "application/json" + ], + "operationId": "createRemark", + "summary": "Create remark", + "description": "", + "parameters": [ + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/remark/update": { + "put": { + "tags": [ + "Remark" + ], + "produces": [ + "application/json" + ], + "operationId": "updateRemark", + "summary": "Update remark", + "description": "", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Remark id", + "required": true, + "type": "integer" + }, + { + "name": "commenter_id", + "in": "query", + "description": "Commenter id", + "required": true, + "type": "integer" + }, + { + "name": "comment", + "in": "query", + "description": "Comment", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/remark/{id}/show": { + "get": { + "tags": [ + "Remark" + ], + "produces": [ + "application/json" + ], + "operationId": "showRemark", + "summary": "Show remarks", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Remark id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/remark/delete/{id}": { + "delete": { + "tags": [ + "Remark" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteRemark", + "summary": "Delete remark", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Remark id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/remark/list": { + "get": { + "tags": [ + "Remark" + ], + "produces": [ + "application/json" + ], + "operationId": "listRemarks", + "summary": "List remarks", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/order/create": { + "post": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "createOrder", + "summary": "Create order", + "description": "", + "parameters": [ + { + "name": "company_module_id", + "in": "query", + "description": "Company Module ID", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/order/confirm/{id}": { + "put": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "confirmOrder", + "summary": "Admin confirms order", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Order ID", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/order/{id}/step/completes": { + "post": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "completeOrderStep", + "summary": "Completes order step", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Order Id", + "required": true, + "type": "integer" + }, + { + "name": "reference", + "in": "query", + "description": "Order step reference", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/create": { + "post": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "createAddress", + "summary": "Create address", + "description": "", + "parameters": [ + { + "name": "district_id", + "in": "query", + "description": "District id", + "required": true, + "type": "integer" + }, + { + "name": "street_one", + "in": "query", + "description": "Address line 1", + "required": true, + "type": "string" + }, + { + "name": "street_two", + "in": "query", + "description": "Address line 2", + "required": true, + "type": "string" + }, + { + "name": "post_code", + "in": "query", + "description": "Postcode of the address", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/delete/{id}": { + "delete": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteAddress", + "summary": "Delete address", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "District id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/district/list": { + "get": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "listDistrictAddress", + "summary": "List districts", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/list": { + "get": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "listAddress", + "summary": "List addresses of logged in user", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/{id}/show": { + "get": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "showAddress", + "summary": "List addresses of logged in user", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Address id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/{id}/default": { + "put": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "setDefaultAddress", + "summary": "Set default address", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Address id", + "required": true, + "type": "integer" + }, + { + "name": "district_id", + "in": "query", + "description": "District id", + "required": true, + "type": "integer" + }, + { + "name": "street_one", + "in": "query", + "description": "Address line 1", + "required": true, + "type": "string" + }, + { + "name": "street_two", + "in": "query", + "description": "Address line 2", + "required": true, + "type": "string" + }, + { + "name": "post_code", + "in": "query", + "description": "Postcode of the address", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/address/update/{id}": { + "put": { + "tags": [ + "Address" + ], + "produces": [ + "application/json" + ], + "operationId": "updateAddress", + "summary": "Set default address", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Address id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/account/authentication/login/check_email": { + "post": { + "tags": [ + "Account", + "Flow - Registration" + ], + "summary": "Check if email registered", + "description": "", + "operationId": "checkEmail", + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "name": "email", + "in": "query", + "description": "email", + "required": true, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/account/registration/registration": { + "post": { + "tags": [ + "Account", + "Flow - Registration" + ], + "produces": [ + "application/json" + ], + "summary": "Register user into the system", + "description": "", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of user", + "required": true, + "type": "string" + }, + { + "name": "email", + "in": "query", + "description": "The email for login", + "required": true, + "type": "string", + "format": "email" + }, + { + "name": "password", + "in": "query", + "description": "The password for login", + "required": true, + "type": "string", + "format": "password" + }, + { + "name": "password_confirmation", + "in": "query", + "description": "The confirmation password for login", + "required": true, + "type": "string", + "format": "password" + }, + { + "name": "type", + "in": "query", + "description": "Company Type - PERSONAL_BUSINESS:0 , COMPANY_BUSINESS:1", + "required": true, + "type": "integer" + }, + { + "name": "phone", + "in": "query", + "description": "Contact phone number", + "required": true, + "type": "string" + }, + { + "name": "contact_email", + "in": "query", + "description": "Contact email", + "required": true, + "type": "string" + }, + { + "name": "company_name", + "in": "query", + "description": "The company name - if not defined , name of user will save as the company name", + "required": false, + "type": "string" + }, + { + "name": "business_type", + "in": "query", + "description": "Business Type - FREIGHT_FORWARDER:1, IMPORTER:2, CURRENCY_VENDOR:3, WAREHOUSE:4", + "required": false, + "default": 2, + "type": "integer" + }, + { + "name": "wechat_id", + "in": "query", + "description": "Contact Wechat id", + "required": false, + "type": "string" + }, + { + "name": "files[0]", + "in": "query", + "description": "File need to convert to base64 example : 'data:application/pdf;base64,{Base64}';", + "required": true, + "type": "string" + }, + { + "name": "identification_no", + "in": "query", + "description": "Personal identification no or company registration no", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid username/password supplied" + } + } + } + }, + "/account/authentication/login/attempt": { + "post": { + "tags": [ + "Account" + ], + "produces": [ + "application/json" + ], + "summary": "Logs user into the system", + "operationId": "aaa", + "description": "", + "parameters": [ + { + "name": "email", + "in": "query", + "description": "The user name for login", + "required": true, + "type": "string" + }, + { + "name": "password", + "in": "query", + "description": "The password for login in clear text", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid username/password supplied" + } + } + } + }, + "/account/authentication/logout": { + "get": { + "tags": [ + "Account" + ], + "summary": "Logs out current logged in user session", + "description": "", + "operationId": "logoutUser", + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/account/user/list": { + "get": { + "tags": [ + "Account" + ], + "summary": "Logs out current logged in user session", + "description": "", + "operationId": "userList", + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/company/list": { + "get": { + "tags": [ + "Company" + ], + "summary": "List of Companies", + "description": "example filters={\"WithCompanyModuleType\":4,\"order_by\":{\"column\":\"id\",\"DESC\":true}} | to get list of company with company_module.Type(business type) = 4(Warehouse)", + "operationId": "companyList", + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "name": "filters", + "in": "query", + "description": "Eloquent Filter", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + }, + "/company/create": { + "post": { + "tags": [ + "Company" + ], + "summary": "Create company", + "description": "", + "operationId": "companyCreate", + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Company Type - PERSONAL_BUSINESS:0 , COMPANY_BUSINESS:1", + "required": true, + "type": "integer", + "enum": [ + 0, + 1 + ] + }, + { + "name": "business_type", + "in": "query", + "description": "Business Type - FREIGHT_FORWARDER:1, IMPORTER:2, CURRENCY_VENDOR:3, WAREHOUSE:4", + "required": true, + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + { + "name": "name", + "in": "query", + "description": "Fill in name if type = 0", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "description": "Fill in name if type = 0", + "required": false, + "type": "string" + }, + { + "name": "company_name", + "in": "query", + "description": "Fill in company_name if type = 1", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "successful operation" + } + } + } + } + }, + "securityDefinitions": { + "Authorization": { + "type": "apiKey", + "name": "api_key", + "in": "header" + }, + "petstore_auth": { + "type": "oauth2", + "authorizationUrl": "https://petstore.swagger.io/oauth/authorize", + "flow": "implicit", + "scopes": { + "read:pets": "read your pets", + "write:pets": "modify pets in your account" + } + } + }, + "definitions": { + "ApiResponse": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "message": { + "type": "string" + }, + "payload": { + "type": "object" + } + } + } + } } From d65b6305603c3abad2c81943e28256e1107debbc Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 16:14:54 +0800 Subject: [PATCH 10/19] WIP - Order steps & remaining APIs --- .../Processors/CreateOrderProcessor.php | 5 +- .../DataTransferObjects/PackageItemObject.php | 86 ++++++++++++++ .../DataTransferObjects/PackageObject.php | 107 ++++++++---------- .../ContainerPackingListObject.php | 37 ++++++ .../DataTransferObjects/PackingListObject.php | 84 ++------------ .../PackingListPackageObject.php | 30 +++++ .../ControllersLogic/CreateRemarkLogic.php | 4 +- .../ControllersLogic/UpdateRemarkLogic.php | 10 +- .../DataTransferObjects/RemarkObject.php | 10 +- .../Remarks/Services/CreatesRemark.php | 2 +- .../Remarks/Services/UpdatesRemark.php | 2 +- .../Standards/Validators/RemarkValidation.php | 4 +- .../Packages/DeletePackageController.php | 2 +- .../DeletePackingListController.php | 2 +- .../Remarks/DeleteRemarkController.php | 2 +- .../Schedules/DeleteScheduleController.php | 2 +- .../Transports/DeleteTransportController.php | 2 +- app/Http/Resources/RemarkResource.php | 2 +- resources/views/swagger/json.blade.php | 18 +-- 19 files changed, 241 insertions(+), 170 deletions(-) create mode 100644 app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php create mode 100644 app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php create mode 100644 app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 1252efe9..884eda4d 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -32,13 +32,12 @@ class CreateOrderProcessor public function execute(Request $request){ - //TODO: Generate internal reference number - //faker->numberBetween(1000000, 9999999), + $reference_no = rand(1000000, 9999999); //TODO: Call Unity to create contract and get contract reference no (and all the obligations) //$contract_reference_no = 99; - $order_object = new OrderObject($request->get('company_module_id'), $request->get('reference'), '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING); + $order_object = new OrderObject($request->get('company_module_id'), $reference_no, '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING); $this->canCreateOrder->passes($order_object); diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php new file mode 100644 index 00000000..27a404e0 --- /dev/null +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php @@ -0,0 +1,86 @@ +packageId = $packageId; + $this->name = $name; + $this->reference = $reference; + $this->description = $description; + $this->quantity = $quantity; + $this->uom = $uom; + $this->price = $price; + $this->total = $total; + $this->status = $status; + } + + public function getPackageId(): int + { + return $this->packageId; + } + + public function getName(): ?string + { + return $this->name; + } + + public function getReference(): ?string + { + return $this->reference; + } + + public function getDescription(): ?string + { + return $this->description; + } + + public function getQuantity(): int + { + return $this->quantity; + } + + public function getUom(): ?string + { + return $this->uom; + } + + public function getPrice(): double + { + return $this->price; + } + + public function getTotal(): double + { + return $this->total; + } + + public function getStatus(): int + { + return $this->status; + } + +} diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php index ae6112c1..1c0572dc 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php @@ -7,90 +7,81 @@ use App\Classes\General\Interfaces\DataTransferObject; class PackageObject implements DataTransferObject { - /** @var string */ - private $streetOne; + private $orderId; - /** @var string|null */ - private $streetTwo; + private $claimantId; - /** @var int */ - private $countryId; + private $type; - /** @var int */ - private $stateId; + private $description; - /** @var int */ - private $districtId; + private $width; - /** @var int */ - private $postCode; + private $height; - /** - * PackageObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode - */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + private $length; + + private $weight; + + private $quantity; + + private $status; + + public function __construct(int $orderId, ?int $claimantId, int $type, double $width, double $height, double $length, double $weight, int $quantity, int $status) { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + $this->orderId = $orderId; + $this->claimantId = $claimantId; + $this->type = $type; + $this->width = $width; + $this->height = $height; + $this->length = $length; + $this->weight = $weight; + $this->quantity = $quantity; + $this->status = $status; } - /** - * @return string - */ - public function getStreetOne(): string + public function getOrderId(): int { - return $this->streetOne; + return $this->orderId; } - /** - * @return null|string - */ - public function getStreetTwo(): ?string + public function getClaimantId(): ?int { - return $this->streetTwo; + return $this->claimantId; } - /** - * @return int - */ - public function getCountryId(): int + public function getType(): int { - return $this->countryId; + return $this->type; } - /** - * @return int - */ - public function getStateId(): int + public function getWidth(): double { - return $this->stateId; + return $this->width; } - /** - * @return int - */ - public function getDistrictId(): int + public function getHeight(): double { - return $this->districtId; + return $this->height; } - /** - * @return int - */ - public function getPostCode(): int + public function getLength(): double { - return $this->postCode; + return $this->length; } + public function getWeight(): double + { + return $this->weight; + } + public function getQuantity(): int + { + return $this->quantity; + } + + public function getStatus(): int + { + return $this->status; + } } diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php new file mode 100644 index 00000000..9d1298c7 --- /dev/null +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php @@ -0,0 +1,37 @@ +packingListId = $packingListId; + $this->containerReference = $containerReference; + $this->containerType = $containerType + } + + public function getPackingListId(): int + { + return $this->packingListId; + } + + public function getContainerReference(): ?string + { + return $this->containerReference; + } + + public function getContainerType(): int + { + return $this->containerType; + } +} diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php index 8410d893..c0dbe006 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListObject.php @@ -7,90 +7,24 @@ use App\Classes\General\Interfaces\DataTransferObject; class PackingListObject implements DataTransferObject { - /** @var string */ - private $streetOne; + private $reference; - /** @var string|null */ - private $streetTwo; + private $status; - /** @var int */ - private $countryId; - - /** @var int */ - private $stateId; - - /** @var int */ - private $districtId; - - /** @var int */ - private $postCode; - - /** - * PackingListObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode - */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function __construct(?string $reference, int $status) { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + $this->reference = $reference; + $this->status = $status; } - /** - * @return string - */ - public function getStreetOne(): string + public function getReference(): ?string { - return $this->streetOne; + return $this->reference; } - /** - * @return null|string - */ - public function getStreetTwo(): ?string + public function getStatus(): int { - return $this->streetTwo; + return $this->status; } - /** - * @return int - */ - public function getCountryId(): int - { - return $this->countryId; - } - - /** - * @return int - */ - public function getStateId(): int - { - return $this->stateId; - } - - /** - * @return int - */ - public function getDistrictId(): int - { - return $this->districtId; - } - - /** - * @return int - */ - public function getPostCode(): int - { - return $this->postCode; - } - - } diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php new file mode 100644 index 00000000..bf663f77 --- /dev/null +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php @@ -0,0 +1,30 @@ +packingListId = $packingListId; + $this->packageId = $packageId; + } + + public function getPackingListId(): int + { + return $this->packingListId; + } + + public function getPackageId(): int + { + return $this->packageId; + } + +} diff --git a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php index 81aa054b..a5bf50b0 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php @@ -57,11 +57,11 @@ class CreateRemarkLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); + $object = new RemarkObject($request->input('content'), $request->input('commenter_id')); $this->canCreateRemark->passes($object); - $query = $this->createsRemark->execute($this->fetches->execute(['id' => $request->input('commenter_id')]), $object); + $query = $this->createsRemark->execute($this->fetchesUser->execute(['id' => $request->input('commenter_id')]), $object); return $this->resourceResponse(new RemarkResource($query)); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php index 0649c857..3ddaebcd 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -2,11 +2,9 @@ namespace App\Classes\Modules\Remarks\ControllersLogic; - use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Remarks\Services\UpdatesRemark; use App\Classes\Modules\Remarks\Services\FetchesRemark; -use App\Classes\Modules\Remarks\Services\FetchesDistrict; use App\Classes\Modules\Remarks\Standards\Rules\CanUpdateRemark; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; use App\Http\Resources\RemarkResource; @@ -36,9 +34,6 @@ class UpdateRemarkLogic extends AbstractControllerLogic /** @var FetchesRemark */ private $fetchesRemark; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** * UpdateRemarkLogic constructor. * @param CanUpdateRemark $canUpdateRemark @@ -46,12 +41,11 @@ class UpdateRemarkLogic extends AbstractControllerLogic * @param FetchesRemark $fetchesRemark * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark) { $this->canUpdateRemark = $canUpdateRemark; $this->updatesRemark = $updatesRemark; $this->fetchesRemark = $fetchesRemark; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,7 +56,7 @@ class UpdateRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); + $object = new RemarkObject($request->input('content'), $request->input('commenter_id')); $this->canUpdateRemark->passes($object); diff --git a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php index e0c509e6..44a9507f 100644 --- a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php +++ b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php @@ -11,12 +11,12 @@ class RemarkObject implements DataTransferObject private $commenterID; /** @var string*/ - private $comment;; + private $content; - public function __construct(int $commenterID, string $comment) + public function __construct(string $content, int $commenterID) { $this->commenterID = $commenterID; - $this->comment = $comment; + $this->content = $content; } /** @@ -30,9 +30,9 @@ class RemarkObject implements DataTransferObject /** * @return string */ - public function getComment(): ?string + public function getContent(): ?string { - return $this->comment; + return $this->content; } } diff --git a/app/Classes/Modules/Remarks/Services/CreatesRemark.php b/app/Classes/Modules/Remarks/Services/CreatesRemark.php index 9bfe3303..8c221878 100644 --- a/app/Classes/Modules/Remarks/Services/CreatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/CreatesRemark.php @@ -21,7 +21,7 @@ class CreatesRemark extends AbstractUpdateRelationshipRecord $model = new Remark(); $model->commenter_id = $object->getCommenterId(); - $model->comment = $object->getComment(); + $model->content = $object->getContent(); return $this->handler($user->remarks(), $model); diff --git a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php index 6d0c61eb..4ba9501c 100644 --- a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php @@ -18,7 +18,7 @@ class UpdatesRemark extends AbstractUpdateRecord public function execute(Remark $model, RemarkObject $object) { $model->commenter_id = $object->getCommenterId(); - $model->comment = $object->getComment(); + $model->content = $object->getContent(); return $this->handler($model); diff --git a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php index afbd8b82..b35d3bde 100644 --- a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php +++ b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php @@ -17,7 +17,7 @@ class RemarkValidation extends AbstractValidation protected function data($object): array { return [ 'commenter_id' => $object->getCommenterId(), - 'comment' => $object->getComment(), + 'content' => $object->getContent(), ]; } @@ -27,7 +27,7 @@ class RemarkValidation extends AbstractValidation protected function rules(): array { return [ 'commenter_id' => 'required', - 'comment' => 'required', + 'content' => 'required', ]; } diff --git a/app/Http/Controllers/Packages/DeletePackageController.php b/app/Http/Controllers/Packages/DeletePackageController.php index a2dad9d0..a39a9cc2 100644 --- a/app/Http/Controllers/Packages/DeletePackageController.php +++ b/app/Http/Controllers/Packages/DeletePackageController.php @@ -13,7 +13,7 @@ class DeletePackageController * @param DeletePackageLogic $logic * @return JsonResponse */ - public function destroy(Request $request, DeletePackageLogic $logic): JsonResponse { + public function delete(Request $request, DeletePackageLogic $logic): JsonResponse { return $logic->execute($request); } diff --git a/app/Http/Controllers/PackingLists/DeletePackingListController.php b/app/Http/Controllers/PackingLists/DeletePackingListController.php index f2b18e5d..7bf70f04 100644 --- a/app/Http/Controllers/PackingLists/DeletePackingListController.php +++ b/app/Http/Controllers/PackingLists/DeletePackingListController.php @@ -13,7 +13,7 @@ class DeletePackingListController * @param DeletePackingListLogic $logic * @return JsonResponse */ - public function destroy(Request $request, DeletePackingListLogic $logic): JsonResponse { + public function delete(Request $request, DeletePackingListLogic $logic): JsonResponse { return $logic->execute($request); } diff --git a/app/Http/Controllers/Remarks/DeleteRemarkController.php b/app/Http/Controllers/Remarks/DeleteRemarkController.php index e6112495..8d0163c0 100644 --- a/app/Http/Controllers/Remarks/DeleteRemarkController.php +++ b/app/Http/Controllers/Remarks/DeleteRemarkController.php @@ -13,7 +13,7 @@ class DeleteRemarkController * @param DeleteRemarkLogic $logic * @return JsonResponse */ - public function destroy(Request $request, DeleteRemarkLogic $logic): JsonResponse { + public function delete(Request $request, DeleteRemarkLogic $logic): JsonResponse { return $logic->execute($request); } diff --git a/app/Http/Controllers/Schedules/DeleteScheduleController.php b/app/Http/Controllers/Schedules/DeleteScheduleController.php index de9d178c..492349fd 100644 --- a/app/Http/Controllers/Schedules/DeleteScheduleController.php +++ b/app/Http/Controllers/Schedules/DeleteScheduleController.php @@ -13,7 +13,7 @@ class DeleteRemarkController * @param DeleteScheduleLogic $logic * @return JsonResponse */ - public function destroy(Request $request, DeleteScheduleLogic $logic): JsonResponse { + public function delete(Request $request, DeleteScheduleLogic $logic): JsonResponse { return $logic->execute($request); } diff --git a/app/Http/Controllers/Transports/DeleteTransportController.php b/app/Http/Controllers/Transports/DeleteTransportController.php index 4b4fe378..c30f17ea 100644 --- a/app/Http/Controllers/Transports/DeleteTransportController.php +++ b/app/Http/Controllers/Transports/DeleteTransportController.php @@ -13,7 +13,7 @@ class DeleteRemarkController * @param DeleteTransportLogic $logic * @return JsonResponse */ - public function destroy(Request $request, DeleteTransportLogic $logic): JsonResponse { + public function delete(Request $request, DeleteTransportLogic $logic): JsonResponse { return $logic->execute($request); } diff --git a/app/Http/Resources/RemarkResource.php b/app/Http/Resources/RemarkResource.php index 72721f02..d5f93d79 100644 --- a/app/Http/Resources/RemarkResource.php +++ b/app/Http/Resources/RemarkResource.php @@ -17,7 +17,7 @@ class RemarkResource extends JsonResource return [ 'id' => $this->id, 'commenter_id' => $this->commenter_id, - 'comment' => $this->comment, + 'content' => $this->content, ]; } } diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 4dbc8fd3..1430611c 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -237,9 +237,9 @@ "type": "integer" }, { - "name": "comment", + "name": "content", "in": "query", - "description": "Comment", + "description": "Content", "required": true, "type": "string" } @@ -1621,9 +1621,9 @@ "type": "integer" }, { - "name": "comment", + "name": "content", "in": "query", - "description": "Comment", + "description": "Content", "required": true, "type": "string" } @@ -1653,7 +1653,7 @@ } } }, - "/remark/update": { + "/remark/update/{id}": { "put": { "tags": [ "Remark" @@ -1667,10 +1667,10 @@ "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "Remark id", "required": true, - "type": "integer" + "type": "string" }, { "name": "commenter_id", @@ -1680,9 +1680,9 @@ "type": "integer" }, { - "name": "comment", + "name": "content", "in": "query", - "description": "Comment", + "description": "Content", "required": true, "type": "string" } From 6ae3c64b3b762dd59b4f4be45ba78f132f2b05a2 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 16:36:37 +0800 Subject: [PATCH 11/19] WIP - Order steps & remaining APIs --- .../CreatePackageItemLogic.php | 88 +++++++++++++++++++ .../ControllersLogic/CreatePackageLogic.php | 23 +++-- .../Packages/Services/CreatesPackage.php | 25 +++--- .../Standards/Rules/CanCreatePackageItem.php | 57 ++++++++++++ .../Validators/PackageItemValidation.php | 51 +++++++++++ .../Validators/PackageValidation.php | 19 ++-- .../CreatePackingListLogic.php | 7 +- 7 files changed, 237 insertions(+), 33 deletions(-) create mode 100644 app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php create mode 100644 app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageItem.php create mode 100644 app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php new file mode 100644 index 00000000..e9bb89e5 --- /dev/null +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php @@ -0,0 +1,88 @@ + 'Created Package', + 'message' => 'You have successfully created a new Package' + ]; + } + + /** @var CanCreatePackage */ + private $canCreatePackage; + + /** @var FetchesDistrict */ + private $fetchesOrder; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesPackage */ + private $createsPackage; + + /** + * CreatePackageLogic constructor. + * @param CanCreatePackage $canCreatePackage + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesPackage $createsPackage + */ + public function __construct(CanCreatePackage $canCreatePackage, FetchesOrder $fetchesOrder, FetchesCompany $fetchesCompany, CreatesPackage $createsPackage) + { + $this->canCreatePackage = $canCreatePackage; + $this->fetchesOrder = $fetchesOrder; + $this->fetchesCompany = $fetchesCompany; + $this->createsPackage = $createsPackage; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]); + + $object = new PackageObject( + $order->id, + null, + $request->input('type'), + $request->input('width'), + $request->input('height'), + $request->input('length'), + $request->input('weight'), + $request->input('quantity'), + 0); + + $this->canCreatePackage->passes($object); + + $query = $this->createsPackage->execute($object); + + return $this->resourceResponse(new PackageResource($query)); + + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php index f3492f4f..e9bb89e5 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -5,7 +5,7 @@ namespace App\Classes\Modules\Packages\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Packages\Services\CreatesPackage; -use App\Classes\Modules\Packages\Services\FetchesDistrict; +use App\Classes\Modules\Orders\Services\FetchesOrder; use App\Classes\Modules\Packages\Standards\Rules\CanCreatePackage; use App\Classes\Modules\Packages\DataTransferObjects\PackageObject; use App\Classes\Modules\Companies\Services\FetchesCompany; @@ -31,7 +31,7 @@ class CreatePackageLogic extends AbstractControllerLogic private $canCreatePackage; /** @var FetchesDistrict */ - private $fetchesDistrict; + private $fetchesOrder; /** @var FetchesCompany */ private $fetchesCompany; @@ -46,10 +46,10 @@ class CreatePackageLogic extends AbstractControllerLogic * @param FetchesCompany $fetchesCompany * @param CreatesPackage $createsPackage */ - public function __construct(CanCreatePackage $canCreatePackage, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesPackage $createsPackage) + public function __construct(CanCreatePackage $canCreatePackage, FetchesOrder $fetchesOrder, FetchesCompany $fetchesCompany, CreatesPackage $createsPackage) { $this->canCreatePackage = $canCreatePackage; - $this->fetchesDistrict = $fetchesDistrict; + $this->fetchesOrder = $fetchesOrder; $this->fetchesCompany = $fetchesCompany; $this->createsPackage = $createsPackage; } @@ -64,13 +64,22 @@ class CreatePackageLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]); - $object = new PackageObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new PackageObject( + $order->id, + null, + $request->input('type'), + $request->input('width'), + $request->input('height'), + $request->input('length'), + $request->input('weight'), + $request->input('quantity'), + 0); $this->canCreatePackage->passes($object); - $query = $this->createsPackage->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsPackage->execute($object); return $this->resourceResponse(new PackageResource($query)); diff --git a/app/Classes/Modules/Packages/Services/CreatesPackage.php b/app/Classes/Modules/Packages/Services/CreatesPackage.php index 4e09e48c..352d38e8 100644 --- a/app/Classes/Modules/Packages/Services/CreatesPackage.php +++ b/app/Classes/Modules/Packages/Services/CreatesPackage.php @@ -10,23 +10,18 @@ use App\Models\Company; class CreatesPackage extends AbstractUpdateRelationshipRecord { - - /** - * @param Company $company - * @param PackageObject $object - * @return \Illuminate\Database\Eloquent\Model - * @throws \App\Classes\Exceptions\MalformedRequestException - */ - public function execute(Company $company, PackageObject $object) { + public function execute(PackageObject $object) { $model = new Package(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); + $model->order_id = $object->orderId(); + $model->claimant_id = $object->claimantId(); + $model->type = $object->type(); + $model->width = $object->width(); + $model->height = $object->height(); + $model->length = $object->length(); + $model->length = $object->weight(); + $model->length = $object->quantity(); - return $this->handler($company->Packages(), $model); + return $this->handler($model); } } diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageItem.php b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageItem.php new file mode 100644 index 00000000..d94d7bdd --- /dev/null +++ b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageItem.php @@ -0,0 +1,57 @@ +packageItemValidation = $packageItemValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackageObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->packageItemValidation->validate($object); + + } + + + /** + * @param PackageObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php b/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php new file mode 100644 index 00000000..cf237b9f --- /dev/null +++ b/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php @@ -0,0 +1,51 @@ + $object->getOrderId(), + 'type' => $object->getType(), + 'width' => $object->getWidth(), + 'height' => $object->getHeight(), + 'length' => $object->getLength(), + 'weight' => $object->getWeight(), + 'quantity' => $object->getQuantity(), + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'order_id' => 'required', + 'type' => 'required', + 'width' => 'required', + 'height' => 'required', + 'length' => 'required', + 'weight' => 'required', + 'quantity' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php index 2cbf304e..cf237b9f 100644 --- a/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php +++ b/app/Classes/Modules/Packages/Standards/Validators/PackageValidation.php @@ -16,9 +16,13 @@ class PackageValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'order_id' => $object->getOrderId(), + 'type' => $object->getType(), + 'width' => $object->getWidth(), + 'height' => $object->getHeight(), + 'length' => $object->getLength(), + 'weight' => $object->getWeight(), + 'quantity' => $object->getQuantity(), ]; } @@ -27,8 +31,13 @@ class PackageValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'order_id' => 'required', + 'type' => 'required', + 'width' => 'required', + 'height' => 'required', + 'length' => 'required', + 'weight' => 'required', + 'quantity' => 'required', ]; } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php index 600b452e..be09d7a8 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -5,7 +5,6 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackingLists\Services\CreatesPackingList; -use App\Classes\Modules\PackingLists\Services\FetchesDistrict; use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList; use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject; use App\Classes\Modules\Companies\Services\FetchesCompany; @@ -30,9 +29,6 @@ class CreatePackingListLogic extends AbstractControllerLogic /** @var CanCreatePackingList */ private $canCreatePackingList; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** @var FetchesCompany */ private $fetchesCompany; @@ -46,10 +42,9 @@ class CreatePackingListLogic extends AbstractControllerLogic * @param FetchesCompany $fetchesCompany * @param CreatesPackingList $createsPackingList */ - public function __construct(CanCreatePackingList $canCreatePackingList, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) + public function __construct(CanCreatePackingList $canCreatePackingList, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) { $this->canCreatePackingList = $canCreatePackingList; - $this->fetchesDistrict = $fetchesDistrict; $this->fetchesCompany = $fetchesCompany; $this->createsPackingList = $createsPackingList; } From d5dd26ae73483d821b8a8330712ff51a26d7382b Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 18:31:52 +0800 Subject: [PATCH 12/19] WIP - Order steps & remaining APIs --- .../CreatePackageItemLogic.php | 86 +++++++++ .../DeletePackageItemLogic.php | 73 ++++++++ .../FetchPackageItemLogic.php | 66 +++++++ .../ListPackageItemsLogic.php | 66 +++++++ .../UpdatePackageItemLogic.php | 86 +++++++++ .../DataTransferObjects/PackageItemObject.php | 8 +- .../Services/CreatesPackageItem.php | 26 +++ .../Services/DeletesPackageItem.php | 19 ++ .../Services/FetchesPackageItem.php | 33 ++++ .../Services/ListsPackageItems.php | 33 ++++ .../Services/UpdatesPackageItem.php | 25 +++ .../Standards/Rules/CanCreatePackageItem.php | 57 ++++++ .../Standards/Rules/CanDeletePackageItem.php | 43 +++++ .../Standards/Rules/CanFetchPackageItem.php | 43 +++++ .../Standards/Rules/CanListPackageItems.php | 43 +++++ .../Standards/Rules/CanUpdatePackageItem.php | 57 ++++++ .../Validators/PackageItemValidation.php | 52 ++++++ .../CreatePackageItemLogic.php | 88 --------- .../ControllersLogic/CreatePackageLogic.php | 1 + .../DataTransferObjects/PackageObject.php | 16 +- .../Packages/Services/CreatesPackage.php | 22 +-- .../Packages/Services/UpdatesPackage.php | 25 +-- .../Validators/PackageItemValidation.php | 51 ------ .../DataTransferObjects/ReceiptObject.php | 58 +++--- .../CreatePackageItemController.php | 20 ++ .../DeletePackageItemController.php | 20 ++ .../FetchPackageItemController.php | 20 ++ .../ListPackageItemsController.php | 20 ++ .../UpdatePackageItemController.php | 20 ++ app/Http/Resources/PackageItemResource.php | 30 +++ ...021_07_21_110051_create_packages_table.php | 4 +- resources/views/swagger/json.blade.php | 172 ++++++++++++++---- routes/api.php | 2 + routes/package.php | 14 +- routes/packinglist.php | 11 ++ 35 files changed, 1160 insertions(+), 250 deletions(-) create mode 100644 app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php create mode 100644 app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php create mode 100644 app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php create mode 100644 app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php create mode 100644 app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php rename app/Classes/Modules/{Packages => PackageItems}/DataTransferObjects/PackageItemObject.php (88%) create mode 100644 app/Classes/Modules/PackageItems/Services/CreatesPackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Services/DeletesPackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Services/ListsPackageItems.php create mode 100644 app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Rules/CanCreatePackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Rules/CanDeletePackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Rules/CanFetchPackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Rules/CanListPackageItems.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Rules/CanUpdatePackageItem.php create mode 100644 app/Classes/Modules/PackageItems/Standards/Validators/PackageItemValidation.php delete mode 100644 app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php delete mode 100644 app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php create mode 100644 app/Http/Controllers/Packages/PackageItems/CreatePackageItemController.php create mode 100644 app/Http/Controllers/Packages/PackageItems/DeletePackageItemController.php create mode 100644 app/Http/Controllers/Packages/PackageItems/FetchPackageItemController.php create mode 100644 app/Http/Controllers/Packages/PackageItems/ListPackageItemsController.php create mode 100644 app/Http/Controllers/Packages/PackageItems/UpdatePackageItemController.php create mode 100644 app/Http/Resources/PackageItemResource.php create mode 100644 routes/packinglist.php diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php new file mode 100644 index 00000000..f935f7c5 --- /dev/null +++ b/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php @@ -0,0 +1,86 @@ + 'Created PackageItem', + 'message' => 'You have successfully created a new PackageItem' + ]; + } + + /** @var CanCreatePackageItem */ + private $canCreatePackageItem; + + /** @var FetchesPackage */ + private $fetchesPackage; + + /** @var CreatesPackageItem */ + private $createsPackageItem; + + /** + * CreatePackageItemLogic constructor. + * @param CanCreatePackageItem $canCreatePackageItem + * @param FetchesPackage $fetchesPackage + * @param CreatesPackageItem $createsPackageItem + */ + public function __construct(CanCreatePackageItem $canCreatePackageItem, FetchesPackage $fetchesPackage, CreatesPackageItem $createsPackageItem) + { + $this->canCreatePackageItem = $canCreatePackageItem; + $this->fetchesPackage = $fetchesPackage; + $this->createsPackageItem = $createsPackageItem; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $package = $this->fetchesPackage->execute(['id' => $request->input('package_id')]); + + $reference_no = rand(1000000, 9999999); + + $object = new PackageItemObject( + $package->id, + $request->input('name'), + $reference_no, + $request->input('description'), + $request->input('quantity'), + $request->input('uom'), + $request->input('price'), + $request->input('total'), + 0); + + $this->canCreatePackageItem->passes($object); + + $query = $this->createsPackageItem->execute($object); + + return $this->resourceResponse(new PackageItemResource($query)); + + } + +} diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php new file mode 100644 index 00000000..0e9ea84b --- /dev/null +++ b/app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php @@ -0,0 +1,73 @@ + 'Deleted PackageItem', + 'message' => 'You have successfully deleted a PackageItem' + ]; + } + + + /** @var CanDeletePackageItem */ + private $canDeletePackageItem; + + /** @var DeletesPackageItem */ + private $deletesPackageItem; + + /** @var FetchesPackageItem */ + private $fetchesPackageItem; + + /** + * DeletePackageItemControllersLogic constructor. + * @param CanDeletePackageItem $canDeletePackageItem + * @param DeletesPackageItem $deletesPackageItem + * @param FetchesPackageItem $fetchesPackageItem + */ + public function __construct(CanDeletePackageItem $canDeletePackageItem, DeletesPackageItem $deletesPackageItem, FetchesPackageItem $fetchesPackageItem) + { + $this->canDeletePackageItem = $canDeletePackageItem; + $this->deletesPackageItem = $deletesPackageItem; + $this->fetchesPackageItem = $fetchesPackageItem; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeletePackageItem->passes(); + + $query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); + + $this->deletesPackageItem->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php new file mode 100644 index 00000000..4013720e --- /dev/null +++ b/app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php @@ -0,0 +1,66 @@ + 'Retrieved PackageItem', + 'message' => 'You have successfully retrieved a PackageItem' + ]; + } + + /** @var CanFetchPackageItem */ + private $canFetchPackageItem; + + /** @var FetchesPackageItem */ + private $fetchesPackageItem; + + /** + * FetchPackageItemControllersLogic constructor. + * @param CanFetchPackageItem $canFetchPackageItem + * @param FetchesPackageItem $fetchesPackageItem + */ + public function __construct(CanFetchPackageItem $canFetchPackageItem, FetchesPackageItem $fetchesPackageItem) + { + $this->canFetchPackageItem = $canFetchPackageItem; + $this->fetchesPackageItem = $fetchesPackageItem; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchPackageItem->passes(); + + $query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new PackageItemResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php new file mode 100644 index 00000000..268a9624 --- /dev/null +++ b/app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php @@ -0,0 +1,66 @@ + 'Retrieved PackageItems', + 'message' => 'You have successfully retrieved a list of PackageItems' + ]; + } + + /** @var CanListPackageItems */ + private $canListPackageItems; + + /** @var ListsPackageItems */ + private $listsPackageItems; + + /** + * ListPackageItemsLogic constructor. + * @param CanListPackageItems $canListPackageItems + * @param ListsPackageItems $listsPackageItems + */ + public function __construct(CanListPackageItems $canListPackageItems, ListsPackageItems $listsPackageItems) + { + $this->canListPackageItems = $canListPackageItems; + $this->listsPackageItems = $listsPackageItems; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListPackageItems->passes(); + + $query = $this->listsPackageItems->execute($this->listsPackageItems->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(PackageItemResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php new file mode 100644 index 00000000..5e61dc2e --- /dev/null +++ b/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php @@ -0,0 +1,86 @@ + 'Updated PackageItem', + 'message' => 'You have successfully updated the PackageItem' + ]; + } + + /** @var CanUpdatePackageItem */ + private $canUpdatePackageItem; + + /** @var UpdatesPackageItem */ + private $updatesPackageItem; + + /** @var FetchesPackageItem */ + private $fetchesPackageItem; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdatePackageItemLogic constructor. + * @param CanUpdatePackageItem $canUpdatePackageItem + * @param UpdatesPackageItem $updatesPackageItem + * @param FetchesPackageItem $fetchesPackageItem + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesPackageItem $fetchesPackageItem, FetchesDistrict $fetchesDistrict) + { + $this->canUpdatePackageItem = $canUpdatePackageItem; + $this->updatesPackageItem = $updatesPackageItem; + $this->fetchesPackageItem = $fetchesPackageItem; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new PackageItemObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new PackageItemObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdatePackageItem->passes($object); + + $query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); + + $query = $this->updatesPackageItem->execute($query, $object); + + return $this->resourceResponse(new PackageItemResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php b/app/Classes/Modules/PackageItems/DataTransferObjects/PackageItemObject.php similarity index 88% rename from app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php rename to app/Classes/Modules/PackageItems/DataTransferObjects/PackageItemObject.php index 27a404e0..ce40104e 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackageItemObject.php +++ b/app/Classes/Modules/PackageItems/DataTransferObjects/PackageItemObject.php @@ -1,6 +1,6 @@ packageId = $packageId; $this->name = $name; @@ -68,12 +68,12 @@ class PackageItemObject implements DataTransferObject return $this->uom; } - public function getPrice(): double + public function getPrice(): float { return $this->price; } - public function getTotal(): double + public function getTotal(): float { return $this->total; } diff --git a/app/Classes/Modules/PackageItems/Services/CreatesPackageItem.php b/app/Classes/Modules/PackageItems/Services/CreatesPackageItem.php new file mode 100644 index 00000000..6124f720 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Services/CreatesPackageItem.php @@ -0,0 +1,26 @@ +package_id = $object->getPackageId(); + $model->name = $object->getName(); + $model->reference = $object->getReference(); + $model->description = $object->getDescription(); + $model->quantity = $object->getQuantity(); + $model->uom = $object->getUom(); + $model->price = $object->getPrice(); + $model->total = $object->getTotal(); + $model->status = $object->getStatus(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/PackageItems/Services/DeletesPackageItem.php b/app/Classes/Modules/PackageItems/Services/DeletesPackageItem.php new file mode 100644 index 00000000..c5506a1a --- /dev/null +++ b/app/Classes/Modules/PackageItems/Services/DeletesPackageItem.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php b/app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php new file mode 100644 index 00000000..a31b95e0 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/PackageItems/Services/ListsPackageItems.php b/app/Classes/Modules/PackageItems/Services/ListsPackageItems.php new file mode 100644 index 00000000..5a616642 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Services/ListsPackageItems.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php b/app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php new file mode 100644 index 00000000..68a15ce2 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php @@ -0,0 +1,25 @@ +name = $object->getName(); + $model->reference = $object->getReference(); + $model->description = $object->getDescription(); + $model->quantity = $object->getQuantity(); + $model->uom = $object->getUom(); + $model->price = $object->getPrice(); + $model->total = $object->getTotal(); + $model->status = $object->getStatus(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/PackageItems/Standards/Rules/CanCreatePackageItem.php b/app/Classes/Modules/PackageItems/Standards/Rules/CanCreatePackageItem.php new file mode 100644 index 00000000..80faf565 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Standards/Rules/CanCreatePackageItem.php @@ -0,0 +1,57 @@ +packageItemValidation = $packageItemValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackageItemObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->packageItemValidation->validate($object); + + } + + + /** + * @param PackageItemObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackageItems/Standards/Rules/CanDeletePackageItem.php b/app/Classes/Modules/PackageItems/Standards/Rules/CanDeletePackageItem.php new file mode 100644 index 00000000..4d5f34d5 --- /dev/null +++ b/app/Classes/Modules/PackageItems/Standards/Rules/CanDeletePackageItem.php @@ -0,0 +1,43 @@ +PackageItemValidation = $PackageItemValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackageItemObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->PackageItemValidation->validate($object); + + } + + + /** + * @param PackageItemObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackageItems/Standards/Validators/PackageItemValidation.php b/app/Classes/Modules/PackageItems/Standards/Validators/PackageItemValidation.php new file mode 100644 index 00000000..d827c21d --- /dev/null +++ b/app/Classes/Modules/PackageItems/Standards/Validators/PackageItemValidation.php @@ -0,0 +1,52 @@ + $object->getPackageId(), + 'name' => $object->getName(), + 'reference' => $object->getReference(), + 'description' => $object->getDescription(), + 'quantity' => $object->getQuantity(), + 'uom' => $object->getUom(), + 'price' => $object->getPrice(), + 'total' => $object->getTotal(), + 'status' => $object->getStatus(), + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'package_id' => 'required', + 'name' => 'required', + 'reference' => 'required', + 'quantity' => 'required', + 'price' => 'required', + 'total' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php deleted file mode 100644 index e9bb89e5..00000000 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageItemLogic.php +++ /dev/null @@ -1,88 +0,0 @@ - 'Created Package', - 'message' => 'You have successfully created a new Package' - ]; - } - - /** @var CanCreatePackage */ - private $canCreatePackage; - - /** @var FetchesDistrict */ - private $fetchesOrder; - - /** @var FetchesCompany */ - private $fetchesCompany; - - /** @var CreatesPackage */ - private $createsPackage; - - /** - * CreatePackageLogic constructor. - * @param CanCreatePackage $canCreatePackage - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany - * @param CreatesPackage $createsPackage - */ - public function __construct(CanCreatePackage $canCreatePackage, FetchesOrder $fetchesOrder, FetchesCompany $fetchesCompany, CreatesPackage $createsPackage) - { - $this->canCreatePackage = $canCreatePackage; - $this->fetchesOrder = $fetchesOrder; - $this->fetchesCompany = $fetchesCompany; - $this->createsPackage = $createsPackage; - } - - /** - * @param Request $request - * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException - */ - public function logic(Request $request) : JsonResponse - { - - $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]); - - $object = new PackageObject( - $order->id, - null, - $request->input('type'), - $request->input('width'), - $request->input('height'), - $request->input('length'), - $request->input('weight'), - $request->input('quantity'), - 0); - - $this->canCreatePackage->passes($object); - - $query = $this->createsPackage->execute($object); - - return $this->resourceResponse(new PackageResource($query)); - - } - -} diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php index e9bb89e5..4fcf1613 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -70,6 +70,7 @@ class CreatePackageLogic extends AbstractControllerLogic $order->id, null, $request->input('type'), + $request->input('description'), $request->input('width'), $request->input('height'), $request->input('length'), diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php index 1c0572dc..7672c3c6 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php @@ -27,11 +27,12 @@ class PackageObject implements DataTransferObject private $status; - public function __construct(int $orderId, ?int $claimantId, int $type, double $width, double $height, double $length, double $weight, int $quantity, int $status) + public function __construct(int $orderId, ?int $claimantId, int $type, ?string $description, float $width, float $height, float $length, float $weight, int $quantity, int $status) { $this->orderId = $orderId; $this->claimantId = $claimantId; $this->type = $type; + $this->description = $description; $this->width = $width; $this->height = $height; $this->length = $length; @@ -55,22 +56,27 @@ class PackageObject implements DataTransferObject return $this->type; } - public function getWidth(): double + public function getDescription(): ?string + { + return $this->description; + } + + public function getWidth(): float { return $this->width; } - public function getHeight(): double + public function getHeight(): float { return $this->height; } - public function getLength(): double + public function getLength(): float { return $this->length; } - public function getWeight(): double + public function getWeight(): float { return $this->weight; } diff --git a/app/Classes/Modules/Packages/Services/CreatesPackage.php b/app/Classes/Modules/Packages/Services/CreatesPackage.php index 352d38e8..e7c8ad94 100644 --- a/app/Classes/Modules/Packages/Services/CreatesPackage.php +++ b/app/Classes/Modules/Packages/Services/CreatesPackage.php @@ -3,23 +3,23 @@ namespace App\Classes\Modules\Packages\Services; use App\Classes\General\Eloquent\AbstractUpdateRecord; -use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Packages\DataTransferObjects\PackageObject; use App\Models\Package; -use App\Models\Company; -class CreatesPackage extends AbstractUpdateRelationshipRecord +class CreatesPackage extends AbstractUpdateRecord { public function execute(PackageObject $object) { $model = new Package(); - $model->order_id = $object->orderId(); - $model->claimant_id = $object->claimantId(); - $model->type = $object->type(); - $model->width = $object->width(); - $model->height = $object->height(); - $model->length = $object->length(); - $model->length = $object->weight(); - $model->length = $object->quantity(); + $model->order_id = $object->getOrderId(); + $model->claimant_id = $object->getClaimantId(); + $model->type = $object->getType(); + $model->description = $object->getDescription(); + $model->width = $object->getWidth(); + $model->height = $object->getHeight(); + $model->length = $object->getLength(); + $model->weight = $object->getWeight(); + $model->quantity = $object->getQuantity(); + $model->status = $object->getStatus(); return $this->handler($model); diff --git a/app/Classes/Modules/Packages/Services/UpdatesPackage.php b/app/Classes/Modules/Packages/Services/UpdatesPackage.php index bdee9f3e..90488bc8 100644 --- a/app/Classes/Modules/Packages/Services/UpdatesPackage.php +++ b/app/Classes/Modules/Packages/Services/UpdatesPackage.php @@ -8,24 +8,17 @@ use App\Models\Package; class UpdatesPackage extends AbstractUpdateRecord { - - /** - * @param Package $model - * @param PackageObject $object - * @return \Illuminate\Database\Eloquent\Model - * @throws \App\Classes\Exceptions\MalformedRequestException - */ public function execute(Package $model, PackageObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->claimant_id = $object->getClaimantId(); + $model->type = $object->getType(); + $model->description = $object->getDescription(); + $model->width = $object->getWidth(); + $model->height = $object->getHeight(); + $model->length = $object->getLength(); + $model->weight = $object->getWeight(); + $model->quantity = $object->getQuantity(); + $model->status = $object->getStatus(); return $this->handler($model); diff --git a/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php b/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php deleted file mode 100644 index cf237b9f..00000000 --- a/app/Classes/Modules/Packages/Standards/Validators/PackageItemValidation.php +++ /dev/null @@ -1,51 +0,0 @@ - $object->getOrderId(), - 'type' => $object->getType(), - 'width' => $object->getWidth(), - 'height' => $object->getHeight(), - 'length' => $object->getLength(), - 'weight' => $object->getWeight(), - 'quantity' => $object->getQuantity(), - ]; - } - - /** - * @return array - */ - protected function rules(): array { - return [ - 'order_id' => 'required', - 'type' => 'required', - 'width' => 'required', - 'height' => 'required', - 'length' => 'required', - 'weight' => 'required', - 'quantity' => 'required', - ]; - } - - /** - * @return array - */ - protected function messages(): array { - return []; - } - -} diff --git a/app/Classes/Modules/Receipts/DataTransferObjects/ReceiptObject.php b/app/Classes/Modules/Receipts/DataTransferObjects/ReceiptObject.php index 91107fc3..7554fb2f 100644 --- a/app/Classes/Modules/Receipts/DataTransferObjects/ReceiptObject.php +++ b/app/Classes/Modules/Receipts/DataTransferObjects/ReceiptObject.php @@ -8,17 +8,17 @@ class ReceiptObject implements DataTransferObject { /* - * + * * return [ 'id' => $this->id, 'trans_type1' => $this->trans_type1, 'trans_type2' => $this->trans_type2, 'bill_no' => (int) $this->bill_no, - 'amount' => (double) $this->amount, + 'amount' => (float) $this->amount, 'currency_id' => (int) $this->currency_id, - 'original_amount' => (double) $this->original_amount, + 'original_amount' => (float) $this->original_amount, 'original_currency_id' => (int) $this->original_currency_id, - 'currency_rate' => (double) $this->currency_rate, + 'currency_rate' => (float) $this->currency_rate, 'dt_transaction' => $this->dt_transaction, 'status' => (int) $this->status, 'booking_id' => (int) $this->booking_id, @@ -26,29 +26,29 @@ class ReceiptObject implements DataTransferObject ]; */ private $trans_type1; - + private $trans_type2; - + private $bill_no; - + private $amount; - + private $currency_id; - + private $original_amount; - + private $original_currency_id; private $currency_rate; - + private $dt_transaction; - + private $status; - + private $booking_id; - + private $company_id; - + public function __construct( int $bill_no,string $trans_type1,string $trans_type2, float $amount, int $currency_id, int $original_amount, @@ -70,7 +70,7 @@ class ReceiptObject implements DataTransferObject $this->company_id = $company_id; } - + /** * @return int */ @@ -78,7 +78,7 @@ class ReceiptObject implements DataTransferObject { return $this->bill_no; } - + /** * @return string */ @@ -86,7 +86,7 @@ class ReceiptObject implements DataTransferObject { return $this->trans_type1; } - + /** * @return string */ @@ -94,8 +94,8 @@ class ReceiptObject implements DataTransferObject { return $this->trans_type2; } - - + + public function getAmount(): float { return $this->amount; @@ -108,23 +108,23 @@ class ReceiptObject implements DataTransferObject { return $this->currency_id; } - - + + public function getOriginalAmount(): float { return $this->original_amount; } - + public function getOriginalCurrency(): int { return $this->original_currency_id; } - + public function getCurrencyRate(): float { return $this->currency_rate; } - + /** * @return string */ @@ -132,19 +132,19 @@ class ReceiptObject implements DataTransferObject { return $this->dt_transaction; } - + public function getStatus(): int { return $this->original_currency_id; } - + public function getBookingId(): int { return $this->booking_id; } - + public function getCompanyId(): int { return $this->company_id; } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/Packages/PackageItems/CreatePackageItemController.php b/app/Http/Controllers/Packages/PackageItems/CreatePackageItemController.php new file mode 100644 index 00000000..4334e044 --- /dev/null +++ b/app/Http/Controllers/Packages/PackageItems/CreatePackageItemController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/PackageItems/DeletePackageItemController.php b/app/Http/Controllers/Packages/PackageItems/DeletePackageItemController.php new file mode 100644 index 00000000..3e2e9ea5 --- /dev/null +++ b/app/Http/Controllers/Packages/PackageItems/DeletePackageItemController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/PackageItems/FetchPackageItemController.php b/app/Http/Controllers/Packages/PackageItems/FetchPackageItemController.php new file mode 100644 index 00000000..c2e808b2 --- /dev/null +++ b/app/Http/Controllers/Packages/PackageItems/FetchPackageItemController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/PackageItems/ListPackageItemsController.php b/app/Http/Controllers/Packages/PackageItems/ListPackageItemsController.php new file mode 100644 index 00000000..9f701bf9 --- /dev/null +++ b/app/Http/Controllers/Packages/PackageItems/ListPackageItemsController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Packages/PackageItems/UpdatePackageItemController.php b/app/Http/Controllers/Packages/PackageItems/UpdatePackageItemController.php new file mode 100644 index 00000000..1406f45f --- /dev/null +++ b/app/Http/Controllers/Packages/PackageItems/UpdatePackageItemController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Resources/PackageItemResource.php b/app/Http/Resources/PackageItemResource.php new file mode 100644 index 00000000..02be692c --- /dev/null +++ b/app/Http/Resources/PackageItemResource.php @@ -0,0 +1,30 @@ + $this->id, + 'package_id' => $this->package_id, + 'name' => $this->name, + 'reference' => $this->reference, + 'description' => $this->description, + 'quantity' => $this->quantity, + 'uom' => $this->uom, + 'price' => $this->price, + 'total' => $this->total, + 'status' => $this->status, + ]; + } +} diff --git a/database/migrations/2021_07_21_110051_create_packages_table.php b/database/migrations/2021_07_21_110051_create_packages_table.php index b23fb84d..a21244ea 100644 --- a/database/migrations/2021_07_21_110051_create_packages_table.php +++ b/database/migrations/2021_07_21_110051_create_packages_table.php @@ -16,10 +16,10 @@ class CreatePackagesTable extends Migration Schema::create('packages', function (Blueprint $table) { $table->id(); $table->bigInteger('order_id')->unsigned()->index(); - $table->bigInteger('claimant_id')->unsigned()->index(); + $table->bigInteger('claimant_id')->unsigned()->index()->nullable(true); $table->integer('type')->default(0); - $table->string('description',45); + $table->string('description',45)->nullable(true); $table->decimal('width', 8, 2); $table->decimal('height', 8, 2); diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 1430611c..b8eed680 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -583,26 +583,61 @@ "description": "", "parameters": [ { - "name": "type", + "name": "order_id", "in": "query", - "description": "Transport type", + "description": "Order Id", "required": true, "type": "integer" }, { - "name": "courier", + "name": "description", "in": "query", - "description": "Courier Provider Name", - "required": true, + "description": "Description", + "required": false, "type": "string" }, { - "name": "tracking_number", + "name": "type", "in": "query", - "description": "Tracking No.", + "description": "Package type", "required": true, - "type": "string" - } + "type": "integer" + }, + { + "name": "width", + "in": "query", + "description": "Width", + "required": true, + "type": "number" + }, + { + "name": "height", + "in": "query", + "description": "Height", + "required": true, + "type": "number" + }, + { + "name": "length", + "in": "query", + "description": "Length", + "required": true, + "type": "number" + }, + { + "name": "weight", + "in": "query", + "description": "Weight", + "required": true, + "type": "number" + }, + { + "name": "quantity", + "in": "query", + "description": "Quantity", + "required": true, + "type": "integer" + }, ], "responses": { "200": { @@ -722,7 +757,7 @@ } } }, - "/package/update": { + "/package/update/{id}": { "put": { "tags": [ "Package" @@ -736,25 +771,60 @@ "parameters": [ { "name": "id", - "in": "query", - "description": "transport id", - "required": true, - "type": "integer" - }, - { - "name": "commenter_id", - "in": "query", - "description": "Commenter id", - "required": true, - "type": "integer" - }, - { - "name": "comment", - "in": "query", - "description": "Comment", + "in": "path", + "description": "Package id", "required": true, "type": "string" - } + }, + { + "name": "description", + "in": "query", + "description": "Description", + "required": false, + "type": "string" + }, + { + "name": "type", + "in": "query", + "description": "Package type", + "required": true, + "type": "integer" + }, + { + "name": "width", + "in": "query", + "description": "Width", + "required": true, + "type": "number" + }, + { + "name": "height", + "in": "query", + "description": "Height", + "required": true, + "type": "number" + }, + { + "name": "length", + "in": "query", + "description": "Length", + "required": true, + "type": "number" + }, + { + "name": "weight", + "in": "query", + "description": "Weight", + "required": true, + "type": "number" + }, + { + "name": "quantity", + "in": "query", + "description": "Quantity", + "required": true, + "type": "integer" + }, ], "responses": { "200": { @@ -839,26 +909,54 @@ "description": "", "parameters": [ { - "name": "type", + "name": "package_id", "in": "query", - "description": "Transport type", + "description": "Package Id", "required": true, "type": "integer" }, { - "name": "courier", + "name": "name", "in": "query", "description": "Courier Provider Name", "required": true, "type": "string" }, { - "name": "tracking_number", + "name": "description", "in": "query", - "description": "Tracking No.", + "description": "Description", + "required": false, + "type": "string" + }, + { + "name": "quantity", + "in": "query", + "description": "Quantity", + "required": true, + "type": "number" + }, + { + "name": "uom", + "in": "query", + "description": "UOM", "required": true, "type": "string" - } + }, + { + "name": "price", + "in": "query", + "description": "Price", + "required": true, + "type": "number" + }, + { + "name": "total", + "in": "query", + "description": "Total", + "required": true, + "type": "number" + }, ], "responses": { "200": { @@ -978,7 +1076,7 @@ } } }, - "/package/item/update": { + "/package/item/update/{id}": { "put": { "tags": [ "Package" @@ -992,10 +1090,10 @@ "parameters": [ { "name": "id", - "in": "query", - "description": "transport id", + "in": "path", + "description": "Package item id", "required": true, - "type": "integer" + "type": "string" }, { "name": "commenter_id", diff --git a/routes/api.php b/routes/api.php index 3aed0cf8..e551e9c7 100644 --- a/routes/api.php +++ b/routes/api.php @@ -52,6 +52,8 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function require __DIR__ . '/package.php'; + require __DIR__ . '/packinglist.php'; + require __DIR__ . '/remark.php'; require __DIR__ . '/transport.php'; diff --git a/routes/package.php b/routes/package.php index 641e183c..ab715764 100644 --- a/routes/package.php +++ b/routes/package.php @@ -8,12 +8,12 @@ Route::group(['namespace' => 'Packages', 'as' => 'package.', 'prefix' => 'packag Route::post('/create', 'CreatePackageController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackageController@update')->name('update'); Route::delete('/delete/{id}', 'DeletePackageController@delete')->name('delete'); -}); -Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' => 'packing_list'], function () { - Route::get('/{id}/show', 'FetchPackingListController@fetch')->name('show'); - Route::get('/list', 'ListPackingListController@list')->name('list'); - Route::post('/create', 'CreatePackingListController@create')->name('create'); - Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); - Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); + Route::group(['namespace' => 'PackageItems', 'prefix' => 'item', 'as' => 'item.'], function () { + Route::get('/{id}/show', 'FetchPackageItemController@fetch')->name('show'); + Route::get('/list', 'ListPackageItemController@list')->name('list'); + Route::post('/create', 'CreatePackageItemController@create')->name('create'); + Route::put('/update/{id}', 'UpdatePackageItemController@update')->name('update'); + Route::delete('/delete/{id}', 'DeletePackageItemController@delete')->name('delete'); + }); }); diff --git a/routes/packinglist.php b/routes/packinglist.php new file mode 100644 index 00000000..85062013 --- /dev/null +++ b/routes/packinglist.php @@ -0,0 +1,11 @@ + 'PackingLists', 'as' => 'packing_list.', 'prefix' => 'packing_list'], function () { + Route::get('/{id}/show', 'FetchPackingListController@fetch')->name('show'); + Route::get('/list', 'ListPackingListController@list')->name('list'); + Route::post('/create', 'CreatePackingListController@create')->name('create'); + Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); + Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); +}); From 4eaf1917fa6d6d89e1d333a7009efb3ab4177192 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 21:27:18 +0800 Subject: [PATCH 13/19] WIP - Order steps & remaining APIs --- .../CreateContainerPackingListLogic.php | 74 +++++++++++++++++++ .../ContainerPackingListObject.php | 12 ++- .../Services/CreatesContainerPackingList.php | 32 ++++++++ .../Services/CreatesPackingListPackages.php | 32 ++++++++ .../Rules/CanCreateContainerPackingList.php | 57 ++++++++++++++ .../Standards/Rules/CanCreatePackingList.php | 10 +-- .../Rules/CanCreatePackingListPackage.php | 57 ++++++++++++++ .../ContainerPackingListValidation.php | 45 +++++++++++ .../PackingListPackageValidation.php | 41 ++++++++++ .../Validators/PackingListValidation.php | 9 +-- ...0_create_container_packing_lists_table.php | 1 + 11 files changed, 358 insertions(+), 12 deletions(-) create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php create mode 100644 app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanCreateContainerPackingList.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php create mode 100644 app/Classes/Modules/PackingLists/Standards/Validators/PackingListPackageValidation.php diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php new file mode 100644 index 00000000..be09d7a8 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php @@ -0,0 +1,74 @@ + 'Created PackingList', + 'message' => 'You have successfully created a new PackingList' + ]; + } + + /** @var CanCreatePackingList */ + private $canCreatePackingList; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var CreatesPackingList */ + private $createsPackingList; + + /** + * CreatePackingListLogic constructor. + * @param CanCreatePackingList $canCreatePackingList + * @param FetchesDistrict $fetchesDistrict + * @param FetchesCompany $fetchesCompany + * @param CreatesPackingList $createsPackingList + */ + public function __construct(CanCreatePackingList $canCreatePackingList, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) + { + $this->canCreatePackingList = $canCreatePackingList; + $this->fetchesCompany = $fetchesCompany; + $this->createsPackingList = $createsPackingList; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + + $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + + $this->canCreatePackingList->passes($object); + + $query = $this->createsPackingList->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + + return $this->resourceResponse(new PackingListResource($query)); + + } + +} diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php index 9d1298c7..aff6356a 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php @@ -13,11 +13,14 @@ class PackingListObject implements DataTransferObject private $containerType; - public function __construct(int $packingListId, ?string $containerReference, int $containerType) + private $sealReference; + + public function __construct(int $packingListId, ?string $containerReference, int $containerType, ?String $sealReference) { $this->packingListId = $packingListId; $this->containerReference = $containerReference; - $this->containerType = $containerType + $this->containerType = $containerType; + $this->sealReference = $sealReference; } public function getPackingListId(): int @@ -34,4 +37,9 @@ class PackingListObject implements DataTransferObject { return $this->containerType; } + + public function getSealReference(): int + { + return $this->sealReference; + } } diff --git a/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php b/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php new file mode 100644 index 00000000..05f7c000 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->PackingLists(), $model); + + } +} diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php new file mode 100644 index 00000000..acb2c390 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php @@ -0,0 +1,32 @@ +street_one = $object->getStreetOne(); + $model->street_two = $object->getStreetTwo(); + $model->country_id = $object->getCountryId(); + $model->state_id = $object->getStateId(); + $model->district_id = $object->getDistrictId(); + $model->postcode = $object->getPostCode(); + + return $this->handler($company->PackingLists(), $model); + + } +} diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreateContainerPackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreateContainerPackingList.php new file mode 100644 index 00000000..56161688 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreateContainerPackingList.php @@ -0,0 +1,57 @@ +containerPackingListValidation = $containerPackingListValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackingListObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->containerPackingListValidation->validate($object); + + } + + + /** + * @param PackingListObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php index e100bbac..399a0fae 100644 --- a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingList.php @@ -11,15 +11,15 @@ class CanCreatePackingList extends AbstractRule { /** @var PackingListValidation */ - private $PackingListValidation; + private $packingListValidation; /** * CanCreatePackingList constructor. - * @param PackingListValidation $PackingListValidation + * @param PackingListValidation $packingListValidation */ - public function __construct(PackingListValidation $PackingListValidation) + public function __construct(PackingListValidation $packingListValidation) { - $this->PackingListValidation = $PackingListValidation; + $this->packingListValidation = $packingListValidation; } @@ -40,7 +40,7 @@ class CanCreatePackingList extends AbstractRule */ protected function validators($object): bool { - return $this->PackingListValidation->validate($object); + return $this->packingListValidation->validate($object); } diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php new file mode 100644 index 00000000..579505b2 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php @@ -0,0 +1,57 @@ +packingListPackageValidation = $packingListPackageValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackingListObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->packingListPackageValidation->validate($object); + + } + + + /** + * @param PackingListObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php new file mode 100644 index 00000000..0ff94dc7 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php @@ -0,0 +1,45 @@ + $object->getPackingListId(), + 'reference' => $object->getContainerReference(), + 'container_type' => $object->getContainerType(), + 'seal_reference' => $object->getSealReference(), + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'status' => 'required', + 'reference' => 'required', + 'container_type' => 'required', + 'seal_reference' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListPackageValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListPackageValidation.php new file mode 100644 index 00000000..ad87e77e --- /dev/null +++ b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListPackageValidation.php @@ -0,0 +1,41 @@ + $object->getPackingListId(), + 'package_id' => $object->getPackageId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'packing_list_id' => 'required', + 'package_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php index 88585970..65dd3380 100644 --- a/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php +++ b/app/Classes/Modules/PackingLists/Standards/Validators/PackingListValidation.php @@ -16,9 +16,8 @@ class PackingListValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'status' => $object->getStatus(), + 'reference' => $object->getReference() ]; } @@ -27,8 +26,8 @@ class PackingListValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'status' => 'required', + 'reference' => 'required', ]; } diff --git a/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php index 830e8eb1..9f98061f 100644 --- a/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php +++ b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php @@ -18,6 +18,7 @@ class CreateContainerPackingListsTable extends Migration $table->bigInteger('packing_list_id')->unsigned()->index(); $table->string('container_reference',45); $table->integer('container_type'); + $table->string('seal_reference',45); $table->softDeletes(); $table->timestamps(); From 1281990b08bf6bd3a3a3050a4abe84b9eb44d319 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Sat, 24 Jul 2021 00:11:59 +0800 Subject: [PATCH 14/19] WIP - Order steps & remaining APIs --- .../CreatePackingListLogic.php | 34 +++++++++++++++---- .../PackingListPackageObject.php | 2 +- .../Services/CreatesPackingList.php | 23 +++---------- .../Services/CreatesPackingListPackage.php | 19 +++++++++++ .../Services/CreatesPackingListPackages.php | 32 ----------------- .../Rules/CanCreatePackingListPackage.php | 6 ++-- .../CreatePackingListController.php | 2 +- app/Models/PackingList.php | 2 +- app/Models/PackingListPackage.php | 4 +-- resources/views/swagger/json.blade.php | 18 ++-------- 10 files changed, 61 insertions(+), 81 deletions(-) create mode 100644 app/Classes/Modules/PackingLists/Services/CreatesPackingListPackage.php delete mode 100644 app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php index be09d7a8..117107aa 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -5,9 +5,12 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackingLists\Services\CreatesPackingList; +use App\Classes\Modules\PackingLists\Services\CreatesPackingListPackage; use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList; +use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingListPackage; use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListPackageObject; +use App\Classes\Modules\Packages\Services\FetchesPackage; use App\Http\Resources\PackingListResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -29,12 +32,16 @@ class CreatePackingListLogic extends AbstractControllerLogic /** @var CanCreatePackingList */ private $canCreatePackingList; + private $canCreatePackingListPackage; + /** @var FetchesCompany */ - private $fetchesCompany; + private $fetchesPackage; /** @var CreatesPackingList */ private $createsPackingList; + private $createsPackingListPackage; + /** * CreatePackingListLogic constructor. * @param CanCreatePackingList $canCreatePackingList @@ -42,11 +49,13 @@ class CreatePackingListLogic extends AbstractControllerLogic * @param FetchesCompany $fetchesCompany * @param CreatesPackingList $createsPackingList */ - public function __construct(CanCreatePackingList $canCreatePackingList, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) + public function __construct(CanCreatePackingList $canCreatePackingList, CanCreatePackingListPackage $canCreatePackingListPackage, FetchesPackage $fetchesPackage, CreatesPackingList $createsPackingList, CreatesPackingListPackage $createsPackingListPackage) { $this->canCreatePackingList = $canCreatePackingList; - $this->fetchesCompany = $fetchesCompany; + $this->canCreatePackingListPackage = $canCreatePackingListPackage; + $this->fetchesPackage = $fetchesPackage; $this->createsPackingList = $createsPackingList; + $this->createsPackingListPackage = $createsPackingListPackage; } /** @@ -59,13 +68,24 @@ class CreatePackingListLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $package = $this->fetchesPackage->execute(['id'=>$request->input('package_id')]); - $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $reference_no = rand(1000000, 9999999); + + + $object = new PackingListObject($reference_no, 0); $this->canCreatePackingList->passes($object); - $query = $this->createsPackingList->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $packageList = $this->createsPackingList->execute( $object); + + + $object = new PackingListPackageObject($packageList->id, $package->id); + + $this->canCreatePackingListPackage->passes($object); + + $query = $this->createsPackingListPackage->execute($object); + return $this->resourceResponse(new PackingListResource($query)); diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php index bf663f77..3c1aef5b 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php @@ -4,7 +4,7 @@ namespace App\Classes\Modules\PackingLists\DataTransferObjects; use App\Classes\General\Interfaces\DataTransferObject; -class PackingListObject implements DataTransferObject +class PackingListPackageObject implements DataTransferObject { private $packingListId; diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php index 05f7c000..2cb151c5 100644 --- a/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php +++ b/app/Classes/Modules/PackingLists/Services/CreatesPackingList.php @@ -3,30 +3,17 @@ namespace App\Classes\Modules\PackingLists\Services; use App\Classes\General\Eloquent\AbstractUpdateRecord; -use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject; use App\Models\PackingList; -use App\Models\Company; -class CreatesPackingList extends AbstractUpdateRelationshipRecord +class CreatesPackingList extends AbstractUpdateRecord { - - /** - * @param Company $company - * @param PackingListObject $object - * @return \Illuminate\Database\Eloquent\Model - * @throws \App\Classes\Exceptions\MalformedRequestException - */ - public function execute(Company $company, PackingListObject $object) { + public function execute(PackingListObject $object) { $model = new PackingList(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - return $this->handler($company->PackingLists(), $model); + $model->reference = $object->getReference(); + $model->status = $object->getStatus(); + return $this->handler($model); } } diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackage.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackage.php new file mode 100644 index 00000000..8d14744d --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackage.php @@ -0,0 +1,19 @@ +packing_list_id = $object->getPackingListId(); + $model->package_id = $object->getPackageId(); + + return $this->handler( $model); + } +} diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php deleted file mode 100644 index acb2c390..00000000 --- a/app/Classes/Modules/PackingLists/Services/CreatesPackingListPackages.php +++ /dev/null @@ -1,32 +0,0 @@ -street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - - return $this->handler($company->PackingLists(), $model); - - } -} diff --git a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php index 579505b2..aca44c8b 100644 --- a/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php +++ b/app/Classes/Modules/PackingLists/Standards/Rules/CanCreatePackingListPackage.php @@ -10,14 +10,14 @@ use App\Classes\Modules\PackingLists\Standards\Validators\PackingListPackageVali class CanCreatePackingListPackage extends AbstractRule { - /** @var PackingListValidationPackage */ + /** @var PackingListPackageValidation */ private $packingListPackageValidation; /** * CanCreatePackingListPackage constructor. - * @param PackingListValidationPackage $packingListPackageValidation + * @param PackingListPackageValidation $packingListPackageValidation */ - public function __construct(PackingListValidationPackage $packingListPackageValidation) + public function __construct(PackingListPackageValidation $packingListPackageValidation) { $this->packingListPackageValidation = $packingListPackageValidation; } diff --git a/app/Http/Controllers/PackingLists/CreatePackingListController.php b/app/Http/Controllers/PackingLists/CreatePackingListController.php index 9f6bc16d..c0cec426 100644 --- a/app/Http/Controllers/PackingLists/CreatePackingListController.php +++ b/app/Http/Controllers/PackingLists/CreatePackingListController.php @@ -1,6 +1,6 @@ BelongsTo(PackageList::class, 'package_list_id', 'id'); + return $this->BelongsTo(PackageList::class, 'packing_list_id', 'id'); } } diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index b8eed680..397844e4 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -71,25 +71,11 @@ "description": "", "parameters": [ { - "name": "type", + "name": "package_id", "in": "query", - "description": "Transport type", + "description": "Package Id", "required": true, "type": "integer" - }, - { - "name": "courier", - "in": "query", - "description": "Courier Provider Name", - "required": true, - "type": "string" - }, - { - "name": "tracking_number", - "in": "query", - "description": "Tracking No.", - "required": true, - "type": "string" } ], "responses": { From 7ae581300de37ecc51377cf98d947940e2cde21c Mon Sep 17 00:00:00 2001 From: Fairuz Date: Sat, 24 Jul 2021 11:39:40 +0800 Subject: [PATCH 15/19] WIP - Order steps & remaining APIs --- .../CreateContainerPackingListLogic.php | 67 +++++ .../DeleteContainerPackingListLogic.php | 73 +++++ .../FetchContainerPackingListLogic 2.php | 66 ++++ .../FetchContainerPackingListLogic.php | 66 ++++ .../ListContainerPackingListsLogic.php | 66 ++++ .../UpdateContainerPackingListLogic.php | 86 ++++++ .../ContainerPackingListObject.php | 4 +- .../Services/CreatesContainerPackingList.php | 27 ++ .../Services/DeletesContainerPackingList.php | 19 ++ .../Services/FetchesContainerPackingList.php | 33 ++ .../Services/ListsContainerPackingLists.php | 33 ++ .../Services/UpdatesContainerPackingList.php | 27 ++ .../Rules/CanCreateContainerPackingList.php | 57 ++++ .../Rules/CanDeleteContainerPackingList.php | 43 +++ .../Rules/CanFetchContainerPackingList.php | 43 +++ .../Rules/CanListContainerPackingLists.php | 43 +++ .../Rules/CanUpdateContainerPackingList.php | 57 ++++ .../ContainerPackingListPackageValidation.php | 41 +++ .../ContainerPackingListValidation 2.php | 41 +++ .../ContainerPackingListValidation.php | 45 +++ .../CreateContainerPackingListLogic.php | 74 ----- .../FetchContainerPackingListLogic.php | 66 ---- .../Services/CreatesContainerPackingList.php | 32 -- .../ControllersLogic/CreateTransportLogic.php | 2 +- .../DataTransferObjects/TransportObject.php | 10 +- .../Transports/Services/CreatesTransport.php | 21 +- .../Transports/Services/UpdatesTransport.php | 15 +- .../Validators/TransportValidation.php | 12 +- .../CreateContainerPackingListController.php | 20 ++ .../DeleteContainerPackingListController.php | 20 ++ .../FetchContainerPackingListController.php | 20 ++ .../ListContainerPackingListsController.php | 20 ++ .../UpdateContainerPackingListController.php | 20 ++ .../Transports/CreateTransportController.php | 2 +- .../Transports/DeleteTransportController.php | 2 +- .../Transports/FetchTransportController.php | 2 +- .../Transports/ListTransportsController.php | 2 +- .../Transports/UpdateTransportController.php | 2 +- app/Models/ContainerPackingList.php | 2 + ...TransportArrangement.php => Transport.php} | 12 +- ...34_create_transport_arrangements_table.php | 2 +- resources/views/swagger/json.blade.php | 284 ++++++++++++++++++ routes/package.php | 4 +- routes/packinglist.php | 10 +- routes/schedule.php | 2 +- routes/transport.php | 2 +- 46 files changed, 1379 insertions(+), 218 deletions(-) create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php create mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php rename app/Classes/Modules/{PackingLists => ContainerPackingLists}/DataTransferObjects/ContainerPackingListObject.php (87%) create mode 100644 app/Classes/Modules/ContainerPackingLists/Services/CreatesContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanFetchContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanListContainerPackingLists.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanUpdateContainerPackingList.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php create mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php delete mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php delete mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php delete mode 100644 app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php create mode 100644 app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php create mode 100644 app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php create mode 100644 app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php create mode 100644 app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php create mode 100644 app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php rename app/Models/{TransportArrangement.php => Transport.php} (52%) diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php new file mode 100644 index 00000000..842338a1 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php @@ -0,0 +1,67 @@ + 'Created PackingList', + 'message' => 'You have successfully created a new PackingList' + ]; + } + + /** @var CanCreateContainerPackingList */ + private $canCreateContainerPackingList; + + /** @var FetchesPackingList */ + private $fetchesPackingList; + + /** @var CreatesPackingList */ + private $createsContainerPackingList; + + public function __construct(CanCreateContainerPackingList $canCreateContainerPackingList, FetchesPackingList $fetchesPackingList, CreatesContainerPackingList $createsContainerPackingList) + { + $this->canCreateContainerPackingList = $canCreateContainerPackingList; + $this->fetchesPackingList = $fetchesPackingList; + $this->createsContainerPackingList = $createsContainerPackingList; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + + $packingList = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]); + + $object = new ContainerPackingListObject( $packingList->id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference')); + + $this->canCreateContainerPackingList->passes($object); + + $query = $this->createsContainerPackingList->execute($object); + + return $this->resourceResponse(new PackingListResource($packingList)); + + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php new file mode 100644 index 00000000..dfd94848 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php @@ -0,0 +1,73 @@ + 'Deleted ContainerPackingList', + 'message' => 'You have successfully deleted a ContainerPackingList' + ]; + } + + + /** @var CanDeleteContainerPackingList */ + private $canDeleteContainerPackingList; + + /** @var DeletesContainerPackingList */ + private $deletesContainerPackingList; + + /** @var FetchesContainerPackingList */ + private $fetchesContainerPackingList; + + /** + * DeleteContainerPackingListControllersLogic constructor. + * @param CanDeleteContainerPackingList $canDeleteContainerPackingList + * @param DeletesContainerPackingList $deletesContainerPackingList + * @param FetchesContainerPackingList $fetchesContainerPackingList + */ + public function __construct(CanDeleteContainerPackingList $canDeleteContainerPackingList, DeletesContainerPackingList $deletesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList) + { + $this->canDeleteContainerPackingList = $canDeleteContainerPackingList; + $this->deletesContainerPackingList = $deletesContainerPackingList; + $this->fetchesContainerPackingList = $fetchesContainerPackingList; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canDeleteContainerPackingList->passes(); + + $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); + + $this->deletesContainerPackingList->execute($query); + + return $this->response([]); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php new file mode 100644 index 00000000..74d4b418 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php @@ -0,0 +1,66 @@ + 'Retrieved ContainerPackingList', + 'message' => 'You have successfully retrieved a ContainerPackingList' + ]; + } + + /** @var CanFetchContainerPackingList */ + private $canFetchContainerPackingList; + + /** @var FetchesContainerPackingList */ + private $fetchesContainerPackingList; + + /** + * FetchContainerPackingListControllersLogic constructor. + * @param CanFetchContainerPackingList $canFetchContainerPackingList + * @param FetchesContainerPackingList $fetchesContainerPackingList + */ + public function __construct(CanFetchContainerPackingList $canFetchContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList) + { + $this->canFetchContainerPackingList = $canFetchContainerPackingList; + $this->fetchesContainerPackingList = $fetchesContainerPackingList; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchContainerPackingList->passes(); + + $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new ContainerPackingListResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php new file mode 100644 index 00000000..21e4e1c9 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php @@ -0,0 +1,66 @@ + 'Retrieved ContainerPackingList', + 'message' => 'You have successfully retrieved a ContainerPackingList' + ]; + } + + /** @var CanFetchContainerPackingList */ + private $canFetchContainerPackingList; + + /** @var FetchesContainerPackingList */ + private $fetchesContainerPackingList; + + /** + * FetchContainerPackingListControllersLogic constructor. + * @param CanFetchContainerPackingList $canFetchContainerPackingList + * @param FetchesContainerPackingList $fetchesContainerPackingList + */ + public function __construct(CanFetchContainerPackingList $canFetchContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList) + { + $this->canFetchContainerPackingList = $canFetchContainerPackingList; + $this->fetchesContainerPackingList = $fetchesContainerPackingList; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchContainerPackingList->passes(); + + $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); + + return $this->resourceResponse(new ContainerPackingListResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php new file mode 100644 index 00000000..50e34101 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php @@ -0,0 +1,66 @@ + 'Retrieved ContainerPackingLists', + 'message' => 'You have successfully retrieved a list of ContainerPackingLists' + ]; + } + + /** @var CanListContainerPackingLists */ + private $canListContainerPackingLists; + + /** @var ListsContainerPackingLists */ + private $listsContainerPackingLists; + + /** + * ListContainerPackingListsLogic constructor. + * @param CanListContainerPackingLists $canListContainerPackingLists + * @param ListsContainerPackingLists $listsContainerPackingLists + */ + public function __construct(CanListContainerPackingLists $canListContainerPackingLists, ListsContainerPackingLists $listsContainerPackingLists) + { + $this->canListContainerPackingLists = $canListContainerPackingLists; + $this->listsContainerPackingLists = $listsContainerPackingLists; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canListContainerPackingLists->passes(); + + $query = $this->listsContainerPackingLists->execute($this->listsContainerPackingLists->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(ContainerPackingListResource::collection($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php new file mode 100644 index 00000000..a614c230 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php @@ -0,0 +1,86 @@ + 'Updated ContainerPackingList', + 'message' => 'You have successfully updated the ContainerPackingList' + ]; + } + + /** @var CanUpdateContainerPackingList */ + private $canUpdateContainerPackingList; + + /** @var UpdatesContainerPackingList */ + private $updatesContainerPackingList; + + /** @var FetchesContainerPackingList */ + private $fetchesContainerPackingList; + + /** @var FetchesDistrict */ + private $fetchesDistrict; + + /** + * UpdateContainerPackingListLogic constructor. + * @param CanUpdateContainerPackingList $canUpdateContainerPackingList + * @param UpdatesContainerPackingList $updatesContainerPackingList + * @param FetchesContainerPackingList $fetchesContainerPackingList + * @param FetchesDistrict $fetchesDistrict + */ + public function __construct(CanUpdateContainerPackingList $canUpdateContainerPackingList, UpdatesContainerPackingList $updatesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList, FetchesDistrict $fetchesDistrict) + { + $this->canUpdateContainerPackingList = $canUpdateContainerPackingList; + $this->updatesContainerPackingList = $updatesContainerPackingList; + $this->fetchesContainerPackingList = $fetchesContainerPackingList; + $this->fetchesDistrict = $fetchesDistrict; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); + $object = new ContainerPackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + //$object = new ContainerPackingListObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + + $this->canUpdateContainerPackingList->passes($object); + + $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); + + $query = $this->updatesContainerPackingList->execute($query, $object); + + return $this->resourceResponse(new ContainerPackingListResource($query)); + + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + + } + +} diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php b/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php similarity index 87% rename from app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php rename to app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php index aff6356a..97ceae5c 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerPackingListObject.php +++ b/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php @@ -1,10 +1,10 @@ packing_list_id = $object->getPackingListId(); + $model->container_reference = $object->getContainerReference(); + $model->container_type = $object->getContainerType(); + $model->seal_reference = $object->getSealReference(); + + return $this->handler($model); + } +} diff --git a/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php new file mode 100644 index 00000000..abd524eb --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php @@ -0,0 +1,19 @@ +handler($model); + } +} diff --git a/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php new file mode 100644 index 00000000..a10e13de --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + public function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php b/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php new file mode 100644 index 00000000..e3991a3f --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} diff --git a/app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php new file mode 100644 index 00000000..649e3077 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php @@ -0,0 +1,27 @@ +container_reference = $object->getContainerReference(); + $model->container_type = $object->getContainerType(); + $model->seal_reference = $object->getSealReference(); + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php new file mode 100644 index 00000000..d12e0aa3 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php @@ -0,0 +1,57 @@ +containerPackingListValidation = $containerPackingListValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param PackingListObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->containerPackingListValidation->validate($object); + + } + + + /** + * @param PackingListObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php new file mode 100644 index 00000000..7056d7a4 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php @@ -0,0 +1,43 @@ +ContainerPackingListValidation = $ContainerPackingListValidation; + } + + + /** + * @return bool + */ + protected function authorized(): bool + { + // TODO Set Authorization rules + return true; + + } + + /** + * @param ContainerPackingListObject $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return $this->ContainerPackingListValidation->validate($object); + + } + + + /** + * @param ContainerPackingListObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php new file mode 100644 index 00000000..ad87e77e --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php @@ -0,0 +1,41 @@ + $object->getPackingListId(), + 'package_id' => $object->getPackageId() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'packing_list_id' => 'required', + 'package_id' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php new file mode 100644 index 00000000..65dd3380 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php @@ -0,0 +1,41 @@ + $object->getStatus(), + 'reference' => $object->getReference() + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'status' => 'required', + 'reference' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php new file mode 100644 index 00000000..0ff94dc7 --- /dev/null +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php @@ -0,0 +1,45 @@ + $object->getPackingListId(), + 'reference' => $object->getContainerReference(), + 'container_type' => $object->getContainerType(), + 'seal_reference' => $object->getSealReference(), + ]; + } + + /** + * @return array + */ + protected function rules(): array { + return [ + 'status' => 'required', + 'reference' => 'required', + 'container_type' => 'required', + 'seal_reference' => 'required', + ]; + } + + /** + * @return array + */ + protected function messages(): array { + return []; + } + +} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php deleted file mode 100644 index be09d7a8..00000000 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreateContainerPackingListLogic.php +++ /dev/null @@ -1,74 +0,0 @@ - 'Created PackingList', - 'message' => 'You have successfully created a new PackingList' - ]; - } - - /** @var CanCreatePackingList */ - private $canCreatePackingList; - - /** @var FetchesCompany */ - private $fetchesCompany; - - /** @var CreatesPackingList */ - private $createsPackingList; - - /** - * CreatePackingListLogic constructor. - * @param CanCreatePackingList $canCreatePackingList - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany - * @param CreatesPackingList $createsPackingList - */ - public function __construct(CanCreatePackingList $canCreatePackingList, FetchesCompany $fetchesCompany, CreatesPackingList $createsPackingList) - { - $this->canCreatePackingList = $canCreatePackingList; - $this->fetchesCompany = $fetchesCompany; - $this->createsPackingList = $createsPackingList; - } - - /** - * @param Request $request - * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException - */ - public function logic(Request $request) : JsonResponse - { - - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - - $this->canCreatePackingList->passes($object); - - $query = $this->createsPackingList->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); - - return $this->resourceResponse(new PackingListResource($query)); - - } - -} diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php deleted file mode 100644 index e9248ada..00000000 --- a/app/Classes/Modules/PackingLists/ControllersLogic/FetchContainerPackingListLogic.php +++ /dev/null @@ -1,66 +0,0 @@ - 'Retrieved PackingList', - 'message' => 'You have successfully retrieved a PackingList' - ]; - } - - /** @var CanFetchPackingList */ - private $canFetchPackingList; - - /** @var FetchesPackingList */ - private $fetchesPackingList; - - /** - * FetchPackingListControllersLogic constructor. - * @param CanFetchPackingList $canFetchPackingList - * @param FetchesPackingList $fetchesPackingList - */ - public function __construct(CanFetchPackingList $canFetchPackingList, FetchesPackingList $fetchesPackingList) - { - $this->canFetchPackingList = $canFetchPackingList; - $this->fetchesPackingList = $fetchesPackingList; - } - - - /** - * @param Request $request - * @return JsonResponse - * @throws ErrorException - */ - public function logic(Request $request) : JsonResponse - { - try { - - $this->canFetchPackingList->passes(); - - $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new PackingListResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } - - } - -} diff --git a/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php b/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php deleted file mode 100644 index 05f7c000..00000000 --- a/app/Classes/Modules/PackingLists/Services/CreatesContainerPackingList.php +++ /dev/null @@ -1,32 +0,0 @@ -street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - - return $this->handler($company->PackingLists(), $model); - - } -} diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index 1b30b95d..1d6b6d21 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -8,7 +8,7 @@ use App\Classes\Modules\Transports\Services\CreatesTransport; use App\Classes\Modules\Transports\Services\FetchesDistrict; use App\Classes\Modules\Transports\Standards\Rules\CanCreateTransport; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; -use App\Classes\Modules\PackingLists\Services\FetchesContainerPackingList; +use App\Classes\Modules\ContainerPackingLists\Services\FetchesContainerPackingList; use App\Http\Resources\TransportResource; use ErrorException; use Illuminate\Http\JsonResponse; diff --git a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php index 4f82c78b..bc493ca4 100644 --- a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php +++ b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php @@ -50,7 +50,7 @@ class TransportObject implements DataTransferObject */ public function getType(): string { - return $this->streetOne; + return $this->type; } /** @@ -58,7 +58,7 @@ class TransportObject implements DataTransferObject */ public function getCourier(): ?string { - return $this->streetTwo; + return $this->courier; } /** @@ -66,13 +66,13 @@ class TransportObject implements DataTransferObject */ public function getTrackingNumber(): int { - return $this->countryId; + return $this->tracking_number; } /** * @return int */ - public function getDispatchDate(): Carbon + public function getDispatchDate(): ?Carbon { return $this->dispatch_date ? Carbon::parse($this->dispatch_date) : null; } @@ -80,7 +80,7 @@ class TransportObject implements DataTransferObject /** * @return int */ - public function getDropDate(): Carbon + public function getDropDate(): ?Carbon { return $this->drop_date ? Carbon::parse($this->drop_date) : null; } diff --git a/app/Classes/Modules/Transports/Services/CreatesTransport.php b/app/Classes/Modules/Transports/Services/CreatesTransport.php index 80a08a16..53981bd8 100644 --- a/app/Classes/Modules/Transports/Services/CreatesTransport.php +++ b/app/Classes/Modules/Transports/Services/CreatesTransport.php @@ -6,27 +6,28 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; use App\Models\Transport; -use App\Models\Company; +use App\Models\ContainerPackingList; class CreatesTransport extends AbstractUpdateRelationshipRecord { /** - * @param Company $company + * @param ContainerPackingList $containerPackingList * @param TransportObject $object * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, TransportObject $object) { + public function execute(ContainerPackingList $containerPackingList, TransportObject $object) { $model = new Transport(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - return $this->handler($company->Transports(), $model); + $model->type = $object->getType(); + $model->courier = $object->getCourier(); + $model->tracking_number = $object->getTrackingNumber(); + $model->dispatch_date = $object->getDispatchDate(); + $model->drop_date = $object->getDropDate(); + $model->status = $object->getStatus(); + + return $this->handler($containerPackingList->transports(), $model); } } diff --git a/app/Classes/Modules/Transports/Services/UpdatesTransport.php b/app/Classes/Modules/Transports/Services/UpdatesTransport.php index 155e793d..4172a3db 100644 --- a/app/Classes/Modules/Transports/Services/UpdatesTransport.php +++ b/app/Classes/Modules/Transports/Services/UpdatesTransport.php @@ -17,15 +17,12 @@ class UpdatesTransport extends AbstractUpdateRecord */ public function execute(Transport $model, TransportObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->type = $object->getType(); + $model->courier = $object->getCourier(); + $model->tracking_number = $object->getTrackingNumber(); + $model->dispatch_date = $object->getDispatchDate(); + $model->drop_date = $object->getDropDate(); + $model->status = $object->getStatus(); return $this->handler($model); diff --git a/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php index 0a41982b..daefb5dd 100644 --- a/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php +++ b/app/Classes/Modules/Transports/Standards/Validators/TransportValidation.php @@ -18,10 +18,10 @@ class TransportValidation extends AbstractValidation return [ 'type' => $object->getType(), 'courier' => $object->getCourier(), - 'tracking_number' => $object->getTrackingNumber() - 'dispacth_date' => $object->getDispatchDate() - 'drop_date' => $object->getDropDate() - 'status' => $object->getStatus() + 'tracking_number' => $object->getTrackingNumber(), + 'dispacth_date' => $object->getDispatchDate(), + 'drop_date' => $object->getDropDate(), + 'status' => $object->getStatus(), ]; } @@ -33,9 +33,7 @@ class TransportValidation extends AbstractValidation 'type' => 'required', 'courier' => 'required', 'tracking_number' => 'required', - 'dispacth_date' => '', - 'drop_date' => '', - 'status' => '', + 'status' => 'required', ]; } diff --git a/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php new file mode 100644 index 00000000..257128c9 --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php new file mode 100644 index 00000000..25cb6bb8 --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php new file mode 100644 index 00000000..0fecdb0a --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php b/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php new file mode 100644 index 00000000..12c01a28 --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php new file mode 100644 index 00000000..eac24070 --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Controllers/Transports/CreateTransportController.php b/app/Http/Controllers/Transports/CreateTransportController.php index e9b179ed..e1852f4a 100644 --- a/app/Http/Controllers/Transports/CreateTransportController.php +++ b/app/Http/Controllers/Transports/CreateTransportController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Transports\ControllersLogic\CreateTransportLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class CreateRemarkController +class CreateTransportController { /** * @param Request $request diff --git a/app/Http/Controllers/Transports/DeleteTransportController.php b/app/Http/Controllers/Transports/DeleteTransportController.php index c30f17ea..e1ff8e66 100644 --- a/app/Http/Controllers/Transports/DeleteTransportController.php +++ b/app/Http/Controllers/Transports/DeleteTransportController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Transports\ControllersLogic\DeleteTransportLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class DeleteRemarkController +class DeleteTransportController { /** * @param Request $request diff --git a/app/Http/Controllers/Transports/FetchTransportController.php b/app/Http/Controllers/Transports/FetchTransportController.php index 7ab2b449..33df3c38 100644 --- a/app/Http/Controllers/Transports/FetchTransportController.php +++ b/app/Http/Controllers/Transports/FetchTransportController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Transports\ControllersLogic\FetchTransportLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class FetchRemarkController +class FetchTransportController { /** * @param Request $request diff --git a/app/Http/Controllers/Transports/ListTransportsController.php b/app/Http/Controllers/Transports/ListTransportsController.php index 8050ca13..cc704684 100644 --- a/app/Http/Controllers/Transports/ListTransportsController.php +++ b/app/Http/Controllers/Transports/ListTransportsController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Transports\ControllersLogic\ListTransportsLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class ListRemarksController +class ListTransportsController { /** * @param Request $request diff --git a/app/Http/Controllers/Transports/UpdateTransportController.php b/app/Http/Controllers/Transports/UpdateTransportController.php index 28704686..a475d96b 100644 --- a/app/Http/Controllers/Transports/UpdateTransportController.php +++ b/app/Http/Controllers/Transports/UpdateTransportController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Transports\ControllersLogic\UpdateTransportLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class UpdateRemarkController +class UpdateTransportController { /** * @param Request $request diff --git a/app/Models/ContainerPackingList.php b/app/Models/ContainerPackingList.php index 228c6fce..4aa74c4b 100644 --- a/app/Models/ContainerPackingList.php +++ b/app/Models/ContainerPackingList.php @@ -3,6 +3,8 @@ namespace App\Models; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\MorphMany; class ContainerPackingList extends AbstractModel { diff --git a/app/Models/TransportArrangement.php b/app/Models/Transport.php similarity index 52% rename from app/Models/TransportArrangement.php rename to app/Models/Transport.php index 3bb122d1..53491743 100644 --- a/app/Models/TransportArrangement.php +++ b/app/Models/Transport.php @@ -4,12 +4,22 @@ namespace App\Models; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\MorphMany; class Transport extends AbstractModel { use SoftDeletes; - protected $table = 'schedules'; + protected $table = 'transport_arrangements'; + + /** + * @return \Illuminate\Database\Eloquent\Relations\MorphTo + */ + public function owner(): morphTo + { + return $this->morphTo(); + } /** * @return MorphMany diff --git a/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php b/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php index cc642694..c01bbe62 100644 --- a/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php +++ b/database/migrations/2021_07_21_110434_create_transport_arrangements_table.php @@ -21,7 +21,7 @@ class CreateTransportArrangementsTable extends Migration $table->string('courier',45); $table->string('tracking_number',45); - $table->timestamp('dispacth_date')->nullable(); + $table->timestamp('dispatch_date')->nullable(); $table->timestamp('drop_date')->nullable(); $table->integer('status')->default(0); diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 397844e4..bb246504 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -300,6 +300,283 @@ } } }, + "/packing_list/container/create": { + "post": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "createContainerPackingList", + "summary": "Create container packing list", + "description": "", + "parameters": [ + { + "name": "packing_list_id", + "in": "query", + "description": "Packing list id", + "required": true, + "type": "integer" + }, + { + "name": "container_reference", + "in": "query", + "description": "Container reference", + "required": true, + "type": "string" + }, + { + "name": "container_type", + "in": "query", + "description": "Container type", + "required": true, + "type": "string" + }, + { + "name": "seal_reference", + "in": "query", + "description": "Seal reference", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/container/list": { + "get": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "containerListPacking", + "summary": "Container list packing", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/container/{id}/show": { + "get": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "showPacking", + "summary": "Show container packing list", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Container packing list id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/container/update/{id}": { + "put": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "updatePacking", + "summary": "Update packing", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Container packing list id", + "required": true, + "type": "integer" + }, + { + "name": "packing_list_id", + "in": "query", + "description": "Packing list id", + "required": true, + "type": "integer" + }, + { + "name": "container_reference", + "in": "query", + "description": "Container reference", + "required": true, + "type": "string" + }, + { + "name": "container_type", + "in": "query", + "description": "Container type", + "required": true, + "type": "string" + }, + { + "name": "seal_reference", + "in": "query", + "description": "Seal reference", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/packing_list/container/delete/{id}": { + "delete": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "deleteContainerPackingList", + "summary": "Delete container packing list", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Container packing list id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, "/bank/create": { "post": { "tags": [ @@ -1178,6 +1455,13 @@ "summary": "Create transport", "description": "", "parameters": [ + { + "name": "container_id", + "in": "query", + "description": "Container Id", + "required": true, + "type": "integer" + }, { "name": "type", "in": "query", diff --git a/routes/package.php b/routes/package.php index ab715764..e6e15fbd 100644 --- a/routes/package.php +++ b/routes/package.php @@ -4,14 +4,14 @@ use Illuminate\Support\Facades\Route; Route::group(['namespace' => 'Packages', 'as' => 'package.', 'prefix' => 'package'], function () { Route::get('/{id}/show', 'FetchPackageController@fetch')->name('show'); - Route::get('/list', 'ListPackageController@list')->name('list'); + Route::get('/list', 'ListPackagesController@list')->name('list'); Route::post('/create', 'CreatePackageController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackageController@update')->name('update'); Route::delete('/delete/{id}', 'DeletePackageController@delete')->name('delete'); Route::group(['namespace' => 'PackageItems', 'prefix' => 'item', 'as' => 'item.'], function () { Route::get('/{id}/show', 'FetchPackageItemController@fetch')->name('show'); - Route::get('/list', 'ListPackageItemController@list')->name('list'); + Route::get('/list', 'ListPackageItemsController@list')->name('list'); Route::post('/create', 'CreatePackageItemController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackageItemController@update')->name('update'); Route::delete('/delete/{id}', 'DeletePackageItemController@delete')->name('delete'); diff --git a/routes/packinglist.php b/routes/packinglist.php index 85062013..838b789b 100644 --- a/routes/packinglist.php +++ b/routes/packinglist.php @@ -4,8 +4,16 @@ use Illuminate\Support\Facades\Route; Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' => 'packing_list'], function () { Route::get('/{id}/show', 'FetchPackingListController@fetch')->name('show'); - Route::get('/list', 'ListPackingListController@list')->name('list'); + Route::get('/list', 'ListPackingListsController@list')->name('list'); Route::post('/create', 'CreatePackingListController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); + + Route::group(['namespace' => 'Containers', 'prefix' => 'container', 'as' => 'container.'], function () { + Route::get('/{id}/show', 'FetchContainerPackingListController@fetch')->name('show'); + Route::get('/list', 'ListContainerPackingListsController@list')->name('list'); + Route::post('/create', 'CreateContainerPackingListController@create')->name('create'); + Route::put('/update/{id}', 'UpdateContainerPackingListController@update')->name('update'); + Route::delete('/delete/{id}', 'DeleteContainerPackingListController@delete')->name('delete'); + }); }); diff --git a/routes/schedule.php b/routes/schedule.php index 5e0dc86f..3ac9fca5 100644 --- a/routes/schedule.php +++ b/routes/schedule.php @@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Route; Route::group(['namespace' => 'Schedules', 'as' => 'schedule.', 'prefix' => 'schedule'], function () { Route::get('/{id}/show', 'FetchScheduleController@fetch')->name('show'); - Route::get('/list', 'ListScheduleController@list')->name('list'); + Route::get('/list', 'ListSchedulesController@list')->name('list'); Route::post('/create', 'CreateScheduleController@create')->name('create'); Route::put('/update/{id}', 'UpdateScheduleController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteScheduleController@delete')->name('delete'); diff --git a/routes/transport.php b/routes/transport.php index 412005ee..507d7f90 100644 --- a/routes/transport.php +++ b/routes/transport.php @@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Route; Route::group(['namespace' => 'Transports', 'as' => 'transport.', 'prefix' => 'transport'], function () { Route::get('/{id}/show', 'FetchTransportController@fetch')->name('show'); - Route::get('/list', 'ListTransportController@list')->name('list'); + Route::get('/list', 'ListTransportsController@list')->name('list'); Route::post('/create', 'CreateTransportController@create')->name('create'); Route::put('/update/{id}', 'UpdateTransportController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteTransportController@delete')->name('delete'); From 805ae4ff2b462626a9216fcca3f574122f9a27b4 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Sat, 24 Jul 2021 13:40:21 +0800 Subject: [PATCH 16/19] WIP - Order steps & remaining APIs --- .../ControllersLogic/CreateScheduleLogic.php | 2 +- .../ControllersLogic/UpdateScheduleLogic.php | 12 ++--- .../DataTransferObjects/ScheduleObject.php | 13 ++++- .../Schedules/Services/CreatesSchedule.php | 2 +- .../Schedules/Services/UpdatesSchedule.php | 1 + .../Validators/ScheduleValidation.php | 2 + .../ControllersLogic/DeleteTransportLogic.php | 2 +- .../ControllersLogic/UpdateTransportLogic.php | 14 ++--- .../Schedules/CreateScheduleController.php | 2 +- .../Schedules/DeleteScheduleController.php | 2 +- .../Schedules/FetchScheduleController.php | 2 +- .../Schedules/ListSchedulesController.php | 2 +- .../Schedules/UpdateScheduleController.php | 2 +- app/Models/Schedule.php | 6 +++ app/Models/Transport.php | 4 +- resources/views/swagger/json.blade.php | 54 ++++++++++++++----- 16 files changed, 80 insertions(+), 42 deletions(-) diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php index 17ad9d62..1c8d21bc 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -55,7 +55,7 @@ class CreateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id')); + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id'), 0); $this->canCreateSchedule->passes($object); diff --git a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php index 803fa119..184b73f2 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\Schedules\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Schedules\Services\UpdatesSchedule; use App\Classes\Modules\Schedules\Services\FetchesSchedule; -use App\Classes\Modules\Schedules\Services\FetchesDistrict; use App\Classes\Modules\Schedules\Standards\Rules\CanUpdateSchedule; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; use App\Http\Resources\ScheduleResource; @@ -36,8 +35,6 @@ class UpdateScheduleLogic extends AbstractControllerLogic /** @var FetchesSchedule */ private $fetchesSchedule; - /** @var FetchesDistrict */ - private $fetchesDistrict; /** * UpdateScheduleLogic constructor. @@ -46,12 +43,11 @@ class UpdateScheduleLogic extends AbstractControllerLogic * @param FetchesSchedule $fetchesSchedule * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateSchedule $canUpdateSchedule, UpdatesSchedule $updatesSchedule, FetchesSchedule $fetchesSchedule, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdateSchedule $canUpdateSchedule, UpdatesSchedule $updatesSchedule, FetchesSchedule $fetchesSchedule) { $this->canUpdateSchedule = $canUpdateSchedule; $this->updatesSchedule = $updatesSchedule; $this->fetchesSchedule = $fetchesSchedule; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,12 +58,12 @@ class UpdateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new ScheduleObject($request->input('etd'), $request->input('eta')); + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $query->owner_id, $request->input('status')); $this->canUpdateSchedule->passes($object); - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - $query = $this->updatesSchedule->execute($query, $object); return $this->resourceResponse(new ScheduleResource($query)); diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php index 956cd24d..026e10d2 100644 --- a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php +++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php @@ -17,17 +17,21 @@ class ScheduleObject implements DataTransferObject /** @var int */ private $transport_id; + /** @var int */ + private $status; + /** * ScheduleObject constructor * @param int $etd * @param int $eta * @param int $transport_id */ - public function __construct(string $etd, string $eta, int $transport_id) + public function __construct(string $etd, string $eta, int $transport_id, int $status) { $this->etd = $etd; $this->eta = $eta; $this->transport_id = $transport_id; + $this->status = $status; } /** @@ -54,4 +58,11 @@ class ScheduleObject implements DataTransferObject return $this->transport_id; } + /** + * @return int + */ + public function getStatus(): int + { + return $this->status; + } } diff --git a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php index 60e9913a..7dad5210 100644 --- a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php @@ -19,9 +19,9 @@ class CreatesSchedule extends AbstractUpdateRelationshipRecord */ public function execute(Transport $transport, ScheduleObject $object) { $model = new Schedule(); + $model->etd = $object->getETD(); $model->eta = $object->getETA(); - $model->transport_id = $object->getTransportId(); return $this->handler($transport->schedules(), $model); diff --git a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php index f7105824..42571373 100644 --- a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php @@ -19,6 +19,7 @@ class UpdatesSchedule extends AbstractUpdateRecord $model->etd = $object->getETD(); $model->eta = $object->getETA(); + $model->status = $object->getStatus(); return $this->handler($model); diff --git a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php index 26352de4..7d14a3f1 100644 --- a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php +++ b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php @@ -16,8 +16,10 @@ class ScheduleValidation extends AbstractValidation */ protected function data($object): array { return [ + 'transport_id' => $object->getTransportId(), 'etd' => $object->getETD(), 'eta' => $object->getETA(), + 'status' => $object->getStatus(), ]; } diff --git a/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php index 03c01168..a8d22ac3 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/DeleteTransportLogic.php @@ -31,7 +31,7 @@ class DeleteTransportLogic extends AbstractControllerLogic private $deletesTransport; /** @var FetchesTransport */ - private $fetchesTransport; + private $fetchesTransport; /** * DeleteTransportControllersLogic constructor. diff --git a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php index c8630224..cab03419 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\Transports\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transports\Services\UpdatesTransport; use App\Classes\Modules\Transports\Services\FetchesTransport; -use App\Classes\Modules\Transports\Services\FetchesDistrict; use App\Classes\Modules\Transports\Standards\Rules\CanUpdateTransport; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; use App\Http\Resources\TransportResource; @@ -36,22 +35,17 @@ class UpdateTransportLogic extends AbstractControllerLogic /** @var FetchesTransport */ private $fetchesTransport; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** * UpdateTransportLogic constructor. * @param CanUpdateTransport $canUpdateTransport * @param UpdatesTransport $updatesTransport * @param FetchesTransport $fetchesTransport - * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateTransport $canUpdateTransport, UpdatesTransport $updatesTransport, FetchesTransport $fetchesTransport, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdateTransport $canUpdateTransport, UpdatesTransport $updatesTransport, FetchesTransport $fetchesTransport) { $this->canUpdateTransport = $canUpdateTransport; $this->updatesTransport = $updatesTransport; $this->fetchesTransport = $fetchesTransport; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,12 +56,12 @@ class UpdateTransportLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), $request->input('dispact_date'), $request->input('drop_date'), $request->input('status')); + $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); + + $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), $request->input('dispatch_date'), $request->input('drop_date'), $request->input('status')); $this->canUpdateTransport->passes($object); - $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - $query = $this->updatesTransport->execute($query, $object); return $this->resourceResponse(new TransportResource($query)); diff --git a/app/Http/Controllers/Schedules/CreateScheduleController.php b/app/Http/Controllers/Schedules/CreateScheduleController.php index ff154ee1..96bbfeda 100644 --- a/app/Http/Controllers/Schedules/CreateScheduleController.php +++ b/app/Http/Controllers/Schedules/CreateScheduleController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Schedules\ControllersLogic\CreateScheduleLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class CreateRemarkController +class CreateScheduleController { /** * @param Request $request diff --git a/app/Http/Controllers/Schedules/DeleteScheduleController.php b/app/Http/Controllers/Schedules/DeleteScheduleController.php index 492349fd..d47bb7d2 100644 --- a/app/Http/Controllers/Schedules/DeleteScheduleController.php +++ b/app/Http/Controllers/Schedules/DeleteScheduleController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Schedules\ControllersLogic\DeleteScheduleLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class DeleteRemarkController +class DeleteScheduleController { /** * @param Request $request diff --git a/app/Http/Controllers/Schedules/FetchScheduleController.php b/app/Http/Controllers/Schedules/FetchScheduleController.php index 6f393e6a..af3f7203 100644 --- a/app/Http/Controllers/Schedules/FetchScheduleController.php +++ b/app/Http/Controllers/Schedules/FetchScheduleController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Schedules\ControllersLogic\FetchScheduleLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class FetchRemarkController +class FetchScheduleController { /** * @param Request $request diff --git a/app/Http/Controllers/Schedules/ListSchedulesController.php b/app/Http/Controllers/Schedules/ListSchedulesController.php index 996b0d1d..edc6563a 100644 --- a/app/Http/Controllers/Schedules/ListSchedulesController.php +++ b/app/Http/Controllers/Schedules/ListSchedulesController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Schedules\ControllersLogic\ListSchedulesLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class ListRemarksController +class ListSchedulesController { /** * @param Request $request diff --git a/app/Http/Controllers/Schedules/UpdateScheduleController.php b/app/Http/Controllers/Schedules/UpdateScheduleController.php index 80a630c2..43b931dc 100644 --- a/app/Http/Controllers/Schedules/UpdateScheduleController.php +++ b/app/Http/Controllers/Schedules/UpdateScheduleController.php @@ -6,7 +6,7 @@ use App\Classes\Modules\Schedules\ControllersLogic\UpdateScheduleLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class UpdateRemarkController +class UpdateScheduleController { /** * @param Request $request diff --git a/app/Models/Schedule.php b/app/Models/Schedule.php index a2746382..8d8f1f95 100644 --- a/app/Models/Schedule.php +++ b/app/Models/Schedule.php @@ -4,6 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Database\Eloquent\Relations\BelongsTo; class Schedule extends AbstractModel { @@ -15,4 +16,9 @@ class Schedule extends AbstractModel { return $this->morphTo(); } + + public function transport(): BelongsTo + { + return $this->BelongsTo(Transport::class, 'transport_id', 'id'); + } } diff --git a/app/Models/Transport.php b/app/Models/Transport.php index 53491743..ce83dc56 100644 --- a/app/Models/Transport.php +++ b/app/Models/Transport.php @@ -24,8 +24,8 @@ class Transport extends AbstractModel /** * @return MorphMany */ - public function schedule(): morphMany + public function schedules(): morphMany { - return $this->morphMany(Schdule::class, 'owner'); + return $this->morphMany(Schedule::class, 'owner'); } } diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index bb246504..1d1f753b 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -196,7 +196,7 @@ } } }, - "/packing_list/update": { + "/packing_list/update/{id}": { "put": { "tags": [ "Packing" @@ -729,7 +729,7 @@ } } }, - "/bank/update": { + "/bank/update/{id}": { "put": { "tags": [ "Bank" @@ -1602,7 +1602,7 @@ } } }, - "/transport/update": { + "/transport/update/{id}": { "put": { "tags": [ "Transport" @@ -1616,25 +1616,53 @@ "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "transport id", "required": true, "type": "integer" }, { - "name": "commenter_id", + "name": "type", "in": "query", - "description": "Commenter id", + "description": "Transport type", "required": true, "type": "integer" }, { - "name": "comment", + "name": "courier", "in": "query", - "description": "Comment", + "description": "Courier Provider Name", "required": true, "type": "string" - } + }, + { + "name": "tracking_number", + "in": "query", + "description": "Tracking No.", + "required": true, + "type": "string" + }, + { + "name": "dispatch_date", + "in": "query", + "description": "Dispatch date (e.g. 2021-09-01)", + "required": true, + "type": "string" + }, + { + "name": "drop_date", + "in": "query", + "description": "Drop date (e.g. 2021-09-01)", + "required": true, + "type": "string" + }, + { + "name": "status", + "in": "query", + "description": "Status", + "required": true, + "type": "string" + }, ], "responses": { "200": { @@ -1721,7 +1749,7 @@ { "name": "transport_id", "in": "query", - "description": "Transport arrangment id", + "description": "Transport id", "required": true, "type": "integer" }, @@ -1858,7 +1886,7 @@ } } }, - "/schedule/update": { + "/schedule/update/{id}": { "put": { "tags": [ "Schedule" @@ -1871,8 +1899,8 @@ "description": "", "parameters": [ { - "name": "schedule_id", - "in": "query", + "name": "id", + "in": "path", "description": "Schedule id", "required": true, "type": "integer" From 9296c321f382988ccb5f3dcc80b34d951b38478c Mon Sep 17 00:00:00 2001 From: Fairuz Date: Sat, 24 Jul 2021 15:17:54 +0800 Subject: [PATCH 17/19] WIP - Order steps & remaining APIs --- .../PackingLists/ControllersLogic/CreatePackingListLogic.php | 4 ++-- .../Schedules/ControllersLogic/CreateScheduleLogic.php | 3 ++- .../Transports/ControllersLogic/CreateTransportLogic.php | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php index 117107aa..561e177d 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic; - +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackingLists\Services\CreatesPackingList; use App\Classes\Modules\PackingLists\Services\CreatesPackingListPackage; @@ -73,7 +73,7 @@ class CreatePackingListLogic extends AbstractControllerLogic $reference_no = rand(1000000, 9999999); - $object = new PackingListObject($reference_no, 0); + $object = new PackingListObject($reference_no, ApprovalStatus::PENDING_SUBMISSION); $this->canCreatePackingList->passes($object); diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php index 1c8d21bc..5bf9c7e9 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -2,6 +2,7 @@ namespace App\Classes\Modules\Schedules\ControllersLogic; +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Schedules\Services\CreatesSchedule; use App\Classes\Modules\Schedules\Standards\Rules\CanCreateSchedule; @@ -55,7 +56,7 @@ class CreateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id'), 0); + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id'), ApprovalStatus::PENDING_SUBMISSION); $this->canCreateSchedule->passes($object); diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index 1d6b6d21..1a0aa96b 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\Transports\ControllersLogic; - +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transports\Services\CreatesTransport; use App\Classes\Modules\Transports\Services\FetchesDistrict; @@ -59,7 +59,7 @@ class CreateTransportLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), null, null, 0); + $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), null, null, ApprovalStatus::PENDING_SUBMISSION); $this->canCreateTransport->passes($object); From e12e5a460ee6098edff5db694b365acaaac76735 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Sat, 24 Jul 2021 16:21:11 +0800 Subject: [PATCH 18/19] WIP - Order steps & remaining APIs --- .../CreateContainerPackingListLogic.php | 4 +- .../FetchContainerPackingListLogic 2.php | 66 ------------- .../UpdateContainerPackingListLogic.php | 26 ++--- .../ContainerPackingListObject.php | 2 +- .../ContainerPackingListPackageValidation.php | 41 -------- .../ContainerPackingListValidation 2.php | 41 -------- .../ContainerPackingListValidation.php | 17 ++-- .../CreatePackageItemLogic.php | 4 +- .../UpdatePackageItemLogic.php | 36 +++---- .../ControllersLogic/CreatePackageLogic.php | 8 +- .../ControllersLogic/UpdatePackageLogic.php | 37 +++---- .../CreatePackingListLogic.php | 1 - .../UpdatePackingListLogic.php | 29 ++---- .../Services/UpdatesPackingList.php | 11 +-- .../ControllersLogic/UpdateRemarkLogic.php | 1 - .../ControllersLogic/UpdateScheduleLogic.php | 1 - .../ControllersLogic/CreateTransportLogic.php | 1 - .../DataTransferObjects/TransportObject.php | 12 +-- .../ContainerPackingListResource.php | 25 +++++ resources/views/swagger/json.blade.php | 97 +++++++++++++------ 20 files changed, 158 insertions(+), 302 deletions(-) delete mode 100644 app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php delete mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php delete mode 100644 app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php create mode 100644 app/Http/Resources/ContainerPackingListResource.php diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php index 842338a1..383b5f6f 100644 --- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/CreateContainerPackingListLogic.php @@ -8,7 +8,7 @@ use App\Classes\Modules\ContainerPackingLists\Services\CreatesContainerPackingLi use App\Classes\Modules\ContainerPackingLists\Standards\Rules\CanCreateContainerPackingList; use App\Classes\Modules\ContainerPackingLists\DataTransferObjects\ContainerPackingListObject; use App\Classes\Modules\PackingLists\Services\FetchesPackingList; -use App\Http\Resources\PackingListResource; +use App\Http\Resources\ContainerPackingListResource; use ErrorException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -60,7 +60,7 @@ class CreateContainerPackingListLogic extends AbstractControllerLogic $query = $this->createsContainerPackingList->execute($object); - return $this->resourceResponse(new PackingListResource($packingList)); + return $this->resourceResponse(new ContainerPackingListResource($query)); } diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php deleted file mode 100644 index 74d4b418..00000000 --- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic 2.php +++ /dev/null @@ -1,66 +0,0 @@ - 'Retrieved ContainerPackingList', - 'message' => 'You have successfully retrieved a ContainerPackingList' - ]; - } - - /** @var CanFetchContainerPackingList */ - private $canFetchContainerPackingList; - - /** @var FetchesContainerPackingList */ - private $fetchesContainerPackingList; - - /** - * FetchContainerPackingListControllersLogic constructor. - * @param CanFetchContainerPackingList $canFetchContainerPackingList - * @param FetchesContainerPackingList $fetchesContainerPackingList - */ - public function __construct(CanFetchContainerPackingList $canFetchContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList) - { - $this->canFetchContainerPackingList = $canFetchContainerPackingList; - $this->fetchesContainerPackingList = $fetchesContainerPackingList; - } - - - /** - * @param Request $request - * @return JsonResponse - * @throws ErrorException - */ - public function logic(Request $request) : JsonResponse - { - try { - - $this->canFetchContainerPackingList->passes(); - - $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new ContainerPackingListResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } - - } - -} diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php index a614c230..8ae97336 100644 --- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php +++ b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\ContainerPackingLists\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\ContainerPackingLists\Services\UpdatesContainerPackingList; use App\Classes\Modules\ContainerPackingLists\Services\FetchesContainerPackingList; -use App\Classes\Modules\ContainerPackingLists\Services\FetchesDistrict; use App\Classes\Modules\ContainerPackingLists\Standards\Rules\CanUpdateContainerPackingList; use App\Classes\Modules\ContainerPackingLists\DataTransferObjects\ContainerPackingListObject; use App\Http\Resources\ContainerPackingListResource; @@ -36,22 +35,17 @@ class UpdateContainerPackingListLogic extends AbstractControllerLogic /** @var FetchesContainerPackingList */ private $fetchesContainerPackingList; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** * UpdateContainerPackingListLogic constructor. * @param CanUpdateContainerPackingList $canUpdateContainerPackingList * @param UpdatesContainerPackingList $updatesContainerPackingList * @param FetchesContainerPackingList $fetchesContainerPackingList - * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdateContainerPackingList $canUpdateContainerPackingList, UpdatesContainerPackingList $updatesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdateContainerPackingList $canUpdateContainerPackingList, UpdatesContainerPackingList $updatesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList) { $this->canUpdateContainerPackingList = $canUpdateContainerPackingList; $this->updatesContainerPackingList = $updatesContainerPackingList; $this->fetchesContainerPackingList = $fetchesContainerPackingList; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,24 +56,16 @@ class UpdateContainerPackingListLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new ContainerPackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new ContainerPackingListObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $container = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); - $this->canUpdateContainerPackingList->passes($object); + $object = new ContainerPackingListObject( $container->packing_list_id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference')); - $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]); + $this->canUpdateContainerPackingList->passes($object); - $query = $this->updatesContainerPackingList->execute($query, $object); + $query = $this->updatesContainerPackingList->execute($container, $object); - return $this->resourceResponse(new ContainerPackingListResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + return $this->resourceResponse(new ContainerPackingListResource($query)); } diff --git a/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php b/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php index 97ceae5c..067033ff 100644 --- a/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php +++ b/app/Classes/Modules/ContainerPackingLists/DataTransferObjects/ContainerPackingListObject.php @@ -38,7 +38,7 @@ class ContainerPackingListObject implements DataTransferObject return $this->containerType; } - public function getSealReference(): int + public function getSealReference(): ?string { return $this->sealReference; } diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php deleted file mode 100644 index ad87e77e..00000000 --- a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListPackageValidation.php +++ /dev/null @@ -1,41 +0,0 @@ - $object->getPackingListId(), - 'package_id' => $object->getPackageId() - ]; - } - - /** - * @return array - */ - protected function rules(): array { - return [ - 'packing_list_id' => 'required', - 'package_id' => 'required', - ]; - } - - /** - * @return array - */ - protected function messages(): array { - return []; - } - -} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php deleted file mode 100644 index 65dd3380..00000000 --- a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation 2.php +++ /dev/null @@ -1,41 +0,0 @@ - $object->getStatus(), - 'reference' => $object->getReference() - ]; - } - - /** - * @return array - */ - protected function rules(): array { - return [ - 'status' => 'required', - 'reference' => 'required', - ]; - } - - /** - * @return array - */ - protected function messages(): array { - return []; - } - -} diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php index 0ff94dc7..d8ed3fa9 100644 --- a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php +++ b/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php @@ -1,23 +1,22 @@ $object->getPackingListId(), - 'reference' => $object->getContainerReference(), + 'packing_list_id' => $object->getPackingListId(), + 'container_reference' => $object->getContainerReference(), 'container_type' => $object->getContainerType(), 'seal_reference' => $object->getSealReference(), ]; @@ -28,10 +27,8 @@ class ContainerPackingListValidation extends AbstractValidation */ protected function rules(): array { return [ - 'status' => 'required', - 'reference' => 'required', - 'container_type' => 'required', - 'seal_reference' => 'required', + 'packing_list_id' => 'required', + 'container_reference' => 'required', ]; } diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php index f935f7c5..9c3ba7b5 100644 --- a/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php +++ b/app/Classes/Modules/PackageItems/ControllersLogic/CreatePackageItemLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic; - +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackageItems\Services\CreatesPackageItem; use App\Classes\Modules\Orders\Services\FetchesOrder; @@ -73,7 +73,7 @@ class CreatePackageItemLogic extends AbstractControllerLogic $request->input('uom'), $request->input('price'), $request->input('total'), - 0); + ApprovalStatus::PENDING_SUBMISSION); $this->canCreatePackageItem->passes($object); diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php b/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php index 5e61dc2e..698a464f 100644 --- a/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php +++ b/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackageItems\Services\UpdatesPackageItem; use App\Classes\Modules\PackageItems\Services\FetchesPackageItem; -use App\Classes\Modules\PackageItems\Services\FetchesDistrict; use App\Classes\Modules\PackageItems\Standards\Rules\CanUpdatePackageItem; use App\Classes\Modules\PackageItems\DataTransferObjects\PackageItemObject; use App\Http\Resources\PackageItemResource; @@ -36,22 +35,17 @@ class UpdatePackageItemLogic extends AbstractControllerLogic /** @var FetchesPackageItem */ private $fetchesPackageItem; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** * UpdatePackageItemLogic constructor. * @param CanUpdatePackageItem $canUpdatePackageItem * @param UpdatesPackageItem $updatesPackageItem * @param FetchesPackageItem $fetchesPackageItem - * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesPackageItem $fetchesPackageItem, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesPackageItem $fetchesPackageItem) { $this->canUpdatePackageItem = $canUpdatePackageItem; $this->updatesPackageItem = $updatesPackageItem; $this->fetchesPackageItem = $fetchesPackageItem; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,24 +56,24 @@ class UpdatePackageItemLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $packageItem = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new PackageItemObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new PackageItemObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new PackageItemObject( + $packageItem->package_id, + $request->input('name'), + $packageItem->reference, + $request->input('description'), + $request->input('quantity'), + $request->input('uom'), + $request->input('price'), + $request->input('total'), + $request->input('status')); - $this->canUpdatePackageItem->passes($object); + $this->canUpdatePackageItem->passes($object); - $query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); + $query = $this->updatesPackageItem->execute($packageItem, $object); - $query = $this->updatesPackageItem->execute($query, $object); - - return $this->resourceResponse(new PackageItemResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + return $this->resourceResponse(new PackageItemResource($query)); } diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php index 4fcf1613..5c17b99f 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\Packages\ControllersLogic; - +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Packages\Services\CreatesPackage; use App\Classes\Modules\Orders\Services\FetchesOrder; @@ -30,7 +30,7 @@ class CreatePackageLogic extends AbstractControllerLogic /** @var CanCreatePackage */ private $canCreatePackage; - /** @var FetchesDistrict */ + /** @var FetchesOrder */ private $fetchesOrder; /** @var FetchesCompany */ @@ -42,7 +42,7 @@ class CreatePackageLogic extends AbstractControllerLogic /** * CreatePackageLogic constructor. * @param CanCreatePackage $canCreatePackage - * @param FetchesDistrict $fetchesDistrict + * @param FetchesOrder $fetchesOrder * @param FetchesCompany $fetchesCompany * @param CreatesPackage $createsPackage */ @@ -76,7 +76,7 @@ class CreatePackageLogic extends AbstractControllerLogic $request->input('length'), $request->input('weight'), $request->input('quantity'), - 0); + ApprovalStatus::PENDING_SUBMISSION); $this->canCreatePackage->passes($object); diff --git a/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php index 3a844486..baf6e2ca 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/UpdatePackageLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\Packages\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Packages\Services\UpdatesPackage; use App\Classes\Modules\Packages\Services\FetchesPackage; -use App\Classes\Modules\Packages\Services\FetchesDistrict; use App\Classes\Modules\Packages\Standards\Rules\CanUpdatePackage; use App\Classes\Modules\Packages\DataTransferObjects\PackageObject; use App\Http\Resources\PackageResource; @@ -36,22 +35,18 @@ class UpdatePackageLogic extends AbstractControllerLogic /** @var FetchesPackage */ private $fetchesPackage; - /** @var FetchesDistrict */ - private $fetchesDistrict; /** * UpdatePackageLogic constructor. * @param CanUpdatePackage $canUpdatePackage * @param UpdatesPackage $updatesPackage * @param FetchesPackage $fetchesPackage - * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdatePackage $canUpdatePackage, UpdatesPackage $updatesPackage, FetchesPackage $fetchesPackage, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdatePackage $canUpdatePackage, UpdatesPackage $updatesPackage, FetchesPackage $fetchesPackage) { $this->canUpdatePackage = $canUpdatePackage; $this->updatesPackage = $updatesPackage; $this->fetchesPackage = $fetchesPackage; - $this->fetchesDistrict = $fetchesDistrict; } @@ -62,25 +57,25 @@ class UpdatePackageLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $package = $this->fetchesPackage->execute(['id' => $request->route('id')]); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new PackageObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new PackageObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new PackageObject( + $package->order_id, + null, + $request->input('type'), + $request->input('description'), + $request->input('width'), + $request->input('height'), + $request->input('length'), + $request->input('weight'), + $request->input('quantity'), + $request->input('status')); - $this->canUpdatePackage->passes($object); + $this->canUpdatePackage->passes($object); - $query = $this->fetchesPackage->execute(['id' => $request->route('id')]); - - $query = $this->updatesPackage->execute($query, $object); - - return $this->resourceResponse(new PackageResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->updatesPackage->execute($package, $object); + return $this->resourceResponse(new PackageResource($query)); } } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php index 561e177d..3774a025 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -45,7 +45,6 @@ class CreatePackingListLogic extends AbstractControllerLogic /** * CreatePackingListLogic constructor. * @param CanCreatePackingList $canCreatePackingList - * @param FetchesDistrict $fetchesDistrict * @param FetchesCompany $fetchesCompany * @param CreatesPackingList $createsPackingList */ diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php index 399a55e5..926b9873 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php @@ -6,7 +6,6 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\PackingLists\Services\UpdatesPackingList; use App\Classes\Modules\PackingLists\Services\FetchesPackingList; -use App\Classes\Modules\PackingLists\Services\FetchesDistrict; use App\Classes\Modules\PackingLists\Standards\Rules\CanUpdatePackingList; use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject; use App\Http\Resources\PackingListResource; @@ -36,25 +35,19 @@ class UpdatePackingListLogic extends AbstractControllerLogic /** @var FetchesPackingList */ private $fetchesPackingList; - /** @var FetchesDistrict */ - private $fetchesDistrict; - /** * UpdatePackingListLogic constructor. * @param CanUpdatePackingList $canUpdatePackingList * @param UpdatesPackingList $updatesPackingList * @param FetchesPackingList $fetchesPackingList - * @param FetchesDistrict $fetchesDistrict */ - public function __construct(CanUpdatePackingList $canUpdatePackingList, UpdatesPackingList $updatesPackingList, FetchesPackingList $fetchesPackingList, FetchesDistrict $fetchesDistrict) + public function __construct(CanUpdatePackingList $canUpdatePackingList, UpdatesPackingList $updatesPackingList, FetchesPackingList $fetchesPackingList) { $this->canUpdatePackingList = $canUpdatePackingList; $this->updatesPackingList = $updatesPackingList; $this->fetchesPackingList = $fetchesPackingList; - $this->fetchesDistrict = $fetchesDistrict; } - /** * @param Request $request * @return JsonResponse @@ -62,25 +55,15 @@ class UpdatePackingListLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $packingList = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new PackingListObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new PackingListObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new PackingListObject($packingList->reference, $request->input('status')); - $this->canUpdatePackingList->passes($object); + $this->canUpdatePackingList->passes($object); - $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - - $query = $this->updatesPackingList->execute($query, $object); - - return $this->resourceResponse(new PackingListResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->updatesPackingList->execute($packingList, $object); + return $this->resourceResponse(new PackingListResource($query)); } } diff --git a/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php index 2a53408b..7f81ae22 100644 --- a/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php +++ b/app/Classes/Modules/PackingLists/Services/UpdatesPackingList.php @@ -17,15 +17,8 @@ class UpdatesPackingList extends AbstractUpdateRecord */ public function execute(PackingList $model, PackingListObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->reference = $object->getReference(); + $model->status = $object->getStatus(); return $this->handler($model); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php index 3ddaebcd..e9c0738f 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -39,7 +39,6 @@ class UpdateRemarkLogic extends AbstractControllerLogic * @param CanUpdateRemark $canUpdateRemark * @param UpdatesRemark $updatesRemark * @param FetchesRemark $fetchesRemark - * @param FetchesDistrict $fetchesDistrict */ public function __construct(CanUpdateRemark $canUpdateRemark, UpdatesRemark $updatesRemark, FetchesRemark $fetchesRemark) { diff --git a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php index 184b73f2..2805c927 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php @@ -41,7 +41,6 @@ class UpdateScheduleLogic extends AbstractControllerLogic * @param CanUpdateSchedule $canUpdateSchedule * @param UpdatesSchedule $updatesSchedule * @param FetchesSchedule $fetchesSchedule - * @param FetchesDistrict $fetchesDistrict */ public function __construct(CanUpdateSchedule $canUpdateSchedule, UpdatesSchedule $updatesSchedule, FetchesSchedule $fetchesSchedule) { diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index 1a0aa96b..73bdafac 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -5,7 +5,6 @@ namespace App\Classes\Modules\Transports\ControllersLogic; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transports\Services\CreatesTransport; -use App\Classes\Modules\Transports\Services\FetchesDistrict; use App\Classes\Modules\Transports\Standards\Rules\CanCreateTransport; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; use App\Classes\Modules\ContainerPackingLists\Services\FetchesContainerPackingList; diff --git a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php index bc493ca4..c391ac72 100644 --- a/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php +++ b/app/Classes/Modules/Transports/DataTransferObjects/TransportObject.php @@ -28,14 +28,14 @@ class TransportObject implements DataTransferObject /** * TransportObject constructor. - * @param string $type + * @param int $type * @param null|string $courier - * @param int $tracking_number + * @param string $tracking_number * @param int $dispatch_date * @param int $drop_date * @param int $status */ - public function __construct(string $type, string $courier, int $tracking_number, ?string $dispatch_date, ?string $drop_date, int $status) + public function __construct(int $type, string $courier, string $tracking_number, ?string $dispatch_date, ?string $drop_date, int $status) { $this->type = $type; $this->courier = $courier; @@ -46,9 +46,9 @@ class TransportObject implements DataTransferObject } /** - * @return string + * @return int */ - public function getType(): string + public function getType(): int { return $this->type; } @@ -64,7 +64,7 @@ class TransportObject implements DataTransferObject /** * @return int */ - public function getTrackingNumber(): int + public function getTrackingNumber(): string { return $this->tracking_number; } diff --git a/app/Http/Resources/ContainerPackingListResource.php b/app/Http/Resources/ContainerPackingListResource.php new file mode 100644 index 00000000..b98b5f00 --- /dev/null +++ b/app/Http/Resources/ContainerPackingListResource.php @@ -0,0 +1,25 @@ + $this->id, + 'packing_list_id' => $this->packing_list_id, + 'container_reference' => $this->container_reference, + 'container_type' => $this->container_type, + 'seal_reference' => $this->seal_reference, + ]; + } +} diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 1d1f753b..2a23ab93 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -210,25 +210,18 @@ "parameters": [ { "name": "id", - "in": "query", - "description": "transport id", + "in": "path", + "description": "Packing list id", "required": true, "type": "integer" }, { - "name": "commenter_id", + "name": "status", "in": "query", - "description": "Commenter id", + "description": "Status", "required": true, "type": "integer" }, - { - "name": "content", - "in": "query", - "description": "Content", - "required": true, - "type": "string" - } ], "responses": { "200": { @@ -331,7 +324,7 @@ "in": "query", "description": "Container type", "required": true, - "type": "string" + "type": "integer" }, { "name": "seal_reference", @@ -422,7 +415,7 @@ "produces": [ "application/json" ], - "operationId": "showPacking", + "operationId": "showContainerPacking", "summary": "Show container packing list", "description": "", "parameters": [ @@ -467,7 +460,7 @@ "produces": [ "application/json" ], - "operationId": "updatePacking", + "operationId": "updateContainerPacking", "summary": "Update packing", "description": "", "parameters": [ @@ -497,7 +490,7 @@ "in": "query", "description": "Container type", "required": true, - "type": "string" + "type": "integer" }, { "name": "seal_reference", @@ -1088,6 +1081,13 @@ "required": true, "type": "integer" }, + { + "name": "status", + "in": "query", + "description": "Status", + "required": true, + "type": "integer" + }, ], "responses": { "200": { @@ -1181,7 +1181,7 @@ { "name": "name", "in": "query", - "description": "Courier Provider Name", + "description": "Name", "required": true, "type": "string" }, @@ -1359,19 +1359,54 @@ "type": "string" }, { - "name": "commenter_id", + "name": "name", "in": "query", - "description": "Commenter id", + "description": "Name", + "required": true, + "type": "string" + }, + { + "name": "description", + "in": "query", + "description": "Description", + "required": false, + "type": "string" + }, + { + "name": "quantity", + "in": "query", + "description": "Quantity", + "required": true, + "type": "number" + }, + { + "name": "uom", + "in": "query", + "description": "UOM", + "required": true, + "type": "string" + }, + { + "name": "price", + "in": "query", + "description": "Price", + "required": true, + "type": "number" + }, + { + "name": "total", + "in": "query", + "description": "Total", + "required": true, + "type": "number" + }, + { + "name": "status", + "in": "query", + "description": "Status", "required": true, "type": "integer" }, - { - "name": "comment", - "in": "query", - "description": "Comment", - "required": true, - "type": "string" - } ], "responses": { "200": { @@ -1661,7 +1696,7 @@ "in": "query", "description": "Status", "required": true, - "type": "string" + "type": "integer" }, ], "responses": { @@ -1756,14 +1791,14 @@ { "name": "etd", "in": "query", - "description": "Estimate time deliver", + "description": "Estimate time deliver (e.g. 2021-09-01)", "required": true, "type": "string" }, { "name": "eta", "in": "query", - "description": "Estimate time arrival", + "description": "Estimate time arrival (e.g. 2021-09-01)", "required": true, "type": "string" } @@ -1908,14 +1943,14 @@ { "name": "etd", "in": "query", - "description": "Estimate time deliver", + "description": "Estimate time deliver (e.g. 2021-09-01)", "required": true, "type": "string" }, { "name": "eta", "in": "query", - "description": "Estimate time arrival", + "description": "Estimate time arrival (e.g. 2021-09-01)", "required": true, "type": "string" }, @@ -1924,7 +1959,7 @@ "in": "query", "description": "Status", "required": true, - "type": "string" + "type": "integer" } ], "responses": { From 97ec698983aaa2db2dcb3c0339b4db47bca28012 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sun, 25 Jul 2021 14:36:09 +0800 Subject: [PATCH 19/19] update gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ac0eb695..95d268cf 100644 --- a/.gitignore +++ b/.gitignore @@ -19,8 +19,9 @@ public/.DS_Store public/images/.DS_Store gox.iml rebuild_docker.sh -r.sh docker/* db/* docker-compose.yml package-lock.json +public/* +/public/* \ No newline at end of file