'Created District', 'message' => 'You have successfully created a new District' ]; } /** @var FetchesState */ private $fetchesState; /** @var CreatesDistrict */ private $createsDistrict; /** * CreateDistrictLogic constructor. * @param FetchesState $fetchesState * @param CreatesDistrict $createsDistrict */ public function __construct(FetchesState $fetchesState, CreatesDistrict $createsDistrict) { $this->fetchesState = $fetchesState; $this->createsDistrict = $createsDistrict; } /** * @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 { $state = $this->fetchesState->execute(['id' => $request->input('state_id')]); $district_object = new DistrictObject($request->input('name'), $state->country_id, $state->id, $request->input('post_codes'), ApprovalStatus::PENDING_VERIFICATION); $query = $this->createsDistrict->execute($district_object); return $this->resourceResponse(new DistrictResource($query)); } }