diff --git a/Admin/Installer.php b/Admin/Installer.php index 261253e..8f3d0f1 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -52,12 +52,12 @@ final class Installer extends InstallerAbstract $app = new WikiApp(); $app->name = 'Default'; - $id = WikiAppMapper::create($app); + $id = WikiAppMapper::create()->execute($app); $category = new WikiCategory(); $category->app = new NullWikiApp($id); $category->setL11n('Default'); - WikiCategoryMapper::create($category); + WikiCategoryMapper::create()->execute($category); } } diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 0dd86ab..2738ac7 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -27,6 +27,7 @@ use Modules\Knowledgebase\Models\WikiDocMapper; use Modules\Knowledgebase\Models\WikiStatus; use Modules\Media\Models\NullMedia; use Modules\Tag\Models\NullTag; +use phpOMS\Localization\ISO639x1Enum; use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\NotificationLevel; @@ -245,7 +246,7 @@ final class ApiController extends Controller */ public function apiWikiDocGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $doc = WikiDocMapper::get((int) $request->getData('id')); + $doc = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully returned', $doc); } @@ -264,7 +265,7 @@ final class ApiController extends Controller */ public function apiWikiDocUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $old = clone WikiDocMapper::get((int) $request->getData('id')); + $old = clone WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute(); $new = $this->updateDocFromRequest($request); $this->updateModel($request->header->account, $old, $new, WikiDocMapper::class, 'doc', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully updated', $new); @@ -281,7 +282,7 @@ final class ApiController extends Controller */ private function updateDocFromRequest(RequestAbstract $request) : WikiDoc { - $doc = WikiDocMapper::get((int) $request->getData('id')); + $doc = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute(); $doc->name = (string) ($request->getData('title') ?? $doc->name); return $doc; @@ -302,7 +303,7 @@ final class ApiController extends Controller */ public function apiWikiDocDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $doc = WikiDocMapper::get((int) $request->getData('id')); + $doc = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModel($request->header->account, $doc, WikiDocMapper::class, 'doc', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully deleted', $doc); } @@ -391,7 +392,12 @@ final class ApiController extends Controller */ public function apiWikiCategoryGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $category = WikiCategoryMapper::get((int) $request->getData('id')); + $category = WikiCategoryMapper::get() + ->with('name') + ->where('id', (int) $request->getData('id')) + ->where('name/language', ISO639x1Enum::_EN) + ->execute(); + $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully returned', $category); } @@ -410,7 +416,7 @@ final class ApiController extends Controller */ public function apiWikiCategoryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $old = clone WikiCategoryMapper::get((int) $request->getData('id')); + $old = clone WikiCategoryMapper::get()->where('id', (int) $request->getData('id'))->execute(); $new = $this->updateCategoryFromRequest($request); $this->updateModel($request->header->account, $old, $new, WikiCategoryMapper::class, 'category', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully updated', $new); @@ -427,7 +433,7 @@ final class ApiController extends Controller */ private function updateCategoryFromRequest(RequestAbstract $request) : WikiCategory { - $category = WikiCategoryMapper::get((int) $request->getData('id')); + $category = WikiCategoryMapper::get()->where('id', (int) $request->getData('id'))->execute(); $category->setL11n($request->getData('name') ?? $category->getL11n(), $request->getData('language') ?? $request->getLanguage()); return $category; @@ -448,7 +454,7 @@ final class ApiController extends Controller */ public function apiWikiCategoryDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $category = WikiCategoryMapper::get((int) $request->getData('id')); + $category = WikiCategoryMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModel($request->header->account, $category, WikiCategoryMapper::class, 'category', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully deleted', $category); } @@ -531,7 +537,7 @@ final class ApiController extends Controller */ public function apiWikiAppGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $app = WikiAppMapper::get((int) $request->getData('id')); + $app = WikiAppMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully returned', $app); } @@ -550,7 +556,7 @@ final class ApiController extends Controller */ public function apiWikiAppUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $old = clone WikiAppMapper::get((int) $request->getData('id')); + $old = clone WikiAppMapper::get()->where('id', (int) $request->getData('id'))->execute(); $new = $this->updateAppFromRequest($request); $this->updateModel($request->header->account, $old, $new, WikiAppMapper::class, 'app', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully updated', $new); @@ -567,7 +573,7 @@ final class ApiController extends Controller */ private function updateAppFromRequest(RequestAbstract $request) : WikiApp { - $app = WikiAppMapper::get((int) $request->getData('id')); + $app = WikiAppMapper::get()->where('id', (int) $request->getData('id'))->execute(); $app->name = (string) ($request->getData('name') ?? $app->name); return $app; @@ -588,7 +594,7 @@ final class ApiController extends Controller */ public function apiWikiAppDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $app = WikiAppMapper::get((int) $request->getData('id')); + $app = WikiAppMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModel($request->header->account, $app, WikiAppMapper::class, 'app', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully deleted', $app); } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 8803403..a597e8d 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -24,6 +24,7 @@ use Modules\Knowledgebase\Models\WikiDocMapper; use phpOMS\Account\PermissionType; use phpOMS\Asset\AssetType; use phpOMS\Contract\RenderableInterface; +use phpOMS\DataStorage\Database\Query\OrderType; use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; @@ -79,13 +80,13 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $categories = WikiCategoryMapper::with('language', $response->getLanguage())::getByParentAndApp($request->hasData('category') ? (int) $request->getData('category') : null, $app, 2); + $categories = WikiCategoryMapper::getByParentAndApp($request->hasData('category') ? (int) $request->getData('category') : null, $app)->where('name/language', $response->getLanguage())->execute(); $view->setData('categories', $categories); - $documents = WikiDocMapper::with('language', $response->getLanguage())::getNewestByApp($app, 10); + $documents = WikiDocMapper::getAll()->where('app', $app)->where('language', $response->getLanguage())->limit(25)->sort('createdAt', OrderType::DESC)->execute(); $view->setData('docs', $documents); - $apps = WikiAppMapper::getAll(); + $apps = WikiAppMapper::getAll()->execute(); $view->setData('apps', $apps); return $view; @@ -110,7 +111,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-app-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $list = WikiAppMapper::getAll(); + $list = WikiAppMapper::getAll()->execute(); $view->setData('apps', $list); return $view; @@ -135,7 +136,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-app-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $app = WikiAppMapper::get((int) $request->getData('id')); + $app = WikiAppMapper::get()->where('id', (int) $request->getData('id'))->execute(); $view->setData('app', $app); return $view; @@ -185,7 +186,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $list = WikiCategoryMapper::with('language', $response->getLanguage())::getByApp($app, 2); + $list = WikiCategoryMapper::getByApp($app)->where('name/language', $response->getLanguage())->execute(); $view->setData('categories', $list); return $view; @@ -210,7 +211,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $category = WikiCategoryMapper::get((int) $request->getData('id')); + $category = WikiCategoryMapper::get()->where('id', (int) $request->getData('id'))->execute(); $view->setData('category', $category); return $view; @@ -258,7 +259,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $list = WikiDocMapper::getAll(); + $list = WikiDocMapper::getAll()->limit(25)->execute(); $view->setData('docs', $list); return $view; @@ -283,7 +284,7 @@ final class BackendController extends Controller $app = (int) ($request->getData('app') ?? $this->app->orgId); $lang = $response->getLanguage(); - $document = WikiDocMapper::with('language', $lang)::get((int) $request->getData('id')); + $document = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->where('language', $request->getLanguage())->execute(); $accountId = $request->header->account; if (!$this->app->accountManager->get($accountId)->hasPermission( @@ -297,7 +298,7 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $categories = WikiCategoryMapper::with('language', $lang)::getByParentAndApp($request->hasData('category') ? (int) $request->getData('category') : null, $app, 2); + $categories = WikiCategoryMapper::getByParentAndApp($request->hasData('category') ? (int) $request->getData('category') : null, $app)->where('name/language', $response->getLanguage())->execute();; $view->setData('categories', $categories); $view->setData('document', $document); $view->addData('editable', $this->app->accountManager->get($accountId)->hasPermission( @@ -365,7 +366,7 @@ final class BackendController extends Controller $tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('tagSelector', $tagSelector); - $view->addData('doc', WikiDocMapper::get((int) ($request->getData('id') ?? 0))); + $view->addData('doc', WikiDocMapper::get()->where('id', (int) ($request->getData('id') ?? 0))->execute()); return $view; } diff --git a/Models/WikiAppMapper.php b/Models/WikiAppMapper.php index 0184c21..e718075 100755 --- a/Models/WikiAppMapper.php +++ b/Models/WikiAppMapper.php @@ -14,7 +14,7 @@ declare(strict_types=1); namespace Modules\Knowledgebase\Models; -use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** * Mapper class. @@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract; * @link https://orange-management.org * @since 1.0.0 */ -final class WikiAppMapper extends DataMapperAbstract +final class WikiAppMapper extends DataMapperFactory { /** * Columns. @@ -32,7 +32,7 @@ final class WikiAppMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $columns = [ + public const COLUMNS = [ 'wiki_app_id' => ['name' => 'wiki_app_id', 'type' => 'int', 'internal' => 'id'], 'wiki_app_name' => ['name' => 'wiki_app_name', 'type' => 'string', 'internal' => 'name'], ]; @@ -43,7 +43,7 @@ final class WikiAppMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $table = 'wiki_app'; + public const TABLE = 'wiki_app'; /** * Primary field name. @@ -51,5 +51,5 @@ final class WikiAppMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $primaryField = 'wiki_app_id'; + public const PRIMARYFIELD ='wiki_app_id'; } diff --git a/Models/WikiCategoryL11nMapper.php b/Models/WikiCategoryL11nMapper.php index b578a53..97023a4 100755 --- a/Models/WikiCategoryL11nMapper.php +++ b/Models/WikiCategoryL11nMapper.php @@ -14,7 +14,7 @@ declare(strict_types=1); namespace Modules\Knowledgebase\Models; -use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** * Category mapper class. @@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract; * @link https://orange-management.org * @since 1.0.0 */ -final class WikiCategoryL11nMapper extends DataMapperAbstract +final class WikiCategoryL11nMapper extends DataMapperFactory { /** * Columns. @@ -32,7 +32,7 @@ final class WikiCategoryL11nMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $columns = [ + public const COLUMNS = [ 'wiki_category_l11n_id' => ['name' => 'wiki_category_l11n_id', 'type' => 'int', 'internal' => 'id'], 'wiki_category_l11n_name' => ['name' => 'wiki_category_l11n_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true], 'wiki_category_l11n_category' => ['name' => 'wiki_category_l11n_category', 'type' => 'int', 'internal' => 'category'], @@ -45,7 +45,7 @@ final class WikiCategoryL11nMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $table = 'wiki_category_l11n'; + public const TABLE = 'wiki_category_l11n'; /** * Primary field name. @@ -53,5 +53,5 @@ final class WikiCategoryL11nMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $primaryField = 'wiki_category_l11n_id'; + public const PRIMARYFIELD ='wiki_category_l11n_id'; } diff --git a/Models/WikiCategoryMapper.php b/Models/WikiCategoryMapper.php index 75d1d69..c19ac29 100755 --- a/Models/WikiCategoryMapper.php +++ b/Models/WikiCategoryMapper.php @@ -14,8 +14,8 @@ declare(strict_types=1); namespace Modules\Knowledgebase\Models; -use phpOMS\DataStorage\Database\DataMapperAbstract; -use phpOMS\DataStorage\Database\RelationType; +use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; +use phpOMS\DataStorage\Database\Mapper\ReadMapper; /** * Mapper class. @@ -25,7 +25,7 @@ use phpOMS\DataStorage\Database\RelationType; * @link https://orange-management.org * @since 1.0.0 */ -final class WikiCategoryMapper extends DataMapperAbstract +final class WikiCategoryMapper extends DataMapperFactory { /** * Columns. @@ -33,7 +33,7 @@ final class WikiCategoryMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $columns = [ + public const COLUMNS = [ 'wiki_category_id' => ['name' => 'wiki_category_id', 'type' => 'int', 'internal' => 'id'], 'wiki_category_app' => ['name' => 'wiki_category_app', 'type' => 'int', 'internal' => 'app'], 'wiki_category_virtual' => ['name' => 'wiki_category_virtual', 'type' => 'string', 'internal' => 'virtualPath'], @@ -46,13 +46,12 @@ final class WikiCategoryMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $hasMany = [ + public const HAS_MANY = [ 'name' => [ 'mapper' => WikiCategoryL11nMapper::class, 'table' => 'wiki_category_l11n', 'self' => 'wiki_category_l11n_category', 'column' => 'name', - 'conditional' => true, 'external' => null, ], ]; @@ -63,7 +62,7 @@ final class WikiCategoryMapper extends DataMapperAbstract * @var array> * @since 1.0.0 */ - protected static array $belongsTo = [ + public const BELONGS_TO = [ 'parent' => [ 'mapper' => self::class, 'external' => 'wiki_category_parent', @@ -80,7 +79,7 @@ final class WikiCategoryMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $table = 'wiki_category'; + public const TABLE = 'wiki_category'; /** * Primary field name. @@ -88,7 +87,7 @@ final class WikiCategoryMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $primaryField = 'wiki_category_id'; + public const PRIMARYFIELD ='wiki_category_id'; /** * Parent field name. @@ -103,36 +102,16 @@ final class WikiCategoryMapper extends DataMapperAbstract * * @param null|int $value Parent value id * @param int $app App - * @param int $depth Relation depth * - * @return array + * @return ReadMapper * * @since 1.0.0 */ - public static function getByParentAndApp(int $value = null, int $app = 1, int $depth = 3) : array + public static function getByParentAndApp(int $value = null, int $app = 1) : ReadMapper { - $query = self::getQuery(); - $query->where(static::$table . '_d' . $depth . '.' . static::$parent, '=', $value) - ->andWhere(static::$table . '_d' . $depth . '.wiki_category_app', '=', $app); - - return self::getAllByQuery($query, RelationType::ALL, $depth); - } - - /** - * Get by app. - * - * @param int $app App - * @param int $depth Relation depth - * - * @return array - * - * @since 1.0.0 - */ - public static function getByApp(int $app, int $depth = 3) : array - { - $query = self::getQuery(); - $query->where(static::$table . '_d' . $depth . '.wiki_category_app', '=', $app); - - return self::getAllByQuery($query, RelationType::ALL, $depth); + return self::getAll() + ->with('name') + ->where('parent', $value) + ->where('app', $app); } } diff --git a/Models/WikiDocMapper.php b/Models/WikiDocMapper.php index 119df7f..d013db8 100755 --- a/Models/WikiDocMapper.php +++ b/Models/WikiDocMapper.php @@ -16,9 +16,8 @@ namespace Modules\Knowledgebase\Models; use Modules\Media\Models\MediaMapper; use Modules\Tag\Models\TagMapper; -use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\DataStorage\Database\Query\Builder; -use phpOMS\DataStorage\Database\RelationType; /** * Mapper class. @@ -28,7 +27,7 @@ use phpOMS\DataStorage\Database\RelationType; * @link https://orange-management.org * @since 1.0.0 */ -final class WikiDocMapper extends DataMapperAbstract +final class WikiDocMapper extends DataMapperFactory { /** * Columns. @@ -36,7 +35,7 @@ final class WikiDocMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $columns = [ + public const COLUMNS = [ 'wiki_article_id' => ['name' => 'wiki_article_id', 'type' => 'int', 'internal' => 'id'], 'wiki_article_app' => ['name' => 'wiki_article_app', 'type' => 'int', 'internal' => 'app'], 'wiki_article_title' => ['name' => 'wiki_article_title', 'type' => 'string', 'internal' => 'name'], @@ -53,7 +52,7 @@ final class WikiDocMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static array $hasMany = [ + public const HAS_MANY = [ 'tags' => [ 'mapper' => TagMapper::class, 'table' => 'wiki_tag', @@ -74,7 +73,7 @@ final class WikiDocMapper extends DataMapperAbstract * @var array> * @since 1.0.0 */ - protected static array $belongsTo = [ + public const BELONGS_TO = [ 'category' => [ 'mapper' => WikiCategoryMapper::class, 'external' => 'wiki_article_category', @@ -91,7 +90,7 @@ final class WikiDocMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $table = 'wiki_article'; + public const TABLE = 'wiki_article'; /** * Primary field name. @@ -99,36 +98,5 @@ final class WikiDocMapper extends DataMapperAbstract * @var string * @since 1.0.0 */ - protected static string $primaryField = 'wiki_article_id'; - - /** - * Get newest. - * - * This will fall back to the insert id if no datetime column is present. - * - * @param int $app App - * @param int $limit Newest limit - * @param Builder $query Pre-defined query - * @param int $relations Load relations - * @param int $depth Relation depth - * - * @return array - * - * @since 1.0.0 - */ - public static function getNewestByApp(int $app, int $limit = 1, Builder $query = null, int $relations = RelationType::ALL, int $depth = 3) : array - { - $query ??= self::getQuery(null, [], $relations, $depth); - - $query->where(static::$table . '_d' . $depth . '.wiki_article_app', '=', $app) - ->limit($limit); - - if (!empty(static::$createdAt)) { - $query->orderBy(static::$table . '_d' . $depth . '.' . static::$columns[static::$createdAt]['name'], 'DESC'); - } else { - $query->orderBy(static::$table . '_d' . $depth . '.' . static::$columns[static::$primaryField]['name'], 'DESC'); - } - - return self::getAllByQuery($query, $relations, $depth); - } + public const PRIMARYFIELD ='wiki_article_id'; } diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php index f5fc99c..252a62f 100755 --- a/tests/Bootstrap.php +++ b/tests/Bootstrap.php @@ -12,7 +12,7 @@ require_once __DIR__ . '/../vendor/autoload.php'; require_once __DIR__ . '/Autoloader.php'; use phpOMS\DataStorage\Database\DatabasePool; -use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\DataStorage\Session\HttpSession; $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('schema', $CONFIG['db']['core']['masters']['schema']); -DataMapperAbstract::setConnection($GLOBALS['dbpool']->get()); +DataMapperFactory::db($GLOBALS['dbpool']->get()); $GLOBALS['frameworkpath'] = '/phpOMS/'; diff --git a/tests/Models/WikiAppMapperTest.php b/tests/Models/WikiAppMapperTest.php index f5ba69e..664e1a1 100755 --- a/tests/Models/WikiAppMapperTest.php +++ b/tests/Models/WikiAppMapperTest.php @@ -35,11 +35,11 @@ final class WikiAppMapperTest extends \PHPUnit\Framework\TestCase $app->name = 'Test Category'; - $id = WikiAppMapper::create($app); + $id = WikiAppMapper::create()->execute($app); self::assertGreaterThan(0, $app->getId()); self::assertEquals($id, $app->getId()); - $appR = WikiAppMapper::get($app->getId()); + $appR = WikiAppMapper::get()->where('id', $app->getId())->execute(); self::assertEquals($app->name, $appR->name); } } diff --git a/tests/Models/WikiCategoryMapperTest.php b/tests/Models/WikiCategoryMapperTest.php index 6dea428..1557ee1 100755 --- a/tests/Models/WikiCategoryMapperTest.php +++ b/tests/Models/WikiCategoryMapperTest.php @@ -18,6 +18,7 @@ use Modules\Knowledgebase\Models\NullWikiApp; use Modules\Knowledgebase\Models\NullWikiCategory; use Modules\Knowledgebase\Models\WikiCategory; use Modules\Knowledgebase\Models\WikiCategoryMapper; +use phpOMS\Localization\ISO639x1Enum; /** * @testdox Modules\tests\Knowledgebase\Models\WikiCategoryMapperTest: Wiki category mapper @@ -45,14 +46,14 @@ final class WikiCategoryMapperTest extends \PHPUnit\Framework\TestCase { $this->category->setL11n('Test Category'); - $id = WikiCategoryMapper::create($this->category); + $id = WikiCategoryMapper::create()->execute($this->category); self::assertGreaterThan(0, $this->category->getId()); self::assertEquals($id, $this->category->getId()); - $categoryR = WikiCategoryMapper::get($this->category->getId()); + $categoryR = WikiCategoryMapper::get()->with('name')->where('id', $this->category->getId())->where('name/language', ISO639x1Enum::_EN)->execute(); self::assertEquals($this->category->getL11n(), $categoryR->getL11n()); - self::assertGreaterThan(0, \count(WikiCategoryMapper::getByApp(1))); + self::assertGreaterThan(0, \count(WikiCategoryMapper::getAll()->where('app', 1)->execute())); } /** @@ -66,14 +67,28 @@ final class WikiCategoryMapperTest extends \PHPUnit\Framework\TestCase $this->category->setL11n('Test Category2'); $this->category->parent = new NullWikiCategory(1); - $id = WikiCategoryMapper::create($this->category); + $id = WikiCategoryMapper::create()->execute($this->category); self::assertGreaterThan(0, $this->category->getId()); self::assertEquals($id, $this->category->getId()); - $categoryR = WikiCategoryMapper::get($this->category->getId()); + $categoryR = WikiCategoryMapper::get() + ->with('name') + ->where('id', $this->category->getId()) + ->where('name/language', ISO639x1Enum::_EN) + ->execute(); + self::assertEquals($this->category->getL11n(), $categoryR->getL11n()); self::assertEquals($this->category->parent->getId(), $categoryR->parent->getId()); - self::assertGreaterThan(0, \count(WikiCategoryMapper::getByParentAndApp(1, 1))); + self::assertGreaterThan(0, + \count( + WikiCategoryMapper::getAll() + ->with('name') + ->where('parent', 1) + ->where('app', 1) + ->where('name/language', ISO639x1Enum::_EN) + ->execute() + ) + ); } } diff --git a/tests/Models/WikiDocMapperTest.php b/tests/Models/WikiDocMapperTest.php index 73d3638..23cadae 100755 --- a/tests/Models/WikiDocMapperTest.php +++ b/tests/Models/WikiDocMapperTest.php @@ -18,6 +18,7 @@ use Modules\Knowledgebase\Models\NullWikiCategory; use Modules\Knowledgebase\Models\WikiDoc; use Modules\Knowledgebase\Models\WikiDocMapper; use Modules\Knowledgebase\Models\WikiStatus; +use phpOMS\DataStorage\Database\Query\OrderType; /** * @testdox Modules\tests\Knowledgebase\Models\WikiDocMapperTest: Wiki document mapper @@ -41,17 +42,21 @@ final class WikiDocMapperTest extends \PHPUnit\Framework\TestCase $doc->category = new NullWikiCategory(1); $doc->setLanguage('en'); - $id = WikiDocMapper::create($doc); + $id = WikiDocMapper::create()->execute($doc); self::assertGreaterThan(0, $doc->getId()); self::assertEquals($id, $doc->getId()); - $docR = WikiDocMapper::get($doc->getId()); + $docR = WikiDocMapper::get()->where('id', $doc->getId())->execute(); self::assertEquals($doc->name, $docR->name); self::assertEquals($doc->doc, $docR->doc); self::assertEquals($doc->getStatus(), $docR->getStatus()); self::assertEquals($doc->getLanguage(), $docR->getLanguage()); self::assertEquals($doc->category->getId(), $docR->category->getId()); - self::assertGreaterThan(0, \count(WikiDocMapper::getNewestByApp(1))); + self::assertGreaterThan(0, + \count( + WikiDocMapper::getAll()->where('app', 1)->sort('id', OrderType::DESC)->execute() + ) + ); } }