(function () {
'use strict';
/**
* @ngdoc directives
* @name TarefaService
* @module s4c.directives.minhas-tarefas.TarefasService
*
* @description
* `TarefaService` gerencia a comunicação entre tarefas no Frontend
* e a API do backend.
*/
function TarefaService($http, $q, API_ENDPOINT, Usuario) {
/**
*
* @method addTarefa
*
* @returns {Promise} Promise que resolve com a nova tarefa criada.
*/
function addTarefa(obj) {
var deferred = $q.defer();
$http.put(API_ENDPOINT + 'tarefas/', obj)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
*
*
* @method addTarefa
*
* @params {obj} obj Objeto contendo campos da tarefa a serem
* atualizados.
*
* @returns {Promise} Promise que resolve com a tarefa atualizada.
*/
function updateTarefa(obj) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'tarefas/', obj)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
*
*
* @method findById
*
* @params {integer} id identificador unico da tarefa.
*
* @returns {Promise} Promise que resolve com a tarefa buscada.
*/
function findById(id) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'tarefas/' + id)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/**
*
*
* @method getUsuarios
*
* @returns {Promise} Promise que resolve com uma lista de usuários
* do sistema S4C.
*/
function getUsuarios() {
return Usuario.obterShortUsers();
}
/**
*
*
* @method enviarMsg
*
* @params {obj} msg objeto contendo informações sobre a mensagem a ser
* enviada.
* @returns {Promise} Promise que resolve com o retorno do envio da
* mensagem.
*/
function enviarMsg(msg) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'email/', msg)
.then(function (res) {
if (typeof res.data === 'object') {
deferred.resolve(res.data);
} else {
deferred.reject(res);
}
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}
/*function findAndDelete(id) {
var deferred = $q.defer();
$http.delete(API_ENDPOINT + 'tarefas/' + id)
.then(function (res) {
deferred.resolve(res.data);
}, function (err) {
deferred.reject(err);
});
return deferred.promise;
}*/
/**
* @method addAlarmeTarefas
* @param {*} id
* @param {*} alarme
*/
function addAlarmeTarefas(id, alarme) {
var deferred = $q.defer();
$http.post(API_ENDPOINT + 'alarme/rota/' + id, alarme)
.then(function (response) {
if (typeof response.data === 'object') {
deferred.resolve(response.data);
} else {
deferred.reject();
}
}, function (error) {
deferred.reject(error);
});
return deferred.promise;
}
/**
* @method getAlarmesTarefas
* @param {*} id
*/
function getAlarmesTarefas(id) {
var deferred = $q.defer();
$http.get(API_ENDPOINT + 'alarme/rota/' + id)
.then(function (response) {
deferred.resolve(response);
});
return deferred.promise;
}
/**
* @method deleteAlarmeTarefas
* @param {*} alarmeId
*/
function deleteAlarmeTarefas(alarmeId) {
var deferred = $q.defer();
$http.delete(API_ENDPOINT + 'alarme/rota/' + alarmeId)
.then(function (response) {
deferred.resolve(response);
});
return deferred.promise;
}
return {
findById: findById,
addTarefa: addTarefa,
updateTarefa: updateTarefa,
getUsuarios: getUsuarios,
addAlarmeTarefas: addAlarmeTarefas,
getAlarmesTarefas: getAlarmesTarefas,
deleteAlarmeTarefas: deleteAlarmeTarefas,
enviarMsg: enviarMsg
};
}
TarefaService.$inject = [
'$http',
'$q',
'API_ENDPOINT',
'Usuario'
];
angular.module('s4c.components.tarefas')
.service('TarefaService', TarefaService);
})();