aboutsummaryrefslogtreecommitdiffhomepage
path: root/api/Posts/Controllers/PostController.php
diff options
context:
space:
mode:
authorMarvin Borner2018-08-24 13:17:32 +0200
committerMarvin Borner2018-08-24 13:17:32 +0200
commit0ee38e98532a9daf7ba08ab65b7f73d6505e0aea (patch)
tree6ff916179bb4ebe14369ea99b84109dc6e52ba13 /api/Posts/Controllers/PostController.php
parent3045cb39be8b9c9cb3ca6ed643ccceac0042f0c0 (diff)
Began API for posts
Diffstat (limited to 'api/Posts/Controllers/PostController.php')
-rw-r--r--api/Posts/Controllers/PostController.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/api/Posts/Controllers/PostController.php b/api/Posts/Controllers/PostController.php
new file mode 100644
index 0000000..105c7c2
--- /dev/null
+++ b/api/Posts/Controllers/PostController.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace Api\Posts\Controllers;
+
+use Illuminate\Http\Request;
+use Infrastructure\Http\Controller;
+use Api\Posts\Requests\CreatePostRequest;
+use Api\Posts\Services\PostService;
+
+class PostController extends Controller
+{
+ private $postService;
+
+ public function __construct(PostService $postService)
+ {
+ $this->postService = $postService;
+ }
+
+ public function getAll()
+ {
+ $resourceOptions = $this->parseResourceOptions();
+
+ $data = $this->postService->getAll($resourceOptions);
+ $parsedData = $this->parseData($data, $resourceOptions, 'posts');
+
+ return $this->response($parsedData);
+ }
+
+ public function getById($postId)
+ {
+ $resourceOptions = $this->parseResourceOptions();
+
+ $data = $this->postService->getById($postId, $resourceOptions);
+ $parsedData = $this->parseData($data, $resourceOptions, 'post');
+
+ return $this->response($parsedData);
+ }
+
+ public function create(CreatePostRequest $request)
+ {
+ $data = $request->get('post', []);
+
+ return $this->response($this->postService->create($data), 201);
+ }
+
+ public function update($postId, Request $request)
+ {
+ $data = $request->get('post', []);
+
+ return $this->response($this->postService->update($postId, $data));
+ }
+
+ public function delete($postId)
+ {
+ return $this->response($this->postService->delete($postId));
+ }
+}