$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'];