new datamapper mostly implemented

This commit is contained in:
Dennis Eichhorn 2021-12-11 11:54:17 +01:00
parent f0953c41b9
commit 7a55819e9b
9 changed files with 51 additions and 51 deletions

View File

@ -17,6 +17,7 @@ namespace Modules\EventManagement\Controller;
use Modules\EventManagement\Models\EventMapper;
use phpOMS\Asset\AssetType;
use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Views\View;
@ -51,7 +52,7 @@ final class BackendController extends Controller
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004201001, $request, $response));
/** @var \Modules\EventManagement\Models\Event[] $events */
$events = EventMapper::getNewest(25);
$events = EventMapper::getAll()->sort('id', OrderType::DESC)->limit(25);
$view->addData('events', $events);
return $view;
@ -113,7 +114,7 @@ final class BackendController extends Controller
$view->addData('medialist', $mediaListView);
/** @var \Modules\EventManagement\Models\Event $event */
$event = EventMapper::get((int) $request->getData('id'));
$event = EventMapper::get()->where('id', (int) $request->getData('id'))->execute();
$view->addData('event', $event);
return $view;

View File

@ -15,7 +15,7 @@ declare(strict_types=1);
namespace Modules\EventManagement\Models;
use Modules\Admin\Models\AccountMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Mapper class.
@ -25,7 +25,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class AccountRelationMapper extends DataMapperAbstract
final class AccountRelationMapper extends DataMapperFactory
{
/**
* Columns.
@ -33,10 +33,10 @@ final class AccountRelationMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
'marketing_event_accountrel_id' => ['name' => 'marketing_event_accountrel_id', 'type' => 'int', 'internal' => 'id'],
'marketing_event_accountrel_event' => ['name' => 'marketing_event_accountrel_event', 'type' => 'int', 'internal' => 'event'],
'marketing_event_accountrel_type' => ['name' => 'marketing_event_accountrel_type', 'type' => 'int', 'internal' => 'type'],
public const COLUMNS = [
'eventmanagement_event_accountrel_id' => ['name' => 'eventmanagement_event_accountrel_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_accountrel_event' => ['name' => 'eventmanagement_event_accountrel_event', 'type' => 'int', 'internal' => 'event'],
'eventmanagement_event_accountrel_type' => ['name' => 'eventmanagement_event_accountrel_type', 'type' => 'int', 'internal' => 'type'],
];
/**
@ -45,10 +45,10 @@ final class AccountRelationMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
* @since 1.0.0
*/
protected static array $ownsOne = [
public const OWNS_ONE = [
'account' => [
'mapper' => AccountMapper::class,
'external' => 'marketing_event_accountrel_account',
'external' => 'eventmanagement_event_accountrel_account',
],
];
@ -58,7 +58,7 @@ final class AccountRelationMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'marketing_event_accountrel';
public const TABLE = 'eventmanagement_event_accountrel';
/**
* Primary field name.
@ -66,5 +66,5 @@ final class AccountRelationMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'marketing_event_accountrel_id';
public const PRIMARYFIELD ='eventmanagement_event_accountrel_id';
}

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\EventManagement\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Event mapper class.
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class EventAttributeMapper extends DataMapperAbstract
final class EventAttributeMapper extends DataMapperFactory
{
/**
* Columns.
@ -32,7 +32,7 @@ final class EventAttributeMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
public const COLUMNS = [
'eventmanagement_event_attr_id' => ['name' => 'eventmanagement_event_attr_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_attr_event' => ['name' => 'eventmanagement_event_attr_event', 'type' => 'int', 'internal' => 'event'],
'eventmanagement_event_attr_type' => ['name' => 'eventmanagement_event_attr_type', 'type' => 'int', 'internal' => 'type'],
@ -45,7 +45,7 @@ final class EventAttributeMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
* @since 1.0.0
*/
protected static array $ownsOne = [
public const OWNS_ONE = [
'type' => [
'mapper' => EventAttributeTypeMapper::class,
'external' => 'eventmanagement_event_attr_type',
@ -62,7 +62,7 @@ final class EventAttributeMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'eventmanagement_event_attr';
public const TABLE = 'eventmanagement_event_attr';
/**
* Primary field name.
@ -70,5 +70,5 @@ final class EventAttributeMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'eventmanagement_event_attr_id';
public const PRIMARYFIELD ='eventmanagement_event_attr_id';
}

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\EventManagement\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Event mapper class.
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class EventAttributeTypeL11nMapper extends DataMapperAbstract
final class EventAttributeTypeL11nMapper extends DataMapperFactory
{
/**
* Columns.
@ -32,7 +32,7 @@ final class EventAttributeTypeL11nMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
public const COLUMNS = [
'eventmanagement_event_attr_type_l11n_id' => ['name' => 'eventmanagement_event_attr_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_attr_type_l11n_title' => ['name' => 'eventmanagement_event_attr_type_l11n_title', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
'eventmanagement_event_attr_type_l11n_type' => ['name' => 'eventmanagement_event_attr_type_l11n_type', 'type' => 'int', 'internal' => 'type'],
@ -45,7 +45,7 @@ final class EventAttributeTypeL11nMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'eventmanagement_event_attr_type_l11n';
public const TABLE = 'eventmanagement_event_attr_type_l11n';
/**
* Primary field name.
@ -53,5 +53,5 @@ final class EventAttributeTypeL11nMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'eventmanagement_event_attr_type_l11n_id';
public const PRIMARYFIELD ='eventmanagement_event_attr_type_l11n_id';
}

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\EventManagement\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Event mapper class.
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class EventAttributeTypeMapper extends DataMapperAbstract
final class EventAttributeTypeMapper extends DataMapperFactory
{
/**
* Columns.
@ -32,7 +32,7 @@ final class EventAttributeTypeMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
public const COLUMNS = [
'eventmanagement_event_attr_type_id' => ['name' => 'eventmanagement_event_attr_type_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_attr_type_name' => ['name' => 'eventmanagement_event_attr_type_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true],
'eventmanagement_event_attr_type_fields' => ['name' => 'eventmanagement_event_attr_type_fields', 'type' => 'int', 'internal' => 'fields'],
@ -47,21 +47,19 @@ final class EventAttributeTypeMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
* @since 1.0.0
*/
protected static array $hasMany = [
public const HAS_MANY = [
'l11n' => [
'mapper' => EventAttributeTypeL11nMapper::class,
'table' => 'eventmanagement_event_attr_type_l11n',
'self' => 'eventmanagement_event_attr_type_l11n_type',
'column' => 'title',
'conditional' => true,
'external' => null,
],
'defaults' => [
'mapper' => EventAttributeValueMapper::class,
'table' => 'eventmanagement_event_attr_default',
'self' => 'eventmanagement_event_attr_default_type',
'external' => 'eventmanagement_event_attr_default_value',
'conditional' => false,
'external' => 'eventmanagement_event_attr_default_value'
],
];
@ -71,7 +69,7 @@ final class EventAttributeTypeMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'eventmanagement_event_attr_type';
public const TABLE = 'eventmanagement_event_attr_type';
/**
* Primary field name.
@ -79,5 +77,5 @@ final class EventAttributeTypeMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'eventmanagement_event_attr_type_id';
public const PRIMARYFIELD ='eventmanagement_event_attr_type_id';
}

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\EventManagement\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Event mapper class.
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https: //orange-management.org
* @since 1.0.0
*/
final class EventAttributeValueMapper extends DataMapperAbstract
final class EventAttributeValueMapper extends DataMapperFactory
{
/**
* Columns.
@ -32,7 +32,7 @@ final class EventAttributeValueMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
public const COLUMNS = [
'eventmanagement_event_attr_value_id' => ['name' => 'eventmanagement_event_attr_value_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_attr_value_default' => ['name' => 'eventmanagement_event_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'],
'eventmanagement_event_attr_value_type' => ['name' => 'eventmanagement_event_attr_value_type', 'type' => 'int', 'internal' => 'type'],
@ -50,7 +50,7 @@ final class EventAttributeValueMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'eventmanagement_event_attr_value';
public const TABLE = 'eventmanagement_event_attr_value';
/**
* Primary field name.
@ -58,5 +58,5 @@ final class EventAttributeValueMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'eventmanagement_event_attr_value_id';
public const PRIMARYFIELD ='eventmanagement_event_attr_value_id';
}

View File

@ -17,7 +17,7 @@ namespace Modules\EventManagement\Models;
use Modules\Admin\Models\AccountMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Tasks\Models\TaskMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Mapper class.
@ -27,7 +27,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class EventMapper extends DataMapperAbstract
final class EventMapper extends DataMapperFactory
{
/**
* Columns.
@ -35,7 +35,7 @@ final class EventMapper extends DataMapperAbstract
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
protected static array $columns = [
public const COLUMNS = [
'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_name' => ['name' => 'eventmanagement_event_name', 'type' => 'string', 'internal' => 'name'],
'eventmanagement_event_description' => ['name' => 'eventmanagement_event_description', 'type' => 'string', 'internal' => 'description'],
@ -59,7 +59,7 @@ final class EventMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
* @since 1.0.0
*/
protected static array $hasMany = [
public const HAS_MANY = [
'tasks' => [
'mapper' => TaskMapper::class,
'table' => 'eventmanagement_task_relation',
@ -87,7 +87,7 @@ final class EventMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
* @since 1.0.0
*/
protected static array $ownsOne = [
public const OWNS_ONE = [
'calendar' => [
'mapper' => \Modules\Calendar\Models\CalendarMapper::class,
'external' => 'eventmanagement_event_calendar',
@ -100,7 +100,7 @@ final class EventMapper extends DataMapperAbstract
* @var array<string, array{mapper:string, external:string}>
* @since 1.0.0
*/
protected static array $belongsTo = [
public const BELONGS_TO = [
'createdBy' => [
'mapper' => AccountMapper::class,
'external' => 'eventmanagement_event_created_by',
@ -113,7 +113,7 @@ final class EventMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $table = 'eventmanagement_event';
public const TABLE = 'eventmanagement_event';
/**
* Created at.
@ -121,7 +121,7 @@ final class EventMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $createdAt = 'eventmanagement_event_created_at';
public const CREATED_AT = 'eventmanagement_event_created_at';
/**
* Primary field name.
@ -129,5 +129,5 @@ final class EventMapper extends DataMapperAbstract
* @var string
* @since 1.0.0
*/
protected static string $primaryField = 'eventmanagement_event_id';
public const PRIMARYFIELD ='eventmanagement_event_id';
}

View File

@ -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/';

View File

@ -21,6 +21,7 @@ use Modules\EventManagement\Models\EventType;
use Modules\EventManagement\Models\ProgressType;
use Modules\Media\Models\Media;
use Modules\Tasks\Models\Task;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Localization\Money;
/**
@ -74,11 +75,11 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
$media->name = 'Event Media';
$event->addMedia($media);
$id = EventMapper::create($event);
$id = EventMapper::create()->execute($event);
self::assertGreaterThan(0, $event->getId());
self::assertEquals($id, $event->getId());
$eventR = EventMapper::get($event->getId());
$eventR = EventMapper::get()->with('tasks')->with('media')->where('id', $event->getId())->execute();
self::assertEquals($event->name, $eventR->name);
self::assertEquals($event->description, $eventR->description);
@ -104,7 +105,7 @@ final class EventMapperTest extends \PHPUnit\Framework\TestCase
*/
public function testNewest() : void
{
$newest = EventMapper::getNewest(1);
$newest = EventMapper::getAll()->sort('id', OrderType::DESC)->limit(1)->execute();
self::assertCount(1, $newest);
}