mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-14 15:48:40 +00:00
new datamapper mostly implemented
This commit is contained in:
parent
e8f2c78bbb
commit
791ffd110b
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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/';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user