phpstan and phpcs fixes

This commit is contained in:
Dennis Eichhorn 2022-03-29 16:41:17 +02:00
parent c171af01f3
commit b425efaf8e
4 changed files with 103 additions and 37 deletions

View File

@ -10,7 +10,7 @@
"icon": null,
"order": 50,
"from": "Knowledgebase",
"permission": { "permission": 2, "type": null, "element": null },
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1003301001,
"children": [
{
@ -24,7 +24,7 @@
"icon": null,
"order": 1,
"from": "Knowledgebase",
"permission": { "permission": 2, "type": null, "element": null },
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1005901001,
"children": []
},
@ -39,7 +39,7 @@
"icon": null,
"order": 5,
"from": "Knowledgebase",
"permission": { "permission": 2, "type": null, "element": null },
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1005901001,
"children": []
},
@ -54,7 +54,7 @@
"icon": null,
"order": 10,
"from": "Knowledgebase",
"permission": { "permission": 4, "type": null, "element": null },
"permission": { "permission": 4, "category": null, "element": null },
"parent": 1005901001,
"children": []
},
@ -69,7 +69,7 @@
"icon": null,
"order": 15,
"from": "Knowledgebase",
"permission": { "permission": 2, "type": null, "element": null },
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1005901001,
"children": []
}

View File

