diff --git a/app/Classes/Modules/Addresses/ControllersLogic/CreateAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/CreateAddressLogic.php index f019bab3..df552b6a 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/CreateAddressLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/CreateAddressLogic.php @@ -3,6 +3,9 @@ namespace App\Classes\Modules\Addresses\ControllersLogic; +use App\Classes\Exceptions\AccessForbiddenException; +use App\Classes\Exceptions\MalformedRequestException; +use App\Classes\Exceptions\RequestValidationException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\General\Interfaces\Contactable; use App\Classes\Modules\Addresses\Services\CreatesAddress; @@ -17,6 +20,7 @@ use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Http\Resources\AddressResource; use App\Models\Address; +use App\Transformers\AddressTransformer; use ErrorException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -27,7 +31,8 @@ class CreateAddressLogic extends AbstractControllerLogic /** * @return array */ - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Created Address', 'message' => 'You have successfully created a new Address' @@ -74,11 +79,11 @@ class CreateAddressLogic extends AbstractControllerLogic /** * @param Request $request * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException + * @throws AccessForbiddenException + * @throws MalformedRequestException + * @throws RequestValidationException */ - public function logic(Request $request) : JsonResponse + public function logic(Request $request): JsonResponse { $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); @@ -90,16 +95,22 @@ class CreateAddressLogic extends AbstractControllerLogic /** @var Address $address */ $address = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object); - if($request->input('phone')){ + if ($request->input('phone')) { $contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', ''); $this->createContactProcessor->execute($contactObject, $address); } - if($request->input('remark')){ + if ($request->input('remark')) { $remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id); $this->createRemarkProcessor->execute($address, $remarkObject); } +/* return fractal() + ->item($address, new AddressTransformer()) + ->parseIncludes('remark') + ->respond(200, [], JSON_PRETTY_PRINT);*/ + + return $this->resourceResponse(new AddressResource($address)); } diff --git a/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php index b3d5ded6..e97ece85 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php @@ -3,6 +3,9 @@ namespace App\Classes\Modules\Addresses\ControllersLogic; +use App\Classes\Exceptions\AccessForbiddenException; +use App\Classes\Exceptions\MalformedRequestException; +use App\Classes\Exceptions\RequestValidationException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\CreatesAddress; use App\Classes\Modules\Addresses\Standards\Rules\CanCreateAddress; @@ -14,6 +17,7 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Http\Resources\AddressResource; use App\Models\Address; use App\Models\CompanyModule; +use App\Transformers\AddressTransformer; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -23,7 +27,8 @@ class CreateBillingAddressLogic extends AbstractControllerLogic /** * @return array */ - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Created Billing Address', 'message' => 'You have successfully created a new Billing Address' @@ -60,14 +65,14 @@ class CreateBillingAddressLogic extends AbstractControllerLogic /** * @param Request $request * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException + * @throws AccessForbiddenException + * @throws MalformedRequestException + * @throws RequestValidationException */ - public function logic(Request $request) : JsonResponse + public function logic(Request $request): JsonResponse { $companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]); - + $billingAddressInputed = $this->fetchesAddress->execute(['id' => $request->input('billing_address_id')]); if ($billingAddressInputed->type !== AddressType::BILLING || $billingAddressInputed->id !== $companyModule->addresses->where('type', AddressType::BILLING)->first()->id) { @@ -80,6 +85,14 @@ class CreateBillingAddressLogic extends AbstractControllerLogic $this->createsAddress->execute($companyModule, $billingAddress); } + //load address with only owner address + +/* return fractal() + ->item($billingAddressInputed, new AddressTransformer()) + ->parseIncludes('Owner_address') + ->respond(200, [], JSON_PRETTY_PRINT);*/ + + return $this->resourceResponse(new AddressResource($billingAddressInputed)); } diff --git a/app/Classes/Modules/Addresses/ControllersLogic/FetchAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/FetchAddressLogic.php index 2b1ae32e..bd9f4228 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/FetchAddressLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/FetchAddressLogic.php @@ -3,6 +3,8 @@ namespace App\Classes\Modules\Addresses\ControllersLogic; +use App\Classes\Exceptions\AccessForbiddenException; +use App\Classes\Exceptions\RequestValidationException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\FetchesAddress; use App\Classes\Modules\Addresses\Standards\Rules\CanFetchAddress; @@ -17,7 +19,8 @@ class FetchAddressLogic extends AbstractControllerLogic /** * @return array */ - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Retrieved Address', 'message' => 'You have successfully retrieved a Address' @@ -45,15 +48,22 @@ class FetchAddressLogic extends AbstractControllerLogic /** * @param Request $request * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\RequestValidationException + * @throws AccessForbiddenException + * @throws RequestValidationException */ - public function logic(Request $request) : JsonResponse + public function logic(Request $request): JsonResponse { $this->canFetchAddress->passes(); $query = $this->fetchesAddress->execute(['id' => $request->route('id')]); + + //load address with no relationships + /* return fractal() + ->item($address, new AddressTransformer()) + ->respond(200, [], JSON_PRETTY_PRINT);*/ + + return $this->resourceResponse(new AddressResource($query)); } diff --git a/app/Classes/Modules/Addresses/ControllersLogic/ListAddressesLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/ListAddressesLogic.php index 71e3b80d..08868c65 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/ListAddressesLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/ListAddressesLogic.php @@ -3,10 +3,14 @@ namespace App\Classes\Modules\Addresses\ControllersLogic; +use App\Classes\Exceptions\AccessForbiddenException; +use App\Classes\Exceptions\MalformedRequestException; +use App\Classes\Exceptions\RequestValidationException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\ListsAddresses; use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses; use App\Http\Resources\AddressResource; +use App\Transformers\AddressTransformer; use ErrorException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -17,7 +21,8 @@ class ListAddressesLogic extends AbstractControllerLogic /** * @return array */ - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Retrieved Addresses', 'message' => 'You have successfully retrieved a list of Addresses' @@ -45,17 +50,25 @@ class ListAddressesLogic extends AbstractControllerLogic /** * @param Request $request * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException + * @throws AccessForbiddenException + * @throws MalformedRequestException + * @throws RequestValidationException */ - public function logic(Request $request) : JsonResponse + public function logic(Request $request): JsonResponse { $this->canListAddresses->passes(); $query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters'))); + //a collection of addresses with all incluides + /* return fractal() + ->collection($query, new AddressTransformer) + ->parseIncludes('Owner_address') + ->parseIncludes('remark') + ->parseIncludes('contact') + ->respond(200, [], JSON_PRETTY_PRINT);*/ + return $this->collectionResponse(AddressResource::collection($query)); } diff --git a/app/Classes/Modules/Addresses/ControllersLogic/ListDistrictsLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/ListDistrictsLogic.php index b9a97fb3..6f47e517 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/ListDistrictsLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/ListDistrictsLogic.php @@ -7,7 +7,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\ListsAddresses; use App\Classes\Modules\Addresses\Services\ListsDistricts; use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses; -use App\Http\Resources\AddressResource; use App\Http\Resources\DistrictResource; use ErrorException; use Illuminate\Http\JsonResponse; diff --git a/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php index 3d6c484f..67b00b50 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php @@ -7,7 +7,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\ListsAddresses; use App\Classes\Modules\Addresses\Services\ListsStates; use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses; -use App\Http\Resources\AddressResource; use App\Http\Resources\StateResource; use ErrorException; use Illuminate\Http\JsonResponse; diff --git a/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php index f8fed1a0..1128de73 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/SetAddressToDefaultLogic.php @@ -9,6 +9,7 @@ use App\Classes\Modules\Addresses\Services\FetchesAddress; use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault; use App\Classes\Modules\Addresses\Services\SetsAddressToDefault; use App\Models\Address; +use App\Transformers\AddressTransformer; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -33,7 +34,7 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic /** @var ResetsAddressesDefault */ private $resetsAddressesDefault; - /** @var SetsAddressToDefault*/ + /** @var SetsAddressToDefault */ private $setsAddressToDefault; @@ -64,7 +65,15 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic $this->resetsAddressesDefault->execute($address->owner, $address->type); - return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address))); + + $setAddress = $this->setsAddressToDefault->execute($address); + //no relationships needed + /* return fractal() + ->item($setAddress, new AddressTransformer()) + ->respond(200, [], JSON_PRETTY_PRINT);*/ + + + return $this->resourceResponse(new AddressResource($address)); } } diff --git a/app/Classes/Modules/Addresses/ControllersLogic/UpdateAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/UpdateAddressLogic.php index 94d960f6..4216a0e8 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/UpdateAddressLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/UpdateAddressLogic.php @@ -17,6 +17,7 @@ use App\Classes\ValueObjects\Constants\AddressType; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Http\Resources\AddressResource; use App\Models\Address; +use App\Transformers\AddressTransformer; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -26,7 +27,8 @@ class UpdateAddressLogic extends AbstractControllerLogic /** * @return array */ - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Updated Address', 'message' => 'You have successfully updated the Address' @@ -77,7 +79,7 @@ class UpdateAddressLogic extends AbstractControllerLogic * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ - public function logic(Request $request) : JsonResponse + public function logic(Request $request): JsonResponse { $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); @@ -90,18 +92,25 @@ class UpdateAddressLogic extends AbstractControllerLogic /** @var Address $address */ $address = $this->updatesAddress->execute($address, $object); - $address->contacts()->delete(); $address->remarks()->delete(); + $address->contacts()->delete(); + $address->remarks()->delete(); - if($request->input('phone')){ + if ($request->input('phone')) { $contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', ''); $this->createContactProcessor->execute($contactObject, $address); } - if($request->input('remark')){ + if ($request->input('remark')) { $remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id); $this->createRemarkProcessor->execute($address, $remarkObject); } + //only remark relationship needed +/* return fractal() + ->item($address, new AddressTransformer()) + ->parseIncludes('remark') + ->respond(200, [], JSON_PRETTY_PRINT);*/ + return $this->resourceResponse(new AddressResource($address)); } diff --git a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php index 0b469fd1..1b6668a7 100644 --- a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php +++ b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php @@ -6,6 +6,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Orders\Processors\ApproveChangeOrderAddressProcessor; use App\Http\Resources\AddressResource; use App\Http\Resources\OrderResource; +use App\Transformers\AddressTransformer; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; @@ -39,6 +40,12 @@ class ApproveChangeOrderAddressLogic extends AbstractControllerLogic { $address = $this->approveChangeOrderAddressProcessor->execute($request); + + //load address with no relationships + /* return fractal() + ->item($address, new AddressTransformer()) + ->respond(200, [], JSON_PRETTY_PRINT);*/ + return $this->resourceResponse(new AddressResource($address)); } } diff --git a/app/Models/Address.php b/app/Models/Address.php index 8357940f..32ac4841 100644 --- a/app/Models/Address.php +++ b/app/Models/Address.php @@ -4,16 +4,22 @@ namespace App\Models; use App\Classes\General\Interfaces\Contactable; use App\Classes\General\Interfaces\Remarkable; +use Barryvdh\LaravelIdeHelper\Eloquent; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Collection; +use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphTo; +use Illuminate\Support\Carbon; +use Spatie\Activitylog\Models\Activity; + /** * Class Address - * @package App\Models * + * @package App\Models * @property int country_id * @property int company_id * @property int state_id @@ -22,6 +28,53 @@ use Illuminate\Database\Eloquent\Relations\MorphTo; * @property string street_one * @property string street_two * @property integer billing_type + * @property int $id + * @property string $owner_type + * @property int $owner_id + * @property string|null $reference + * @property int $type + * @property int $default + * @property int $status + * @property Carbon|null $deleted_at + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property-read Collection|Activity[] $activities + * @property-read int|null $activities_count + * @property-read Model|Eloquent $causer + * @property-read Collection|Contact[] $contacts + * @property-read int|null $contacts_count + * @property-read Country|null $country + * @property-read District|null $district + * @property-read Model|Eloquent $owner + * @property-read Collection|Remark[] $remarks + * @property-read int|null $remarks_count + * @property-read State|null $state + * @property-read Model|Eloquent $subject + * @property-read Model|Eloquent $target + * @method static Builder|Address defaultAddress() + * @method static Builder|Address newModelQuery() + * @method static Builder|Address newQuery() + * @method static \Illuminate\Database\Query\Builder|Address onlyTrashed() + * @method static Builder|Address query() + * @method static Builder|Address whereCountryId($value) + * @method static Builder|Address whereCreatedAt($value) + * @method static Builder|Address whereDefault($value) + * @method static Builder|Address whereDeletedAt($value) + * @method static Builder|Address whereDistrictId($value) + * @method static Builder|Address whereId($value) + * @method static Builder|Address whereOwnerId($value) + * @method static Builder|Address whereOwnerType($value) + * @method static Builder|Address wherePostcode($value) + * @method static Builder|Address whereReference($value) + * @method static Builder|Address whereStateId($value) + * @method static Builder|Address whereStatus($value) + * @method static Builder|Address whereStreetOne($value) + * @method static Builder|Address whereStreetTwo($value) + * @method static Builder|Address whereType($value) + * @method static Builder|Address whereUpdatedAt($value) + * @method static \Illuminate\Database\Query\Builder|Address withTrashed() + * @method static \Illuminate\Database\Query\Builder|Address withoutTrashed() + * @mixin Eloquent */ class Address extends AbstractModel implements Contactable, Remarkable { @@ -58,7 +111,7 @@ class Address extends AbstractModel implements Contactable, Remarkable } /** - * @return \Illuminate\Database\Eloquent\Relations\MorphTo + * @return MorphTo */ public function owner(): morphTo { diff --git a/app/Models/Remark.php b/app/Models/Remark.php index f2de3a5c..b17f6a43 100644 --- a/app/Models/Remark.php +++ b/app/Models/Remark.php @@ -2,10 +2,50 @@ namespace App\Models; +use Barryvdh\LaravelIdeHelper\Eloquent; +use Illuminate\Database\Eloquent\Collection; +use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Query\Builder; +use Illuminate\Support\Carbon; +use Spatie\Activitylog\Models\Activity; +/** + * App\Models\Remark + * + * @property int $id + * @property string $owner_type + * @property int $owner_id + * @property int $commenter_id + * @property string $content + * @property Carbon|null $deleted_at + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property-read Collection|Activity[] $activities + * @property-read int|null $activities_count + * @property-read Model|Eloquent $causer + * @property-read User|null $commenter + * @property-read Model|Eloquent $owner + * @property-read Model|Eloquent $subject + * @property-read Model|Eloquent $target + * @method static \Illuminate\Database\Eloquent\Builder|Remark newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|Remark newQuery() + * @method static Builder|Remark onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|Remark query() + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereCommenterId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereContent($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereOwnerId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereOwnerType($value) + * @method static \Illuminate\Database\Eloquent\Builder|Remark whereUpdatedAt($value) + * @method static Builder|Remark withTrashed() + * @method static Builder|Remark withoutTrashed() + * @mixin Eloquent + */ class Remark extends AbstractModel { use SoftDeletes; diff --git a/app/Transformers/AddressTransformer.php b/app/Transformers/AddressTransformer.php new file mode 100644 index 00000000..3eeeb999 --- /dev/null +++ b/app/Transformers/AddressTransformer.php @@ -0,0 +1,120 @@ + $address->id, + 'reference' => $address->reference, + 'street_one' => $address->street_one, + 'street_two' => $address->street_two, + 'district' => $address->district, + 'state' => $address->state, + 'postcode' => $address->postcode, + 'post_code' => $address->postcode, + 'post_code_area' => $this->getPostalCodeArea($address), + 'country' => $address->country, + 'default' => $address->default, + 'status' => $address->status, + 'type' => $address->type, + + ]; + } + + + /** + * Get Postal code Area + * @param Address $address + * @return string|null + */ + private function getPostalCodeArea(Address $address): ?string + { + $centerPostcodeConstantObject = SegmentConstant::where('reference', SegmentConstants::CENTER_POSTCODE)->get(); + $centerPostcodeConstant = $centerPostcodeConstantObject->isEmpty() ? [] : (array)$centerPostcodeConstantObject->first()->value; + return in_array($address->postcode, $centerPostcodeConstant) ? 'CENTER_POSTCODE' : null; + } + + /** + * Include Contact + * + * @param Address $address + * @return Item + */ + public function includeContact(Address $address): Item + { + $contact = $address->contacts(); + + return $this->item($contact->first(), new ContactTransformer()); + } + + /** + * Include in Remark + * @param Address $address + * @return Item + */ + public function includeRemark(Address $address): Item + { + $remarks = $address->remarks(); + return $this->item($remarks->first(), new RemarkTransformer()); + + } + + /** + * ?Owner Address info + * @param Address $address + * @return array + */ + public function includeOwner_address(Address $address): array + { + + return [ + 'owner' => $address->when($address->owner instanceof Order, [ + 'reference' => $address->owner->reference, + 'company_module' => $this->item($address->owner->companyModule, new RemarkTransformer()), + 'address' => $this->item($address->owner->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first(), new AddressTransformer()), + ]) + ]; + + } + + +} diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 40708419..504c2e23 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -52,6 +52,7 @@ class CompanyTransformer extends TransformerAbstract /** * Include Contact * + * @param Company $company * @return Item */ public function includeContact(Company $company): Item diff --git a/app/Transformers/RemarkTransformer.php b/app/Transformers/RemarkTransformer.php new file mode 100644 index 00000000..ae651005 --- /dev/null +++ b/app/Transformers/RemarkTransformer.php @@ -0,0 +1,58 @@ + $remark->id, + 'owner_id' => $remark->owner_id, + 'content' => $remark->content, + 'created_at' => $remark->created_at->format('d-m-Y H:i'), + 'long_ago' => $remark->created_at->diffForHumans() + ]; + } + + /** + * load commenter + * @param Remark $remark + * @return \League\Fractal\Resource\Item + */ + public function includeCommenter(Remark $remark): \League\Fractal\Resource\Item + { + $user = $remark->commenter(); + return $this->item($user, new UserTransformer()); + + } +}