mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-06 12:08:40 +00:00
Routing
This commit is contained in:
parent
fd09b26911
commit
b1bb03f216
|
|
@ -27,4 +27,11 @@ return [
|
|||
'verb' => RouteVerb::GET,
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/api/news.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\News\Controller:apiNewsCreate',
|
||||
'verb' => RouteVerb::SET,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -162,30 +162,30 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
}
|
||||
|
||||
/**
|
||||
* Creating news.
|
||||
*
|
||||
* @param array $articleElements Article elements
|
||||
*
|
||||
* @return NewsArticle
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function createNews(...$articleElements)
|
||||
public function apiNewsCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
|
||||
{
|
||||
$newsArticle = new NewsArticle();
|
||||
$newsArticle->setCreatedBy($articleElements[0]);
|
||||
$newsArticle->setCreatedAt($articleElements[1]);
|
||||
$newsArticle->setPublish($articleElements[2]);
|
||||
$newsArticle->setTitle($articleElements[3]);
|
||||
$newsArticle->setPlain($articleElements[4]);
|
||||
$newsArticle->setContent($articleElements[5]);
|
||||
$newsArticle->setLanguage($articleElements[6]);
|
||||
$newsArticle->setType($articleElements[7]);
|
||||
$newsArticle->setStatus($articleElements[8]);
|
||||
$newsArticle->setFeatured($articleElements[9]);
|
||||
$newsArticle->setCreatedBy($requst->getAccount()->getId());
|
||||
$newsArticle->setCreatedAt(new \DateTime('now'));
|
||||
$newsArticle->setPublish((bool) ($request->getData('publish') ?? false));
|
||||
$newsArticle->setTitle($request->getData('title') ?? '');
|
||||
$newsArticle->setPlain($request->getData('plain') ?? '');
|
||||
$newsArticle->setContent($request->getData('content') ?? '');
|
||||
$newsArticle->setLanguage($request->getData('lang') ?? $request->getL11n()->getLanguage());
|
||||
$newsArticle->setType((int) ($requst->getData('type') ?? 1));
|
||||
$newsArticle->setStatus((int) ($request->getData('status') ?? 1));
|
||||
$newsArticle->setFeatured((bool) ($request->getData('featured') ?? true));
|
||||
|
||||
return NewsArticleMapper::create($newsArticle);
|
||||
NewsArticleMapper::create($newsArticle);
|
||||
|
||||
$response->set('news', $newsArticle->jsonSerialize());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ use phpOMS\Localization\ISO639x1Enum;
|
|||
* @link http://orange-management.com
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class NewsArticle
|
||||
class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||
{
|
||||
|
||||
/**
|
||||
|
|
@ -362,4 +362,30 @@ class NewsArticle
|
|||
{
|
||||
$this->featured = $featured;
|
||||
}
|
||||
|
||||
public function toArray() : array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'title' => $this->title,
|
||||
'plain' => $this->plain,
|
||||
'content' => $this->content,
|
||||
'type' => $this->type,
|
||||
'status' => $this->status,
|
||||
'featured' => $this->featured,
|
||||
'publish' => $this->publish,
|
||||
'createdAt' => $this->createdAt,
|
||||
'createdBy' => $this->createdBy,
|
||||
];
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->jsonSerialize();
|
||||
}
|
||||
|
||||
public function jsonSerialize()
|
||||
{
|
||||
return json_encode($this->toArray());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user