diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php index 812f603d..45d22210 100644 --- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php +++ b/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php @@ -4,8 +4,10 @@ namespace App\Classes\Modules\Packages\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; +use App\Classes\Modules\Packages\Services\CreatesPackageList; use App\Classes\Modules\Packages\Services\CreatesPackage; -use App\Classes\Modules\Packages\Standards\Rules\CanCreatePackage; +use App\Classes\Modules\Packages\Services\CreatesPackageItem; +use App\Classes\Modules\Packages\Standards\Rules\CanCreatePackageList; use App\Classes\Modules\Packages\DataTransferObjects\PackagesListObject; use App\Http\Resources\PackageResource; use ErrorException; @@ -25,20 +27,29 @@ class CreatePackageLogic extends AbstractControllerLogic ]; } - /** @var CanCreatePackage */ - private $canCreatePackage; + /** @var CanCreatePackageList */ + private $canCreatePackageList; + + /** @var CreatesPackageList */ + private $createsPackageList; /** @var CreatesPackage */ private $createsPackage; + /** @var CreatesPackageItem */ + private $createsPackageItem; + /** * CreatePackageControllerLogic constructor. - * @param CanCreatePackage $canCreatePackage + * @param CanCreatePackageList $canCreatePackage + * @param CreatesPackageList $createsPackageList * @param CreatesPackage $createsPackage + * @param CreatesPackageItem $createsPackageItem */ - public function __construct(CanCreatePackage $canCreatePackage, CreatesPackage $createsPackage) + public function __construct(CanCreatePackageList $canCreatePackageList, CreatesPackageList $createsPackageList,CreatesPackage $createsPackage,CreatesPackageItem $createsPackageItem) { - $this->canCreatePackage = $canCreatePackage; + $this->canCreatePackageList = $canCreatePackageList; + $this->createsPackageList = $createsPackageList; $this->createsPackage = $createsPackage; } @@ -52,10 +63,15 @@ class CreatePackageLogic extends AbstractControllerLogic { try { $object = new PackagesListObject($request->input('order_id'),$request->input('packages')); - $this->canCreatePackage->passes($object); + $this->canCreatePackageList->passes($object); + + $query = $this->createsPackageList->execute($object); + +// dd($query->id); + $query = $this->createsPackage->execute($object); - + 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 7bed274a..2b83a8ce 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackageObject.php @@ -19,7 +19,7 @@ class PackageObject implements DataTransferObject private $height; /** @var float */ - private $lenght; + private $length; /** @var array */ private $items; @@ -29,18 +29,16 @@ class PackageObject implements DataTransferObject * @param int $type * @param float $width * @param float $height - * @param float $lenght + * @param float $length * @param array $items */ - public function __construct(int $type, float $width, float $height, float $lenght, array $items) + public function __construct(int $type, float $width, float $height, float $length, array $items) { $this->type = $type; $this->width = $width; $this->height = $height; - $this->lenght = $lenght; - foreach($items as $item){ - $this->items=new ItemObject($item['description'],$item['unitOfMeasurment'],$item['quantity'],$item['price'],$item['currency']); - } + $this->length = $length; + $this->items = $items; } /** @@ -70,9 +68,9 @@ class PackageObject implements DataTransferObject /** * @return float */ - public function getLenght(): float + public function getLength(): float { - return $this->lenght; + return $this->length; } /** @@ -80,7 +78,9 @@ class PackageObject implements DataTransferObject */ public function getItems(): array { - return $this->items; + return array_map(function($item){ + return new ItemObject($item['description'],$item['unitOfMeasurment'],$item['quantity'],$item['price'],$item['currency']); + },$this->items); } diff --git a/app/Classes/Modules/Packages/DataTransferObjects/PackagesListObject.php b/app/Classes/Modules/Packages/DataTransferObjects/PackagesListObject.php index 01aa2dd7..5f88f3ad 100644 --- a/app/Classes/Modules/Packages/DataTransferObjects/PackagesListObject.php +++ b/app/Classes/Modules/Packages/DataTransferObjects/PackagesListObject.php @@ -26,9 +26,8 @@ class PackagesListObject implements DataTransferObject public function __construct(int $orderId, array $packages) { $this->orderId = $orderId; - foreach($packages as $package){ - $this->packages=new PackageObject($package['type'],$package['width'],$package['height'],$package['length'],$package['items']); - } + $this->packages = $packages; + } /** @@ -39,20 +38,14 @@ class PackagesListObject implements DataTransferObject return $this->orderId; } - // /** - // * @return array - // */ - // public function getPackages(): array - // { - // return $this->packages; - // } - /** - * @return PackageObject + * @return array */ - public function getPackages(): PackageObject + public function getPackages(): array { - return $this->packages; + return array_map(function($package){ + return new PackageObject($package['type'],$package['width'],$package['height'],$package['length'],$package['items']);; + },$this->packages); } } \ No newline at end of file diff --git a/app/Classes/Modules/Packages/Services/CreatesPackage.php b/app/Classes/Modules/Packages/Services/CreatesPackage.php index 6ae51e89..c73185ab 100644 --- a/app/Classes/Modules/Packages/Services/CreatesPackage.php +++ b/app/Classes/Modules/Packages/Services/CreatesPackage.php @@ -16,20 +16,37 @@ class CreatesPackage extends AbstractUpdateRecord * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(PackagesListObject $object) { - $model = new PackageList(); - $model->order_id = $object->getOrderId(); - // $rr=$object->getPackages(); - // // foreach($rr as $r){ - // dd($rr); - // // } - // echo 333; exit;d - $model2 = new Package(); - - $model->type = $object->getOrderId(); - - - return $this->handler($model); + $packages=$object->getPackages(); + + // $packages_list = []; + // foreach($packages as $package){ + // $packages_list['package_list_id'] = $package->getType(); + // // $packages_list->package_type = $package->getType(); + // // $packages_list->width = $package->getWidth(); + // // $packages_list->height = $package->getHeight(); + // // $packages_list->length = $package->getLength(); + // // $packages_list->weight = $package->getType(); + // // $packages_list->order_id = $package->getType(); + // } + // dd($packages_list); + + $packages_list = []; + foreach($packages as $package){ + $model = new Package(); + $model->package_list_id = $package->getType(); + $model->package_type = $package->getType(); + $model->width = $package->getWidth(); + $model->height = $package->getHeight(); + $model->length = $package->getLength(); + $model->weight = $package->getType(); + $model->order_id = $package->getType(); + // return $this->handler($model); + $packages_list[] = $model->attributesToArray(); + } +// var_dump($packages_list); + $rr= Package::insert($packages_list); + dd(33); } } \ No newline at end of file diff --git a/app/Classes/Modules/Packages/Services/CreatesPackageItem.php b/app/Classes/Modules/Packages/Services/CreatesPackageItem.php new file mode 100644 index 00000000..b02c68a7 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/CreatesPackageItem.php @@ -0,0 +1,37 @@ +getPackages()); +exit; + $model = new PackageList(); + $model->order_id = $object->getOrderId(); + // $rr=$object->getPackages(); + // // foreach($rr as $r){ + // dd($rr); + // // } + // echo 333; exit;d + $model2 = new Package(); + + $model->type = $object->getOrderId(); + + + + return $this->handler($model); + + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Packages/Services/CreatesPackageList.php b/app/Classes/Modules/Packages/Services/CreatesPackageList.php new file mode 100644 index 00000000..3d9ba9c5 --- /dev/null +++ b/app/Classes/Modules/Packages/Services/CreatesPackageList.php @@ -0,0 +1,23 @@ +order_id = $object->getOrderId(); + return $this->handler($model); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageList.php similarity index 92% rename from app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php rename to app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageList.php index 89d98639..15bc35ea 100644 --- a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php +++ b/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackageList.php @@ -7,14 +7,14 @@ use App\Classes\General\Abstracts\AbstractRule; use App\Classes\Modules\Packages\DataTransferObjects\PackagesListObject; use App\Classes\Modules\Packages\Standards\Validators\PackageValidation; -class CanCreatePackage extends AbstractRule +class CanCreatePackageList extends AbstractRule { /** @var PackageValidation */ private $packageValidation; /** - * CanCreatePackage constructor. + * CanCreatePackageList constructor. * @param PackageValidation $packageValidation */ public function __construct(PackageValidation $packageValidation)