|
@@ -4,38 +4,106 @@ namespace internship\controller;
|
|
|
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;
|
|
|
|
|
+use n2n\web\http\controller\ParamBody;
|
|
|
|
|
+use internship\bo\Article;
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * REST Controller
|
|
|
|
|
+ * https://dev.n2n.rocks/de/n2n/docs/rest
|
|
|
|
|
+ */
|
|
|
class ArticleController extends ControllerAdapter {
|
|
class ArticleController extends ControllerAdapter {
|
|
|
- #[Inject()]
|
|
|
|
|
|
|
+ #[Inject]
|
|
|
private ArticleDao $articleDao;
|
|
private ArticleDao $articleDao;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * Diese Methode kannst du im Postman testen. Pfad: localhost/[ordner name vom projekt]/src-php/public/api/articles
|
|
|
|
|
+ *
|
|
|
|
|
+ * <ul>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Gib "irgendöpis" mit dem {@code echo} command aus.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Ändere die Antwort nun zu einem gültigen json objekt {"hello" => "world"}. Nutze dafür {@see $this->sendJson()}.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Nutze die Methode {{@see ArticleDao::getArticles()} um Artikel aus der Datenbank zu lesen
|
|
|
|
|
+ * und gebe diese anschliessend im JSON Format zurück.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * </ul>
|
|
|
*
|
|
*
|
|
|
* @param string|null $categoryName
|
|
* @param string|null $categoryName
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
- function getDoArticles(string $categoryName = null) {
|
|
|
|
|
-
|
|
|
|
|
- echo 'irgendöpis';
|
|
|
|
|
-
|
|
|
|
|
- $this->sendJson(['hello' => 'world']);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ function getDoArticles(string $categoryName = null): void {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function getDoArticle(int $articleId) {
|
|
|
|
|
- $this->sendJson($article);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Gibt den {@see Article} mit der entsprechenden id im JSON Format zurück.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param int $articleId
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ function getDoArticle(int $articleId): void {
|
|
|
|
|
|
|
|
- function postDoArticle() {
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Speichere einen Artikel.
|
|
|
|
|
+ *
|
|
|
|
|
+ * <ul>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Der Kategoriename darf nur 'international','national' oder 'sport' sein.
|
|
|
|
|
+ * Validiere dies und schmeisse im Fehlerfall eine: {@see BadRequestException}
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Mache eine neue Entity {@see Article} und befülle sie mit den übergebenen Daten.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Implementiere eine neue Methode im {@see ArticleDao} und bennene sie "saveArticle".
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * </ul>
|
|
|
|
|
+ *
|
|
|
|
|
+ * Nenne die Methode {@see saveArticle(Article $article)}
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ function postDoArticle(ParamBody $body): void {
|
|
|
|
|
+ $body->toArray();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function putDoArticle() {
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Editiere einen Artikel.
|
|
|
|
|
+ *
|
|
|
|
|
+ * <ul>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Der Kategoriename darf nur 'international','national' oder 'sport' sein.
|
|
|
|
|
+ * Validiere dies und schmeisse im Fehlerfall eine: {@see BadRequestException}
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Finde den dazugehörigen {@see Article} und passe die Daten mit denjenigen Daten von gestern ab.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * <li>
|
|
|
|
|
+ * Implementiere eine neue Methode im {@see ArticleDao} und nenne die Methode {@see saveArticle(Article $article)}.
|
|
|
|
|
+ * </li>
|
|
|
|
|
+ * </ul>
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ function putDoArticle(ParamBody $body): void {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function deleteDoArticle() {
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Löscht den {@see Article} mit der dazugehörigen Id.
|
|
|
|
|
+ *
|
|
|
|
|
+ * <ul>
|
|
|
|
|
+ * <li>Mache eine neue Methode im {@see ArticleDao} und bennene sie "removeArticle(int articleId) </li>
|
|
|
|
|
+ * <ul>
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ function deleteDoArticle(int $articleId): void {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|