/**
* @ngdoc controller
* @name AdminTelegramUsuariosCtrl
* @module s4c.controllers.AdminTelegramUsuariosCtrl
*
* @description
* `AdminTelegramUsuariosCtrl` Controller da administração dos usuários do telegram
*
*
*/
(function () {
'use strict';
function AdminTelegramUsuariosCtrl($scope, TelegramService, $q) {
$scope.userViewActive = false;
$scope.userEditActive = false;
$scope.grupos = {};
$scope.usuarios = {};
$scope.usuario = {};
$scope.usuariosPendentes = [];
$scope.usuariosAceitos = [];
$scope.res = $scope.$root.res;
/**
* @method getUsers
*/
TelegramService.getUsers().then(function (usuarios) {
$scope.usuariosPendentes = usuarios.filter((usuario) => {
if (usuario.UsuarioMensageriaExternas.length > 0 &&
!usuario.UsuarioMensageriaExternas[0].ativo) {
usuario.usuarioMensageriaExternaIdMensageria =
usuario.UsuarioMensageriaExternas[0].idMensageria;
return usuario;
}
});
$scope.usuariosAceitos = usuarios.filter((usuario) => {
if (usuario.UsuarioMensageriaExternas.length > 0 &&
usuario.UsuarioMensageriaExternas[0].ativo) {
usuario.usuarioMensageriaExternaIdMensageria =
usuario.UsuarioMensageriaExternas[0].idMensageria;
return usuario
}
});
$scope.usuarios = usuarios;
});
/**
* @method getGroups
* @param {*} grupos
*/
TelegramService.getGroups().then(function (grupos) {
$scope.grupos = grupos;
});
/**
* @method editUser
* @param {*} usuario
*/
$scope.editUser = function editUser(usuario) {
$scope.userViewActive = true;
$scope.userEditActive = true;
$scope.usuario = usuario;
}
/**
* @method allowUser
* @param {*} id
*/
$scope.allowUser = (id) => {
TelegramService.changeStatusUsuarioMensageriaExterna(id, true)
.then(() => {
let usuario = _.find($scope.usuariosPendentes, { id: id });
let index = $scope.usuariosPendentes.indexOf(usuario);
$scope.usuariosPendentes.splice(index, 1);
$scope.usuariosAceitos.push(usuario);
});
};
/**
* @method disallowUser
* @param {*} id
*/
$scope.disallowUser = (id) => {
TelegramService.removeUsuarioMensageriaExterna(id)
.then(() => {
let usuario = _.find($scope.usuariosPendentes, { id: id });
let index = $scope.usuariosPendentes.indexOf(usuario);
$scope.usuariosPendentes.splice(index, 1);
});
};
/**
* @method cancelEditUser
*
*/
$scope.cancelEditUser = function cancelEditUser() {
$scope.userEditActive = false;
}
/**
* @method viewUser
* @param {*} usuario
*/
$scope.viewUser = function viewUser(usuario) {
$scope.userViewActive = true;
$scope.userEditActive = false;
$scope.usuario = usuario;
}
/**
* @method saveUser
* @param {*} usuario
*/
$scope.saveUser = function saveUser(usuario) {
// Get the list of groups from the user
TelegramService.getGroupsFromUser(usuario.id).then(function (grupos) {
$scope.usuario.grupos = grupos;
});
// Track removed groups
// Track added groups
// Create a queue to save deleted and added groups
var processGroup = $q.all([
TelegramService.deleteUsersFromGroup(grupo.id, [$scope.usuario]),
TelegramService.addUsersToGroup(grupo.id, [$scope.usuario])
]);
// Update the list of users
processGroup.then(function (result) {
var deletedUsersReq = result[0],
addedUsersReq = result[1];
// Add and remove groups from groups list
});
}
}
angular.module('s4c.telegram')
.controller('AdminTelegramUsuariosCtrl', AdminTelegramUsuariosCtrl);
AdminTelegramUsuariosCtrl.$inject = ['$scope', 'TelegramService', '$q'];
}());