new datamapper mostly implemented

This commit is contained in:
Dennis Eichhorn 2021-12-11 11:54:17 +01:00
parent e8f2c78bbb
commit 791ffd110b
7 changed files with 93 additions and 65 deletions

View File

@ -89,7 +89,7 @@ final class ApiController extends Controller
*/ */
public function apiNewsUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$old = clone NewsArticleMapper::get((int) $request->getData('id')); $old = clone NewsArticleMapper::get()->where('id', (int) $request->getData('id'))->execute();
$new = $this->updateNewsFromRequest($request); $new = $this->updateNewsFromRequest($request);
$this->updateModel($request->header->account, $old, $new, NewsArticleMapper::class, 'news', $request->getOrigin()); $this->updateModel($request->header->account, $old, $new, NewsArticleMapper::class, 'news', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully updated', $new); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully updated', $new);
@ -107,7 +107,7 @@ final class ApiController extends Controller
private function updateNewsFromRequest(RequestAbstract $request) : NewsArticle private function updateNewsFromRequest(RequestAbstract $request) : NewsArticle
{ {
/** @var NewsArticle $newsArticle */ /** @var NewsArticle $newsArticle */
$newsArticle = NewsArticleMapper::get((int) $request->getData('id')); $newsArticle = NewsArticleMapper::get()->where('id', (int) $request->getData('id'))->execute();
$newsArticle->publich = new \DateTime((string) ($request->getData('publish') ?? $newsArticle->publish->format('Y-m-d H:i:s'))); $newsArticle->publich = new \DateTime((string) ($request->getData('publish') ?? $newsArticle->publish->format('Y-m-d H:i:s')));
$newsArticle->title = (string) ($request->getData('title') ?? $newsArticle->title); $newsArticle->title = (string) ($request->getData('title') ?? $newsArticle->title);
$newsArticle->plain = $request->getData('plain') ?? $newsArticle->plain; $newsArticle->plain = $request->getData('plain') ?? $newsArticle->plain;
@ -234,7 +234,7 @@ final class ApiController extends Controller
*/ */
public function apiNewsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$news = NewsArticleMapper::get((int) $request->getData('id')); $news = NewsArticleMapper::get()->where('id', (int) $request->getData('id'))->execute();
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully returned', $news); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully returned', $news);
} }
@ -253,7 +253,7 @@ final class ApiController extends Controller
*/ */
public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$news = NewsArticleMapper::get((int) $request->getData('id')); $news = NewsArticleMapper::get()->with('media')->with('tags')->where('id', (int) $request->getData('id'))->execute();
$this->deleteModel($request->header->account, $news, NewsArticleMapper::class, 'news', $request->getOrigin()); $this->deleteModel($request->header->account, $news, NewsArticleMapper::class, 'news', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully deleted', $news); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully deleted', $news);
} }

View File

