android-automate-api/web/index.php
2018-01-15 16:36:15 +01:00

74 lines
1.9 KiB
PHP

<?php
use App\Application;
use Symfony\Component\HttpFoundation\Request;
require_once __DIR__.'/../vendor/autoload.php';
$app = new Application();
$app->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();