domingo, 29 de dezembro de 2013

REST - Aula Prática - Excluir os Dados

Chegamos na última parte do nosso CRUD e para finalizarmos nosso projeto vamos eliminar os livros.

Mudar a Camada de Visão


Adicionamos mais um botão na tela da listagem dos dados. No arquivo index.html, na seção dos botões, inserimos a seguinte codificação:
   ...
    <div class="btn-group" ng-hide="nome == ''">
     <a class="btn btn-large" ng-click="excluir()">Excluir</a>
    </div>
   ...
Este botão será visível somente quando um livro for selecionado na listagem. Ao ser pressionado, chama a função excluir do arquivo controller.js. Adicionamos dentro da ListaCtrl (que controla a janela de listagem) uma função com a seguinte codificação:
function ListaCtrl($scope, $http) {
  ...
  $scope.excluir = function() {
    if ($scope.nome != '') {
      $http.delete('/excluir/' + $scope.nome)
        .success(function(data) {
          if (data == 'err') {
            alert("Houston, temos um problema");
          } else {
            alert("Livro Excluído...");
          }
          document.location.reload(true);
      })  
    }
  }  
}
Ao ser chamada, esta função executa o método delete da variável $http no qual é passado (como no processo da pesquisa da alteração) um caminho com o nome do livro selecionado. Verificamos a resposta se obteve ou não sucesso para eliminar o livro. O comando final reload é usado para reprocessar a página e fazer desaparecer da listagem o livro excluído.

Mudar a Camada de Dados


No arquivo funções do banco, adicionamos a função excluir (abaixo da função modificar):
exports.excluir = function (req, res) {
  livroModel.remove({nome: req.params.nom}).exec(function(err) {
    if (err) {
      callback(err);
    } else {
      res.send();
    }
  });
}
O comando remove do banco é usado para eliminar um registro com base nos parâmetros passados, funciona de mesma forma como o comando find já visto.

Mudar a Camada do Servidor


Adicionamos ao servidor a nova rota para exclusão:
app.delete('/excluir/:nom', routes.excluir);
E agora nos resta adicionar esse caminho no arquivo de rotas para disparar a função do banco, realizado através da seguinte codificação:
exports.excluir = function(req, res) {
  livro.excluir(req, res);
};
Pronto, observamos que a exclusão é o mais simples dos processos, assim, concluímos a letra D do nosso CRUD e com isso finalizamos nosso projeto. Espero que todas essas lições possam ser bem proveitosas para ajudar a divulgar a arquitetura REST.

Obrigado e até a próxima
Fernando Anselmo

0 comentários:

Postar um comentário