Pull out general functionality

This commit is contained in:
Dennis Eichhorn 2018-12-09 16:30:04 +01:00
parent 13cc007665
commit 81edb7ea9b

View File

@ -95,14 +95,8 @@ final class ApiController extends Controller
public function apiNewsUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$news = $this->updateNewsFromRequest($request); $news = $this->updateNewsFromRequest($request);
$this->updateModel($request, $news, $news, NewsArticleMapper::class, 'news');
NewsArticleMapper::update($news); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully updated', $news);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Group',
'message' => 'Group successfully updated.',
'response' => $news->jsonSerialize()
]);
} }
/** /**
@ -151,21 +145,8 @@ final class ApiController extends Controller
} }
$newsArticle = $this->createNewsArticleFromRequest($request); $newsArticle = $this->createNewsArticleFromRequest($request);
$this->createModel($request, $newsArticle, NewsArticleMapper::class, 'news');
$this->app->eventManager->trigger('PRE:Module:News-article-create', '', $newsArticle); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully created', $newsArticle);
NewsArticleMapper::create($newsArticle);
$this->app->eventManager->trigger('POST:Module:News-article-create', '', [
$request->getHeader()->getAccount(),
null,
$newsArticle,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'News',
'message' => 'News article successfully created.',
'response' => $newsArticle->jsonSerialize()
]);
} }
/** /**
@ -209,12 +190,7 @@ final class ApiController extends Controller
public function apiNewsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$news = NewsArticleMapper::get((int) $request->getData('id')); $news = NewsArticleMapper::get((int) $request->getData('id'));
$response->set($request->getUri()->__toString(), [ $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully returned', $news);
'status' => NotificationLevel::OK,
'title' => 'News',
'message' => 'News successfully returned.',
'response' => $news->jsonSerialize()
]);
} }
/** /**
@ -259,16 +235,8 @@ final class ApiController extends Controller
} }
$badge = $this->createBadgeFromRequest($request); $badge = $this->createBadgeFromRequest($request);
$this->createModel($request, $badge, BadgeMapper::class, 'badge');
$this->app->eventManager->trigger('PRE:Module:News-badge-create', '', $badge); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Badge', 'Badge successfully created', $badge);
BadgeMapper::create($badge);
$this->app->eventManager->trigger('POST:Module:News-badge-create', '', [
$request->getHeader()->getAccount(),
null,
$badge,
]);
$response->set('badge', $badge->jsonSerialize());
} }
/** /**
@ -356,21 +324,8 @@ final class ApiController extends Controller
public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$news = NewsArticleMapper::get((int) $request->getData('id')); $news = NewsArticleMapper::get((int) $request->getData('id'));
$this->deleteModel($request, $news, NewsArticleMapper::class, 'news');
$this->app->eventManager->trigger('PRE:Module:News-article-delete', '', $news); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully deleted', $news);
$status = NewsArticleMapper::delete($news);
$this->app->eventManager->trigger('POST:Module:News-article-delete', '', [
$request->getHeader()->getAccount(),
$news,
null,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'News',
'message' => 'News successfully deleted.',
'response' => $status
]);
} }
/** /**
@ -388,7 +343,8 @@ final class ApiController extends Controller
*/ */
public function apiDeleteNewsBadge(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiDeleteNewsBadge(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
BadgeMapper::delete((int) $request->getData('id')); $badge = BadgeMapper::get((int) $request->getData('id'));
$response->set('badge_delete', (int) $request->getData('id')); $this->deleteModel($request, $badge, BadgeMapper::class, 'badge');
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Badge', 'Badge successfully deleted', $badge);
} }
} }