@ -24,6 +24,7 @@ use Modules\News\Models\NullNewsSeen;
use Modules\News\Models\PermissionState; use Modules\News\Models\PermissionState;
use phpOMS\Account\PermissionType; use phpOMS\Account\PermissionType;
use phpOMS\Contract\RenderableInterface; use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
@ -59,47 +60,48 @@ final class BackendController extends Controller implements DashboardElementInte
$view->setTemplate('/Modules/News/Theme/Backend/news-dashboard'); $view->setTemplate('/Modules/News/Theme/Backend/news-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
$mapperQuery = NewsArticleMapper::getAll()
->with('createdBy')
->with('tags')
->with('tags/title')
->where('status', NewsStatus::VISIBLE)
->where('publish', new \DateTime('now'), '<=')
->where('language', $response->getLanguage())
->where('tags/title/language', $response->getLanguage());
if ($request->getData('ptype') === 'p') { if ($request->getData('ptype') === 'p') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::with('language', $response->getLanguage()) $mapperQuery->where('id', (int) ($request->getData('id') ?? 0), '<')
::with('comments', models: null) ->limit(25)->execute()
::with('status', NewsStatus::VISIBLE, [NewsArticle::class])
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=')
::getBeforePivot((int) ($request->getData('id') ?? 0), null, 10)
); );
} elseif ($request->getData('ptype') === 'n') { } elseif ($request->getData('ptype') === 'n') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::with('language', $response->getLanguage()) $mapperQuery->where('id', (int) ($request->getData('id') ?? 0), '>')
::with('comments', models: null) ->limit(25)->execute()
::with('status', NewsStatus::VISIBLE, [NewsArticle::class])
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=')
::getAfterPivot((int) ($request->getData('id') ?? 0), null, 10)
); );
} else { } else {
$view->setData('news', $view->setData('news',
NewsArticleMapper::with('language', $response->getLanguage()) $mapperQuery->where('id', 0, '>')
::with('comments', models: null) ->limit(25)->execute()
::with('status', NewsStatus::VISIBLE, [NewsArticle::class])
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=')
::getAfterPivot(0, null, 10)
); );
} }
$seen = NewsSeenMapper::getFor($request->header->account, 'seenBy'); $seen = NewsSeenMapper::get()->where('seenBy', $request->header->account)->execute();
$view->setData('seen', $seen->seenAt); $view->setData('seen', $seen->seenAt);
// @async // @async
// @todo: Seen needs field which defines which news article is seen!!!!
if ($seen instanceof NullNewsSeen) { if ($seen instanceof NullNewsSeen) {
$seen = new NewsSeen(); $seen = new NewsSeen();
$seen->seenBy = (int) $request->header->account; $seen->seenBy = (int) $request->header->account;
$seen->seenAt = new \DateTime('now'); $seen->seenAt = new \DateTime('now');
NewsSeenMapper::create($seen); NewsSeenMapper::create()->execute($seen);
} else { } else {
$newSeen = clone $seen; $newSeen = clone $seen;
$newSeen->seenAt = new \DateTime('now'); $newSeen->seenAt = new \DateTime('now');
NewsSeenMapper::update($newSeen); NewsSeenMapper::update()->execute($newSeen);
} }
return $view; return $view;
@ -114,9 +116,15 @@ final class BackendController extends Controller implements DashboardElementInte
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/News/Theme/Backend/dashboard-news'); $view->setTemplate('/Modules/News/Theme/Backend/dashboard-news');
$news = NewsArticleMapper::with('language', $response->getLanguage()) $news = NewsArticleMapper::getAll()
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=') ->with('createdBy')
::getNewest(5); ->with('tags')
->with('tags/title')
->where('status', NewsStatus::VISIBLE)
->where('publish', new \DateTime('now'), '<=')
->where('language', $response->getLanguage())
->where('tags/title/language', $response->getLanguage())
->limit(5)->sort('publish', OrderType::DESC)->execute();
$view->addData('news', $news); $view->addData('news', $news);
@ -139,8 +147,20 @@ final class BackendController extends Controller implements DashboardElementInte
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$article = NewsArticleMapper::with('language', $response->getLanguage()) $article = NewsArticleMapper::get()
::get((int) $request->getData('id')); ->with('createdBy')
->with('comments')
->with('comments/comments')
->with('comments/comments/createdBy')
->with('comments/comments/media')
->with('tags')
->with('tags/title')
->where('status', NewsStatus::VISIBLE)
->where('publish', new \DateTime('now'), '<=')
->where('language', $response->getLanguage())
->where('tags/title/language', $response->getLanguage())
->where('id', (int) $request->getData('id'))
->execute();
$accountId = $request->header->account; $accountId = $request->header->account;
@ -193,22 +213,30 @@ final class BackendController extends Controller implements DashboardElementInte
$view->setTemplate('/Modules/News/Theme/Backend/news-archive'); $view->setTemplate('/Modules/News/Theme/Backend/news-archive');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
$mapperQuery = NewsArticleMapper::getAll()
->with('createdBy')
->with('tags')
->with('tags/title')
->where('status', NewsStatus::VISIBLE)
->where('publish', new \DateTime('now'), '<=')
->where('language', $response->getLanguage())
->where('tags/title/language', $response->getLanguage());
if ($request->getData('ptype') === 'p') { if ($request->getData('ptype') === 'p') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::with('status', NewsStatus::VISIBLE, [NewsArticle::class]) $mapperQuery->where('id', (int) ($request->getData('id') ?? 0), '<')
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=') ->limit(25)->execute()
::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
); );
} elseif ($request->getData('ptype') === 'n') { } elseif ($request->getData('ptype') === 'n') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::with('status', NewsStatus::VISIBLE, [NewsArticle::class]) $mapperQuery->where('id', (int) ($request->getData('id') ?? 0), '>')
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=') ->limit(25)->execute()
::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25)
); );
} else { } else {
$view->setData('news', NewsArticleMapper::with('status', NewsStatus::VISIBLE, [NewsArticle::class]) $view->setData('news',
::with('publish', new \DateTime('now'), [NewsArticle::class], '<=') $mapperQuery->where('id', 0, '>')
::getAfterPivot(0, null, 25)); ->limit(25)->execute()
);
} }
return $view; return $view;
@ -235,14 +263,14 @@ final class BackendController extends Controller implements DashboardElementInte
if ($request->getData('ptype') === 'p') { if ($request->getData('ptype') === 'p') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25) NewsArticleMapper::getAll()->where('id', (int) ($request->getData('id') ?? 0), '<')->limit(25)->execute()
); );
} elseif ($request->getData('ptype') === 'n') { } elseif ($request->getData('ptype') === 'n') {
$view->setData('news', $view->setData('news',
NewsArticleMapper::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25) NewsArticleMapper::getAll()->where('id', (int) ($request->getData('id') ?? 0), '>')->limit(25)->execute()
); );
} else { } else {
$view->setData('news', NewsArticleMapper::getAfterPivot(0, null, 25)); $view->setData('news', NewsArticleMapper::getAll()->where('id', 0, '>')->limit(25)->execute());
} }
return $view; return $view;
@ -307,7 +335,7 @@ final class BackendController extends Controller implements DashboardElementInte
$tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response); $tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response);
$view->addData('tagSelector', $tagSelector); $view->addData('tagSelector', $tagSelector);
$view->addData('news', NewsArticleMapper::get((int) ($request->getData('id') ?? 0))); $view->addData('news', NewsArticleMapper::get()->where('id', (int) ($request->getData('id') ?? 0))->execute());
return $view; return $view;
} }

