12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace Controllers;
- use Silex\Application;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\HttpKernel\HttpKernelInterface;
- class TodosController {
- public function index(Application $app) {
- /** @var \Model $model */
- $model = $app['model'];
- $todos = $model->load();
- return $app->json(array_values($todos));
- }
- public function get(Application $app, $id) {
- /** @var \Model $model */
- $model = $app['model'];
- $todos = $model->load();
- $todo = $todos[$id] ?? NULL;
- return $app->json($todo);
- }
- public function put(Application $app, Request $request, int $id) {
- $sub = Request::create('/todos', 'POST', [], [], [], [], $request->getContent());
- return $app->handle($sub, HttpKernelInterface::SUB_REQUEST);
- }
- public function post(Application $app, Request $request) {
- /** @var \Model $model */
- $model = $app['model'];
- $data = json_decode($request->getContent(), true);
- $created = $model->save($data);
- return new Response('Saved', $created ? Response::HTTP_CREATED : Response::HTTP_OK);
- }
- public function delete(Application $app, int $id) {
- /** @var \Model $model */
- $model = $app['model'];
- $deleted = $model->delete($id);
- return new Response(
- $deleted ? 'Deleted' : 'It was not there anyway',
- Response::HTTP_OK
- );
- }
- }
|