// Código do meus-servicos.js
angular.module('meusServicos', ['ngResource']) .factory('recursoFoto', function($resource) {
return $resource('v1/fotos/:fotoId', null, { update: { method: 'PUT' } }); }) .factory('cadastroDeFotos', function(recursoFoto, $q){
var servico = {};
servico.cadastrar = function(foto){ return $q(function(resolve, reject){ if(foto._id){ recursoFoto.update({fotoId: foto._id}, foto, function(){ resolve({ mensagem: 'Foto' + foto.titulo + ' atualizada com sucesso.', inclusao: false }); }, function(erro){ console.log(erro); reject("Não foi possível alterar a foto " + foto.titulo); }); }else{ recursoFoto.save(foto, function(){ resolve({ mensagem: 'Foto' + foto.titulo + ' incluída com sucesso.', inclusao: true }) }, function(erro){ console.log(erro); reject({ mensagem: 'Não foi possível incluir a foto.' }); }); } }); }; return servico; });
// Código do controller foto-controller.js - Os comentários são para estudo
angular.module('alurapic').controller('FotoController', function($scope, $routeParams, recursoFoto){
$scope.foto = {}; $scope.mensagem ='';
if($routeParams.fotoId){ /Sintaxe com $resource/ recursoFoto.get({fotoId : $routeParams.fotoId}, function(foto){ $scope.foto = foto; }, function(erro){ console.log(erro); $scope.mensagem = 'Não foi possível obter a foto.'; }); /Sintaxe com $htpp $http.get('v1/fotos/' + $routeParams.fotoId) .success(function(foto){ $scope.foto = foto; }) .error(function(erro){ console.log(erroe); $scope.mensagem = 'Não foi possível obter a foto.'; }); / }
$scope.submeter = function(){
if($scope.formulario.$valid){
cadastroDeFotos.cadastrar($scope.foto) .then(function(dados){ $scope.mensagem = dados.mensagem; if(dados.inclusão) $scope.foto = {}; $scope.focado = true; }) .catch(function(dados){ $scope.mensagem = dados.mensagem; });
/* if($scope.foto._id){ //Antiga sintaxe sem utilizar o serviço com promessa criada.
//Sintaxe com $resource recursoFoto.update({fotoId : $scope.foto._id}, $scope.foto, function(){ $scope.mensagem = 'Foto atualizada com sucesso!'; }, function(erro){ $scope.mensagem = 'Foto não pode ser atualizada'; console.jog(erro); });
//Sintaxe com $http $http.put('v1/fotos/' + $scope.foto._id, $scope.foto) .success(function(){ $scope.foto = {}; $scope.mensagem = 'Foto atualizada com sucesso!'; }) .error(function(){ $scope.mensagem = 'Foto não pode ser atualizada'; console.jog(error); });
} else {
//Sintaxe com $resource recursoFoto.save($scope.foto, function(){ $scope.foto = {}; $scope.mensagem = 'Foto cadastrada com sucesso!'; }, function(erro){ $scope.mensagem = 'Foto não cadastrada'; console.jog(erro); });
//Sintaxe com $http $http.post('v1/fotos', $scope.foto) .success(function(){ $scope.foto = {}; $scope.mensagem = 'Foto cadastrada com sucesso!'; }) .error(function(){ $scope.mensagem = 'Foto não cadastrada'; console.jog(error); });
} */
} };
});