validateSupplierCreate($request))) { $response->set('supplier_create', new FormValidation($val)); $response->getHeader()->setStatusCode(RequestStatusCode::R_400); return; } $supplier = $this->createSupplierFromRequest($request); $this->createModel($request->getHeader()->getAccount(), $supplier, SupplierMapper::class, 'supplier', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Supplier', 'Supplier successfully created', $supplier); } /** * Method to create news article from request. * * @param RequestAbstract $request Request * * @return Supplier * * @since 1.0.0 */ private function createSupplierFromRequest(RequestAbstract $request) : Supplier { $account = new Account(); $account->setName1($request->getData('name1') ?? ''); $account->setName2($request->getData('name2') ?? ''); $profile = new Profile($account); $supplier = new Supplier(); $supplier->setNumber($request->getData('number') ?? ''); $supplier->setProfile($profile); $addr = new Address(); $addr->setAddress($request->getData('address') ?? ''); $addr->setPostal($request->getData('postal') ?? ''); $addr->setCity($request->getData('city') ?? ''); $addr->setCountry($request->getData('country') ?? ''); $addr->setState($request->getData('state') ?? ''); $supplier->setMainAddress($addr); return $supplier; } /** * Validate news create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateSupplierCreate(RequestAbstract $request) : array { $val = []; if (($val['number'] = empty($request->getData('number'))) || ($val['name1'] = empty($request->getData('name1'))) ) { return $val; } return []; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiContactElementCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { $profileModule = $this->app->moduleManager->get('Profile'); if (!empty($val = $profileModule->validateContactElementCreate($request))) { $response->set('contact_element_create', new FormValidation($val)); $response->getHeader()->setStatusCode(RequestStatusCode::R_400); return; } $contactElement = $profileModule->createContactElementFromRequest($request); $this->createModel($request->getHeader()->getAccount(), $contactElement, ContactElementMapper::class, 'supplier-contactElement', $request->getOrigin()); $this->createModelRelation( $request->getHeader()->getAccount(), (int) $request->getData('supplier'), $contactElement->getId(), SupplierMapper::class, 'contactElements', '', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Contact Element', 'Contact element successfully created', $contactElement); } }