@ -93,9 +93,19 @@ final class ApiController extends Controller
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Wiki', 'Wiki successfully created.', $doc);
}
/**
* Create media files for wiki document
*
* @param WikiDoc $doc Wiki document
* @param RequestAbstract $request Request incl. media do upload
*
* @return void
*
* @since 1.0.0
*/
private function createWikiMedia(WikiDoc $doc, RequestAbstract $request) : void
{
$path = $this->createWikiDir($doc);
$path = $this->createWikiDir($doc);
$account = AccountMapper::get()->where('id', $request->header->account)->execute();
if (!empty($uploadedFiles = $request->getFiles() ?? [])) {
@ -114,20 +124,21 @@ final class ApiController extends Controller
MediaMapper::create()->execute($media);
WikiDocMapper::writer()->createRelationTable('media', [$media->getId()], $doc->getId());
$ref = new Reference();
$ref->name = $media->name;
$ref->source = new NullMedia($media->getId());
$accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login . '/Knowledgebase/' . ($doc->category?->getId() ?? '0') . '/' . $doc->getId();
$ref = new Reference();
$ref->name = $media->name;
$ref->source = new NullMedia($media->getId());
$ref->createdBy = new NullAccount($request->header->account);
$ref->setVirtualPath($accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login . '/Knowledgebase/' . $doc->category->getId() . '/' . $doc->getId());
$ref->setVirtualPath($accountPath);
ReferenceMapper::create()->execute($ref);
if ($collection === null) {
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
'/Modules/Media/Files',
$accountPath,
$request->header->account,
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->getId() . '/Knowledgebase/' . $doc->category->getId() . '/' . $doc->getId()
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->getId() . '/Knowledgebase/' . ($doc->category?->getId() ?? '0') . '/' . $doc->getId()
);
}
@ -141,8 +152,8 @@ final class ApiController extends Controller
foreach ($mediaFiles as $media) {
WikiDocMapper::writer()->createRelationTable('media', [(int) $media], $doc->getId());
$ref = new Reference();
$ref->source = new NullMedia((int) $media);
$ref = new Reference();
$ref->source = new NullMedia((int) $media);
$ref->createdBy = new NullAccount($request->header->account);
$ref->setVirtualPath($path);
@ -150,7 +161,6 @@ final class ApiController extends Controller
if ($collection === null) {
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
'/Modules/Media/Files',
$path,
$request->header->account,
__DIR__ . '/../../../Modules/Media/Files' . $path
@ -162,10 +172,19 @@ final class ApiController extends Controller
}
}
/**
* Create media directory path
*
* @param WikiDoc $doc Doc
*
* @return string
*
* @since 1.0.0
*/
private function createWikiDir(WikiDoc $doc) : string
{
return '/Modules/Knowledgebase/'
. $doc->category->getId() . '/'
. ($doc->category?->getId() ?? '0') . '/'
. $doc->getId();
}
@ -182,17 +201,17 @@ final class ApiController extends Controller
*/
public function createWikiDocFromRequest(RequestAbstract $request, ResponseAbstract $response, $data = null) : WikiDoc
{
$doc = new WikiDoc();
$doc->createdBy = new NullAccount($request->header->account);
$doc->name = (string) $request->getData('title');
$doc->doc = Markdown::parse((string) ($request->getData('plain') ?? ''));
$doc->docRaw = (string) ($request->getData('plain') ?? '');
$doc->isVersioned = (bool) ($request->getData('versioned') ?? false);
$doc->category = new NullWikiCategory((int) ($request->getData('category') ?? 1));
$doc = new WikiDoc();
$doc->createdBy = new NullAccount($request->header->account);
$doc->name = (string) $request->getData('title');
$doc->doc = Markdown::parse((string) ($request->getData('plain') ?? ''));
$doc->docRaw = (string) ($request->getData('plain') ?? '');
$doc->isVersioned = (bool) ($request->getData('versioned') ?? false);
$doc->category = new NullWikiCategory((int) ($request->getData('category') ?? 1));
$doc->app = new NullWikiApp((int) ($request->getData('app') ?? 1));
$doc->version = (string) ($request->getData('version') ?? '');
$doc->setLanguage((string) ($request->getData('language') ?? $request->getLanguage()));
$doc->setStatus((int) ($request->getData('status') ?? WikiStatus::INACTIVE));
$doc->app = new NullWikiApp((int) ($request->getData('app') ?? 1));
$doc->version = (string) ($request->getData('version') ?? '');
if (!empty($tags = $request->getDataJson('tags'))) {
foreach ($tags as $tag) {
@ -214,6 +233,15 @@ final class ApiController extends Controller
return $doc;
}
/**
* Create history from document
*
* @param WikiDoc $doc Document
*
* @return WikiDocHistory
*
* @since 1.0.0
*/
private function createHistory(WikiDoc $doc) : WikiDocHistory
{
$history = WikiDocHistory::createFromDoc($doc);
@ -378,12 +406,12 @@ final class ApiController extends Controller
private function updateDocFromRequest(RequestAbstract $request) : WikiDoc
{
/** @var WikiDoc $doc */
$doc = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute();
$doc = WikiDocMapper::get()->where('id', (int) $request->getData('id'))->execute();
$doc->isVersioned = (bool) ($request->getData('versioned') ?? $doc->isVersioned);
$doc->name = (string) ($request->getData('title') ?? $doc->name);
$doc->docRaw = (string) ($request->getData('plain') ?? $doc->docRaw);
$doc->doc = Markdown::parse((string) ($request->getData('plain') ?? $doc->docRaw));
$doc->version = (string) ($request->getData('version') ?? $doc->version);
$doc->name = (string) ($request->getData('title') ?? $doc->name);
$doc->docRaw = (string) ($request->getData('plain') ?? $doc->docRaw);
$doc->doc = Markdown::parse((string) ($request->getData('plain') ?? $doc->docRaw));
$doc->version = (string) ($request->getData('version') ?? $doc->version);
return $doc;
}

View File

@ -296,7 +296,7 @@ final class BackendController extends Controller
{
$view = new View($this->app->l11nManager, $request, $response);
$app = (int) ($request->getData('app') ?? $this->app->orgId);
$app = (int) ($request->getData('app') ?? $this->app->orgId);
$document = WikiDocMapper::get()
->with('tags')

View File

@ -14,6 +14,8 @@ declare(strict_types=1);
namespace Modules\Knowledgebase\Models;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\NullAccount;
use phpOMS\Localization\ISO639x1Enum;
/**
@ -74,6 +76,22 @@ class WikiDocHistory implements \JsonSerializable
*/
public string $docRaw = '';
/**
* Created.
*
* @var \DateTimeImmutable
* @since 1.0.0
*/
public \DateTimeImmutable $createdAt;
/**
* Creator.
*
* @var Account
* @since 1.0.0
*/
public Account $createdBy;
/**
* Language.
*
@ -82,15 +100,35 @@ class WikiDocHistory implements \JsonSerializable
*/
private string $language = ISO639x1Enum::_EN;
/**
* Constructor.
*
* @since 1.0.0
*/
public function __construct()
{
$this->createdBy = new NullAccount();
$this->createdAt = new \DateTimeImmutable('now');
}
/**
* Create history form model
*
* @param WikiDoc $doc Document
*
* @return self
*
* @since 1.0.0
*/
public static function createFromDoc(WikiDoc $doc) : self
{
$hist = new self();
$hist->article = $doc->getId();
$hist = new self();
$hist->article = $doc->getId();
$hist->createdBy = $doc->createdBy;
$hist->name = $doc->name;
$hist->doc = $doc->doc;
$hist->docRaw = $doc->docRaw;
$hist->version = $doc->version;
$hist->name = $doc->name;
$hist->doc = $doc->doc;
$hist->docRaw = $doc->docRaw;
$hist->version = $doc->version;
return $hist;
}