View File

@ -18,7 +18,7 @@ use Modules\Admin\Models\AccountMapper;
use Modules\Comments\Models\CommentListMapper; use Modules\Comments\Models\CommentListMapper;
use Modules\Media\Models\MediaMapper; use Modules\Media\Models\MediaMapper;
use Modules\Tag\Models\TagMapper; use Modules\Tag\Models\TagMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/** /**
* News mapper class. * News mapper class.
@ -28,7 +28,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org * @link https://orange-management.org
* @since 1.0.0 * @since 1.0.0
*/ */
final class NewsArticleMapper extends DataMapperAbstract final class NewsArticleMapper extends DataMapperFactory
{ {
/** /**
* Columns. * Columns.
@ -36,7 +36,7 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}> * @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static array $columns = [ public const COLUMNS = [
'news_id' => ['name' => 'news_id', 'type' => 'int', 'internal' => 'id'], 'news_id' => ['name' => 'news_id', 'type' => 'int', 'internal' => 'id'],
'news_publish' => ['name' => 'news_publish', 'type' => 'DateTime', 'internal' => 'publish'], 'news_publish' => ['name' => 'news_publish', 'type' => 'DateTime', 'internal' => 'publish'],
'news_title' => ['name' => 'news_title', 'type' => 'string', 'internal' => 'title'], 'news_title' => ['name' => 'news_title', 'type' => 'string', 'internal' => 'title'],
@ -57,7 +57,7 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}> * @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static array $ownsOne = [ public const OWNS_ONE = [
'comments' => [ 'comments' => [
'mapper' => CommentListMapper::class, 'mapper' => CommentListMapper::class,
'external' => 'news_comment_list', 'external' => 'news_comment_list',
@ -70,7 +70,7 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string}> * @var array<string, array{mapper:string, external:string}>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static array $belongsTo = [ public const BELONGS_TO = [
'createdBy' => [ 'createdBy' => [
'mapper' => AccountMapper::class, 'mapper' => AccountMapper::class,
'external' => 'news_created_by', 'external' => 'news_created_by',
@ -83,7 +83,7 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}> * @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static array $hasMany = [ public const HAS_MANY = [
'tags' => [ 'tags' => [
'mapper' => TagMapper::class, 'mapper' => TagMapper::class,
'table' => 'news_tag', 'table' => 'news_tag',
@ -104,7 +104,7 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
protected static string $table = 'news'; public const TABLE = 'news';
/** /**
* Primary field name. * Primary field name.
@ -112,5 +112,5 @@ final class NewsArticleMapper extends DataMapperAbstract
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
protected static string $primaryField = 'news_id'; public const PRIMARYFIELD ='news_id';
} }

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\News\Models; namespace Modules\News\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/** /**
* News mapper class. * News mapper class.
@ -29,7 +29,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* I think the default getAll etc. is too complicated and has too many joins which are not really required. * I think the default getAll etc. is too complicated and has too many joins which are not really required.
* Check and fix! * Check and fix!
*/ */
final class NewsSeenMapper extends DataMapperAbstract final class NewsSeenMapper extends DataMapperFactory
{ {
/** /**
* Columns. * Columns.
@ -37,7 +37,7 @@ final class NewsSeenMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}> * @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static array $columns = [ public const COLUMNS = [
'news_seen_id' => ['name' => 'news_seen_id', 'type' => 'int', 'internal' => 'id'], 'news_seen_id' => ['name' => 'news_seen_id', 'type' => 'int', 'internal' => 'id'],
'news_seen_at' => ['name' => 'news_seen_at', 'type' => 'DateTime', 'internal' => 'seenAt'], 'news_seen_at' => ['name' => 'news_seen_at', 'type' => 'DateTime', 'internal' => 'seenAt'],
'news_seen_by' => ['name' => 'news_seen_by', 'type' => 'int', 'internal' => 'seenBy'], 'news_seen_by' => ['name' => 'news_seen_by', 'type' => 'int', 'internal' => 'seenBy'],
@ -49,7 +49,7 @@ final class NewsSeenMapper extends DataMapperAbstract
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
protected static string $table = 'news_seen'; public const TABLE = 'news_seen';
/** /**
* Primary field name. * Primary field name.
@ -57,5 +57,5 @@ final class NewsSeenMapper extends DataMapperAbstract
* @var string * @var string
* @since 1.0.0 * @since 1.0.0
*/ */
protected static string $primaryField = 'news_seen_id'; public const PRIMARYFIELD ='news_seen_id';
} }

View File

@ -12,7 +12,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/Autoloader.php'; require_once __DIR__ . '/Autoloader.php';
use phpOMS\DataStorage\Database\DatabasePool; use phpOMS\DataStorage\Database\DatabasePool;
use phpOMS\DataStorage\Database\DataMapperAbstract; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\DataStorage\Session\HttpSession; use phpOMS\DataStorage\Session\HttpSession;
$CONFIG = [ $CONFIG = [
@ -329,7 +329,7 @@ $GLOBALS['dbpool']->create('delete', $CONFIG['db']['core']['masters']['delete'])
$GLOBALS['dbpool']->create('insert', $CONFIG['db']['core']['masters']['insert']); $GLOBALS['dbpool']->create('insert', $CONFIG['db']['core']['masters']['insert']);
$GLOBALS['dbpool']->create('schema', $CONFIG['db']['core']['masters']['schema']); $GLOBALS['dbpool']->create('schema', $CONFIG['db']['core']['masters']['schema']);
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get()); DataMapperFactory::db($GLOBALS['dbpool']->get());
$GLOBALS['frameworkpath'] = '/phpOMS/'; $GLOBALS['frameworkpath'] = '/phpOMS/';

View File

@ -138,6 +138,6 @@ trait ApiControllerNewsArticleTrait
$this->module->apiNewsDelete($request, $response); $this->module->apiNewsDelete($request, $response);
self::assertEquals(1, $response->get('')['response']->getId()); self::assertEquals(1, $response->get('')['response']->getId());
self::assertInstanceOf(NullNewsArticle::class, NewsArticleMapper::get(1)); self::assertInstanceOf(NullNewsArticle::class, NewsArticleMapper::get()->where('id', 1)->execute());
} }
} }

