mirror of
https://github.com/Karaka-Management/oms-Profile.git
synced 2026-02-04 18:28:41 +00:00
phpstan, phpcs, phpunit fixes
This commit is contained in:
parent
7ea05be3b7
commit
483b72fc4e
|
|
@ -46,6 +46,8 @@ class Media
|
|||
$defaultProfileImage = (int) \reset($media['upload'][0]);
|
||||
|
||||
$setting = new Setting();
|
||||
SettingMapper::create()->execute($setting->with(0, SettingsEnum::DEFAULT_PROFILE_IMAGE, (string) $defaultProfileImage, '\\d+', null, 'Profile'));
|
||||
SettingMapper::create()->execute(
|
||||
$setting->with(0, SettingsEnum::DEFAULT_PROFILE_IMAGE, (string) $defaultProfileImage, '\\d+', module: 'Profile')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,11 +22,13 @@
|
|||
},
|
||||
"profile_account_gender": {
|
||||
"name": "profile_account_gender",
|
||||
"type": "INT"
|
||||
"type": "INT",
|
||||
"null": false
|
||||
},
|
||||
"profile_account_sex": {
|
||||
"name": "profile_account_sex",
|
||||
"type": "INT"
|
||||
"type": "INT",
|
||||
"null": false
|
||||
},
|
||||
"profile_account_birthday": {
|
||||
"name": "profile_account_birthday",
|
||||
|
|
|
|||
|
|
@ -183,16 +183,29 @@ final class ApiController extends Controller
|
|||
$old = clone $profile;
|
||||
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
$request->getDataList('names'),
|
||||
$request->getDataList('filenames'),
|
||||
$uploadedFiles,
|
||||
$request->header->account,
|
||||
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $profile->account->getId(),
|
||||
'/Accounts/' . $profile->account->getId() . ' ' . $profile->account->login,
|
||||
$request->getData('type', 'int'),
|
||||
names: $request->getDataList('names'),
|
||||
fileNames: $request->getDataList('filenames'),
|
||||
files: $uploadedFiles,
|
||||
account: $request->header->account,
|
||||
basePath: __DIR__ . '/../../../Modules/Media/Files/Accounts/' . $profile->account->getId(),
|
||||
virtualPath: '/Accounts/' . $profile->account->getId() . ' ' . $profile->account->login,
|
||||
pathSettings: PathSettings::FILE_PATH
|
||||
);
|
||||
|
||||
if ($request->hasData('type')) {
|
||||
foreach ($uploaded as $file) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$file->getId(),
|
||||
$request->getData('type', 'int'),
|
||||
MediaMapper::class,
|
||||
'types',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$profile->image = !empty($uploaded) ? \reset($uploaded) : new NullMedia();
|
||||
if (!($profile->image instanceof NullMedia)) {
|
||||
$profile->image = $this->app->moduleManager->get('Media')->resizeImage($profile->image, 100, 100, false);
|
||||
|
|
@ -258,6 +271,7 @@ final class ApiController extends Controller
|
|||
if (($val['account'] = (empty($request->getData('account')) && empty($request->getData('profile'))))
|
||||
|| ($val['type'] = !\is_numeric($request->getData('type')))
|
||||
|| ($val['content'] = empty($request->getData('content')))
|
||||
|| ($val['contact'] = empty($request->getData('contact')))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
|
@ -281,6 +295,7 @@ final class ApiController extends Controller
|
|||
$element->setType((int) ($request->getData('type') ?? 0));
|
||||
$element->setSubtype((int) ($request->getData('subtype') ?? 0));
|
||||
$element->content = (string) ($request->getData('content') ?? '');
|
||||
$element->contact = (int) ($request->getData('contact') ?? 0);
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ namespace Modules\Profile\Models;
|
|||
|
||||
use Modules\Media\Models\Media;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
use phpOMS\Stdlib\Base\Location;
|
||||
|
||||
/**
|
||||
* Contact element class.
|
||||
|
|
@ -100,13 +101,29 @@ class Contact
|
|||
public Media $image;
|
||||
|
||||
/**
|
||||
* Profile this contact belongs to
|
||||
* Account this contact belongs to
|
||||
*
|
||||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public int $profile = 0;
|
||||
|
||||
/**
|
||||
* Location data.
|
||||
*
|
||||
* @var Location[]
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected array $locations = [];
|
||||
|
||||
/**
|
||||
* Contact data.
|
||||
*
|
||||
* @var Contact[]
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected array $contacts = [];
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
|
|
@ -117,6 +134,58 @@ class Contact
|
|||
$this->image = new NullMedia();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get account locations.
|
||||
*
|
||||
* @return Location[]
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getLocations() : array
|
||||
{
|
||||
return $this->locations;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add location.
|
||||
*
|
||||
* @param Location $location Location
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function addLocation(Location $location) : void
|
||||
{
|
||||
$this->locations[] = $location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get account contact element.
|
||||
*
|
||||
* @return Contact[]
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getContacts() : array
|
||||
{
|
||||
return $this->contacts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add contact element.
|
||||
*
|
||||
* @param Contact $contact Contact Element
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function addContact(Contact $contact) : void
|
||||
{
|
||||
$this->contacts[] = $contact;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ class ContactElement
|
|||
*/
|
||||
public int $order = 0;
|
||||
|
||||
public int $contact = 0;
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ final class ContactElementMapper extends DataMapperFactory
|
|||
'profile_contact_element_subtype' => ['name' => 'profile_contact_element_subtype', 'type' => 'int', 'internal' => 'subtype'],
|
||||
'profile_contact_element_order' => ['name' => 'profile_contact_element_order', 'type' => 'int', 'internal' => 'order'],
|
||||
'profile_contact_element_content' => ['name' => 'profile_contact_element_content', 'type' => 'string', 'internal' => 'content'],
|
||||
'profile_contact_element_contact' => ['name' => 'profile_contact_element_contact', 'type' => 'int', 'internal' => 'contact'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Modules\Profile\Models;
|
||||
|
||||
use Modules\Admin\Models\AddressMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
|
|
@ -48,7 +49,7 @@ final class ContactMapper extends DataMapperFactory
|
|||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
|
|
@ -73,4 +74,25 @@ final class ContactMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD ='profile_contact_id';
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'locations' => [
|
||||
'mapper' => AddressMapper::class,
|
||||
'table' => 'profile_contact_addressrel',
|
||||
'external' => 'profile_contact_addressrel_address',
|
||||
'self' => 'profile_contact_addressrel_contact',
|
||||
],
|
||||
'contacts' => [
|
||||
'mapper' => ContactElementMapper::class,
|
||||
'table' => 'profile_contact_element',
|
||||
'self' => 'profile_contact_element_contact',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@ class Profile implements \JsonSerializable
|
|||
*/
|
||||
public function __construct(Account $account = null)
|
||||
{
|
||||
$this->image = new NullMedia();
|
||||
$this->account = $account ?? new NullAccount();
|
||||
$this->image = new NullMedia();
|
||||
$this->account = $account ?? new NullAccount();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ final class ProfileMapper extends DataMapperFactory
|
|||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
|
|
@ -60,7 +60,7 @@ final class ProfileMapper extends DataMapperFactory
|
|||
/**
|
||||
* Belongs to.
|
||||
*
|
||||
* @var array<string, array{mapper:string, external:string, column?:string, by?:string}>
|
||||
* @var array<string, array{mapper:class-string, external:string, column?:string, by?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const BELONGS_TO = [
|
||||
|
|
@ -73,7 +73,7 @@ final class ProfileMapper extends DataMapperFactory
|
|||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var string
|
||||
* @var class-string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = Profile::class;
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
* @covers Modules\Profile\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
/*
|
||||
public function testApiContactElementCreate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
|
|
@ -197,10 +198,12 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$request->setData('account', '1');
|
||||
$request->setData('type', ContactType::PHONE);
|
||||
$request->setData('content', '+0123-456-789');
|
||||
$request->setData('contact', '1');
|
||||
|
||||
$this->module->apiContactElementCreate($request, $response);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @covers Modules\Profile\Controller\ApiController
|
||||
|
|
|
|||
|
|
@ -46,8 +46,6 @@ final class ProfileTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals(0, $this->profile->getId());
|
||||
self::assertEquals(GenderType::OTHER, $this->profile->getGender());
|
||||
self::assertEquals(SexType::OTHER, $this->profile->getSex());
|
||||
self::assertEquals([], $this->profile->getLocation());
|
||||
self::assertEquals([], $this->profile->getContactElements());
|
||||
self::assertInstanceOf('\Modules\Media\Models\Media', $this->profile->image);
|
||||
self::assertInstanceOf('\Modules\Admin\Models\Account', $this->profile->account);
|
||||
self::assertNull($this->profile->birthday);
|
||||
|
|
@ -115,26 +113,6 @@ final class ProfileTest extends \PHPUnit\Framework\TestCase
|
|||
self::assertEquals(1, $this->profile->image->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Profile\Models\Profile
|
||||
* @group module
|
||||
*/
|
||||
public function testLocationInputOutput() : void
|
||||
{
|
||||
$this->profile->addLocation(new Location());
|
||||
self::assertCount(1, $this->profile->getLocation());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Profile\Models\Profile
|
||||
* @group module
|
||||
*/
|
||||
public function testContactElementInputOutput() : void
|
||||
{
|
||||
$this->profile->addContactElement(new ContactElement());
|
||||
self::assertCount(1, $this->profile->getContactElements());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Profile\Models\Profile
|
||||
* @group module
|
||||
|
|
@ -168,8 +146,6 @@ final class ProfileTest extends \PHPUnit\Framework\TestCase
|
|||
'account' => $a,
|
||||
'image' => $i,
|
||||
'birthday' => $date,
|
||||
'locations' => [],
|
||||
'contactelements' => [],
|
||||
],
|
||||
$this->profile->jsonSerialize()
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user