createProfilesFromRequest($request); $created = []; foreach ($profiles as $profile) { $this->app->eventManager->trigger('PRE:Module:Admin-profile-create', '', $profile); ProfileMapper::create($profile); $this->app->eventManager->trigger('POST:Module:Admin-profile-create', '', $profile); $created[] = $profile->jsonSerialize(); } $response->set($request->getUri()->__toString(), [ 'status' => NotificationLevel::OK, 'title' => 'Profile(s)', 'message' => 'Profile(s) successfully created.', 'response' => $created ]); } /** * Method to create profile from request. * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function createProfilesFromRequest(RequestAbstract $request) : array { $profiles = []; $accounts = $request->getDataList('iaccount-idlist'); foreach ($accounts as $account) { $account = (int) \trim($account); $isInDb = ProfileMapper::getFor($account, 'account'); if ($isInDb->getId() !== 0) { $profiles[] = $isInDb; continue; } $profiles[] = new Profile(AccountMapper::get($account)); } return $profiles; } }