Last active
June 17, 2019 11:00
-
-
Save luckys383/12109fcc2a2e45677e353e7d2ded4665 to your computer and use it in GitHub Desktop.
Repository Pattern: CRUD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use App\Http\Controllers\Controller; | |
use App\Http\Requests\Api\CreatePostRequest; | |
use App\Http\Requests\Api\UpdatePostRequest; | |
use App\Repositories\PostsRepository; | |
use Exception; | |
use Illuminate\Http\Request; | |
class PostsController extends Controller | |
{ | |
protected $repository; | |
public function __construct(PostsRepository $repository) | |
{ | |
$this->repository = $repository; | |
} | |
/** | |
* get list of all the posts. | |
* | |
* @param $request: Illuminate\Http\Request | |
* @return json response | |
*/ | |
public function index(Request $request) | |
{ | |
$items = $this->repository->paginate($request); | |
return response()->json(['items' => $items]); | |
} | |
/** | |
* store post data to database table. | |
* | |
* @param $request: App\Http\Requests\CreatePostRequest | |
* @return json response | |
*/ | |
public function store(CreatePostRequest $request) | |
{ | |
try { | |
$item = $this->repository->store($request); | |
return response()->json(['item' => $item]); | |
} catch (Exception $e) { | |
return response()->json(['message' => $e->getMessage()], $e->getStatus()); | |
} | |
} | |
/** | |
* update post data to database table. | |
* | |
* @param $request: App\Http\Requests\UpdatePostRequest | |
* @return json response | |
*/ | |
public function update($id, UpdatePostRequest $request) | |
{ | |
try { | |
$item = $this->repository->update($id, $request); | |
return response()->json(['item' => $item]); | |
} catch (Exception $e) { | |
return response()->json(['message' => $e->getMessage()], $e->getStatus()); | |
} | |
} | |
/** | |
* get single item by id. | |
* | |
* @param integer $id: integer post id. | |
* @return json response. | |
*/ | |
public function show($id) | |
{ | |
try { | |
$item = $this->repository->show($id); | |
return response()->json(['item' => $item]); | |
} catch (Exception $e) { | |
return response()->json(['message' => $e->getMessage()], $e->getStatus()); | |
} | |
} | |
/** | |
* delete post by id. | |
* | |
* @param integer $id: integer post id. | |
* @return json response. | |
*/ | |
public function delete($id) | |
{ | |
try { | |
$this->repository->delete($id); | |
return response()->json([], 204); | |
} catch (Exception $e) { | |
return response()->json(['message' => $e->getMessage()], $e->getStatus()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment