setRootDir(__DIR__.'/../')->configure(); $app ->post('/api/sms/create', function (Request $request) use ($app) { if (!$app['sms.validator']->validateRequest($request)) { return $app->abort(422, 'Invalid request.'); } $persisted = $app['sms.factory']->createByRequest($request); if (!$persisted) { return $app->abort(500, 'An error occured.'); } else { return $app->json([ 'status' => true, 'code' => 201, ], 201); } }) ->bind('api_sms_create'); $app ->delete('/api/sms/delete/{id}', function (Request $request, $id) use ($app) { $object = $app['sms.factory']->get($id); if (!$object) { return $app->json([ 'status' => false, 'code' => 404, ], 404); } $app['sms.factory']->remove($object); return $app->json([ 'status' => true, 'code' => 204, ], 204); }) ->bind('api_sms_delete') ->assert('id', '\d+') ->convert('id', function ($value) { return (int) $value; }); $app ->get('/api/sms/list', function (Request $request) use ($app) { $objects = $app['sms.factory']->getAll()->getData(); $data = []; foreach ($objects as $object) { $data[] = [ 'id' => $object->getId(), 'sender' => $object->getSender(), 'message' => $object->getMessage(), 'received_at' => $object->getTime(), 'notified_at' => $object->getCreatedAt()->getTimestamp(), ]; } return $app->json($data); }) ->bind('api_sms_list'); $app->run();