View File

@ -49,11 +49,11 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::HEADLINE); $news->setType(NewsType::HEADLINE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
self::assertGreaterThan(0, $news->getId()); self::assertGreaterThan(0, $news->getId());
self::assertEquals($id, $news->getId()); self::assertEquals($id, $news->getId());
$newsR = NewsArticleMapper::get($news->getId()); $newsR = NewsArticleMapper::get()->where('id', $news->getId())->execute();
self::assertEquals($news->createdAt->format('Y-m-d'), $newsR->createdAt->format('Y-m-d')); self::assertEquals($news->createdAt->format('Y-m-d'), $newsR->createdAt->format('Y-m-d'));
self::assertEquals($news->createdBy->getId(), $newsR->createdBy->getId()); self::assertEquals($news->createdBy->getId(), $newsR->createdBy->getId());
self::assertEquals($news->content, $newsR->content); self::assertEquals($news->content, $newsR->content);
@ -87,7 +87,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::HEADLINE); $news->setType(NewsType::HEADLINE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
$news = new NewsArticle(); $news = new NewsArticle();
$news->createdBy = new NullAccount(1); $news->createdBy = new NullAccount(1);
@ -99,7 +99,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::DRAFT); $news->setStatus(NewsStatus::DRAFT);
$news->setType(NewsType::HEADLINE); $news->setType(NewsType::HEADLINE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
// Created by me // Created by me
@ -113,7 +113,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::ARTICLE); $news->setType(NewsType::ARTICLE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
$news = new NewsArticle(); $news = new NewsArticle();
$news->createdBy = new NullAccount(1); $news->createdBy = new NullAccount(1);
@ -125,7 +125,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::LINK); $news->setType(NewsType::LINK);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
$news = new NewsArticle(); $news = new NewsArticle();
$news->createdBy = new NullAccount(1); $news->createdBy = new NullAccount(1);
@ -137,7 +137,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::DRAFT); $news->setStatus(NewsStatus::DRAFT);
$news->setType(NewsType::ARTICLE); $news->setType(NewsType::ARTICLE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
// Language // Language
@ -151,7 +151,7 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::ARTICLE); $news->setType(NewsType::ARTICLE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
// Publish // Publish
@ -168,6 +168,6 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setStatus(NewsStatus::VISIBLE); $news->setStatus(NewsStatus::VISIBLE);
$news->setType(NewsType::ARTICLE); $news->setType(NewsType::ARTICLE);
$id = NewsArticleMapper::create($news); $id = NewsArticleMapper::create()->execute($news);
} }
} }