Beispiel #1
0
 $app->post('/', function () use($app, $em, $validator, $contentType, $erros) {
     $app->response->headers->set('Content-Type', 'application/vnd.api+json; version 1');
     $schema = $validator['retriever']->retrieve('file://' . $validator['dir'] . '/farmacias/post.json');
     $data = json_decode($app->request->getBody());
     $r = null;
     if ($app->request->headers->get('Content-Type') === $contentType['json'] || $app->request->headers->get('Content-Type') === $contentType['jsonapi']) {
         $validator['validator']->check($data, $schema);
         if ($validator['validator']->isValid()) {
             $farmacia = json_decode($app->request->getBody(), true);
             $nome = $farmacia['nome'];
             $descricao = $farmacia['descricao'];
             $em->getConnection()->beginTransaction();
             $farmaciaCriada = true;
             try {
                 $f = new Farmacia();
                 $f->setNome($nome);
                 $f->setDescricao($descricao);
                 $f->setDataDeActualizacao(new DateTime('NOW'));
                 $f->setDataDeCriacao(new DateTime('NOW'));
                 $em->persist($f);
                 $em->flush();
                 $em->getConnection()->commit();
             } catch (Exception $e) {
                 $em->getConnection()->rollback();
                 $farmaciaCriada = false;
             }
             if ($farmaciaCriada) {
                 $r = array('farmacias' => array('id' => $f->getId(), 'nome' => $f->getNome(), 'descricao' => $f->getDescricao(), 'dataDeCriacao' => $f->getDataDeCriacao()->format('Y-m-d H:i:s'), 'dataDeActualizacao' => $f->getDataDeActualizacao()->format('Y-m-d H:i:s')));
                 $app->response->setStatus(201);
             } else {
                 $r = $erros['criacao'];