|
@@ -1,6 +1,7 @@
|
|
|
<?php
|
|
<?php
|
|
|
namespace internship\controller;
|
|
namespace internship\controller;
|
|
|
|
|
|
|
|
|
|
+use n2n\web\http\BadRequestException;
|
|
|
use n2n\web\http\controller\ControllerAdapter;
|
|
use n2n\web\http\controller\ControllerAdapter;
|
|
|
use internship\model\ArticleDao;
|
|
use internship\model\ArticleDao;
|
|
|
use n2n\context\attribute\Inject;
|
|
use n2n\context\attribute\Inject;
|
|
@@ -43,10 +44,24 @@ class ArticleController extends ControllerAdapter {
|
|
|
* @return void
|
|
* @return void
|
|
|
* @throws PageNotFoundException if Article could not be found.
|
|
* @throws PageNotFoundException if Article could not be found.
|
|
|
*/
|
|
*/
|
|
|
- function getDoArticle(int $articleId): void {
|
|
|
|
|
-
|
|
|
|
|
|
|
+ function getDoArticle(ArticleDao $articleDao, int $articleId): void {
|
|
|
|
|
+ /*$cars = array('BMW', 'Audi', 'Mercedes');
|
|
|
|
|
+ echo $this->sendJson($cars);*/
|
|
|
|
|
+ if (($articleDao->getArticleById($articleId)) === null) {
|
|
|
|
|
+ throw new PageNotFoundException();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ echo $this->sendJson($articleDao->getArticleById($articleId));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ $article = $articleDao->getArticleById($articleId);
|
|
|
|
|
+ if ($article === null) {
|
|
|
|
|
+ throw new PageNotFoundException();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $this->sendJson($article);*/
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Diese Methode kannst du im Browser testen. Pfad: localhost/[ordner name vom projekt]/src-php/public/api/articles
|
|
* Diese Methode kannst du im Browser testen. Pfad: localhost/[ordner name vom projekt]/src-php/public/api/articles
|
|
|
*
|
|
*
|
|
@@ -67,6 +82,11 @@ class ArticleController extends ControllerAdapter {
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
function getDoArticles(string $categoryName = null): void {
|
|
function getDoArticles(string $categoryName = null): void {
|
|
|
|
|
+ if ($categoryName === null) {
|
|
|
|
|
+ $this->sendJson($this->articleDao->getArticles());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $this->sendJson($this->articleDao->getArticlesByCategoryName($categoryName));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -90,7 +110,12 @@ class ArticleController extends ControllerAdapter {
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
function postDoArticle(ParamBody $body): void {
|
|
function postDoArticle(ParamBody $body): void {
|
|
|
- $body->parseJson();
|
|
|
|
|
|
|
+ $input = $body->parseJson();
|
|
|
|
|
+ $categoryName = $input['categoryName'];
|
|
|
|
|
+ $title = $input['title'];
|
|
|
|
|
+ $text = $input['text'];
|
|
|
|
|
+ var_dump($input);
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -111,8 +136,29 @@ class ArticleController extends ControllerAdapter {
|
|
|
*
|
|
*
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
- function putDoArticle(ParamBody $body): void {
|
|
|
|
|
|
|
+ function putDoArticle(int $articleId, ParamBody $body): void {
|
|
|
|
|
+ $input = $body->parseJson();
|
|
|
|
|
+ $categoryName = $input['categoryName'];
|
|
|
|
|
+ $title = $input['title'];
|
|
|
|
|
+ $text = $input['text'];
|
|
|
|
|
|
|
|
|
|
+ if ($categoryName != 'sport'
|
|
|
|
|
+ && $categoryName != 'national'
|
|
|
|
|
+ && $categoryName != 'international'){
|
|
|
|
|
+ throw new BadRequestException();
|
|
|
|
|
+ } else if (strlen($title) > 15 or strlen($title) < 3) {
|
|
|
|
|
+ throw new BadRequestException('Title too short.');
|
|
|
|
|
+ } else if (strlen($text) > 30 or strlen($text) < 5) {
|
|
|
|
|
+ throw new BadRequestException();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var_dump($input);
|
|
|
|
|
+ }
|
|
|
|
|
+ $this->beginTransaction();
|
|
|
|
|
+ $article = $this->articleDao->getArticleById($articleId);
|
|
|
|
|
+ $article->setText($text);
|
|
|
|
|
+ $article->setCategoryName($categoryName);
|
|
|
|
|
+ $article->setTitle($title);
|
|
|
|
|
+ $this->commit();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|