diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 926c267..d7a4849 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -56,43 +56,18 @@ final class ApiController extends Controller { $profiles = $this->createProfilesFromRequest($request); $created = []; - $status = true; foreach ($profiles as $profile) { - $status = $status && $this->apiProfileCreateDbEntry($profile, $request); + if ($profile->id === 0) { + $this->createModel($request->header->account, $profile, ProfileMapper::class, 'profile', $request->getOrigin()); + } $created[] = $profile; } - if (!$status) { - $response->header->status = RequestStatusCode::R_400; - $this->createInvalidCreateResponse($request, $response, $created); - - return; - } - $this->createStandardCreateResponse($request, $response, $created); } - /** - * @param Profile $profile Profile to create in the database - * @param RequestAbstract $request Request - * - * @return bool - * - * @since 1.0.0 - */ - public function apiProfileCreateDbEntry(Profile $profile, RequestAbstract $request) : bool - { - if ($profile->id !== 0) { - return false; - } - - $this->createModel($request->header->account, $profile, ProfileMapper::class, 'profile', $request->getOrigin()); - - return true; - } - /** * Routing end-point for application behaviour. * @@ -138,7 +113,7 @@ final class ApiController extends Controller $accounts = $request->getDataList('iaccount-idlist'); foreach ($accounts as $account) { - $account = (int) \trim($account); + $account = (int) $account; /** @var Profile $isInDb */ $isInDb = ProfileMapper::get()->where('account', $account)->execute(); diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index cbfefd2..c3c6e87 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -16,7 +16,6 @@ namespace Modules\Profile\tests\Controller; use Model\CoreSettings; use Modules\Admin\Models\AccountPermission; -use Modules\Profile\Models\ContactType; use Modules\Profile\Models\Profile; use Modules\Profile\Models\ProfileMapper; use phpOMS\Account\Account; @@ -100,34 +99,19 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase */ public function testApiProfileCreate() : void { + \Modules\Admin\tests\Helper::createAccounts(1); + $response = new HttpResponse(); $request = new HttpRequest(new HttpUri('')); $request->header->account = 1; - $request->setData('iaccount-idlist', '1'); + $request->setData('iaccount-idlist', '2'); $this->module->apiProfileCreate($request, $response); self::assertGreaterThan(0, $response->get('')['response'][0]->id); } - /** - * @covers Modules\Profile\Controller\ApiController - * @group module - */ - public function testApiProfileCreateDbEntry() : void - { - $request = new HttpRequest(new HttpUri('')); - - $request->header->account = 1; - - $profile = new Profile(new \Modules\Admin\Models\Account()); - $profile->account->login = 'ProfileCreateDb'; - $profile->account->setEmail('profile_create_db@email.com'); - - self::assertTrue($this->module->apiProfileCreateDbEntry($profile, $request)); - } - /** * @covers Modules\Profile\Controller\ApiController * @group module