function UserService(tokenService,httpService, routerService){
this.tokenService = tokenService;
this.httpService = httpService;
this.routerService = routerService;
this.init();
}
UserService.prototype = {
init : function(){
console.log('Usuario logado? '+ this.isLogged());
//!this.isLogged() && this.goToLogin();
},
goToLogin : function(){
var loginPage = '/ServicosSebrae/login.jsp';
if ( window.location.pathname != loginPage ) {
//this.routerService.navigate(loginPage);
}
},
setToken : function(token){
this.tokenService.setToken(token);
},
isLogged : function(){
return this.tokenService.hasToken();
},
login : function(data){
var tipoVisualizacao = $("#tipoVisualizacao").val();
var redirectTo = $("#redirectTo").val();
var urlToLogin = localStorage.getItem('storeUrlToLogin');
var self = this;
var loading = FLUIGC.loading(window, {
textMessage : "
Conectando...
"
});
loading.show();
var cpf = data['cpf'];
self.httpService
.post('/ServicosSebrae/api/users/login',data)
.then(function(data, textStatus, jqXHR){
console.log('then');
console.log('data',data);
console.log('textStatus',textStatus);
console.log('jqXHR',jqXHR);
loading.hide();
if (data['x-access-token'] == "LOGIN-ERROR"){
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, por favor verifique seu CPF e SENHA','danger');
}else if(data['x-access-token'] == "ERRO-SERVICO-SAS"){
FluigUtils.sendToast('Erro na comunicação com o sistema SaS. Entre em contato com o administrador!','danger');
}else if(data['x-access-token'] == "USUARIO-NAO-CADASTRADO-SAS"){
FluigUtils.createConfirm({
message: 'Para ter acesso aos serviços dispobilizados pelo Sebrae-GO, precisamos que realize seu cadastro.
Vamos fazer isso agora?',
title:'Primeiro Acesso?',
labelYes: 'Sim',
labelNo: 'Não'
}).then(function(result){
if ( result ) self.routerService.navigate('/ServicosSebrae/cadastro.jsp?cpf='+cpf.replace(/[^0-9]/g,'')+'&tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo);
});
}else if(data['x-access-token'] == "USUARIO-NAO-CADASTRADO-FLUIG"){
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, enviamos um email para ('+data['email']+') de confirmação, por favor acesse o link enviado.','danger');
}else{
// FluigUtils.createConfirm({
// message: 'É importante manter as informações de cadastro atualizadas! Gostaria de atualizar?',
// title: 'Informações de Cadastro',
// labelYes: 'Sim',
// labelNo: 'Não'
// }).then(function(result){
self.setToken(data['x-access-token']);
var token = self.tokenService.getToken();
var tokenDecoded = self.tokenService.getTokenDecoded();
// console.log(tokenDecoded);
// if ( result ) {
// self.routerService.navigate('/ServicosSebrae/cadastro.jsp?tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token);
// } else {
//self.routerService.navigate('/ServicosSebrae/page-wrapper/index.jsp?page=inicio');
var urlToRedirect = localStorage.getItem('urlToRedirect');
var urlToLogin = localStorage.getItem('storeUrlToLogin');
var promise = Promise.resolve();
if ( urlToRedirect && urlToLogin ) {
redirectTo = urlToRedirect;
promise = self.httpService
.get(location.origin+urlToLogin+'?token='+token);
}
promise
.then(function(){
var jsonUser = JSON.parse(tokenDecoded.iss);
var cpf = jsonUser.cpf;
var senha = jsonUser.senha;
self.routerService.navigate("/ServicosSebrae/Login?login="+cpf+"&senha="+senha+"&tipoVisualizacao="+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token+'&urlToLogin='+urlToLogin);
})
// }
// });
}
})
.catch(function(jqXHR){
console.log('jqXHR',jqXHR);
loading.hide();
self.tokenService.removeToken();
if ( jqXHR.status == 401 ) {
self.tokenService.removeToken();
FluigUtils.createConfirm({
message: 'Usuário não encontrado. Para acessar os Serviços do Sebrae, é necessário realizar um cadastro.Você gostaria de se cadastrar?',
title: 'Acesso aos Portais do Sebrae',
labelYes: 'Sim',
labelNo: 'Não'
}).then(function(result){
if ( result ) {
self.routerService.navigate('/ServicosSebrae/cadastro.jsp?tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token+'&urlToLogin='+urlToLogin);
}
});
} else {
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, por favor verifique seu CPF e SENHA','danger');
}
});
},
logout : function(){
this.tokenService.removeToken();
this.goToLogin();
},
verificaCPFSaS : function(data){
var tipoVisualizacao = $("#tipoVisualizacao").val();
var cpf = data.cpf;
var self = this;
var loading = FLUIGC.loading(window, {
textMessage : "Conectando...
"
});
loading.show();
return self.httpService
.post('/ServicosSebrae/api/users/verificaCPFSaS',data)
.then(function(data, textStatus, jqXHR){
console.log('then');
console.log('data',data);
console.log('textStatus',textStatus);
console.log('jqXHR',jqXHR);
loading.hide();
if (data['x-access-token'] == "NAO-EXISTE-SAS"){
self.routerService.navigate('/ServicosSebrae/cadastro.jsp?cpf='+cpf.replace(/[^0-9]/g,'')+'&tipoVisualizacao='+tipoVisualizacao);
}else if (data['x-access-token'] == "USUARIO-NAO-CADASTRADO-FLUIG"){
var email = data['email'];
var msg = 'Enviamos um email para '+email+'.
Por favor, acesse o link em seu email para confirmar seus dados';
FluigUtils.createAlert({
message: msg,
title: 'Verificamos que seus dados precisam ser confirmados',
label: 'OK'
});
}else if (data['x-access-token'] == "EMAIL-NAO-ENCONTRADO-NO-SAS"){
FluigUtils.sendToast('Verificamos que você possui cadastro no Sistema de Atendimento do SEBRAE Goiás, mas não tem registro de e-mail válido. Entre em contato com a nossa central de atendimento para atualização segura dos seus dados cadastrais, e posteriormente acesse a operação desejada no portal de serviços. Telefone: 0800 570 0800','danger');
} else if (data["x-access-token"] == 'EXISTE-SAS') {
FluigUtils.sendToast('Verificamos que você possui cadastro no Portal, caso não se lembre da sua senha clique no botão de Clique aqui','danger');
}
})
.catch(function(jqXHR){
loading.hide();
console.log('jqXHR',jqXHR);
});
},
primeiroAcesso : function(data){
var tipoVisualizacao = $("#tipoVisualizacao").val();
var self = this;
self.httpService
.post('/ServicosSebrae/api/users/primeiroAcesso',data)
.then(function(data, textStatus, jqXHR){
console.log('then');
console.log('data',data);
console.log('textStatus',textStatus);
console.log('jqXHR',jqXHR);
if (data['x-access-token'] == "LOGIN-ERROR"){
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, por favor verifique seu CPF e SENHA','danger');
}else{
//Estamos com o token criado, então chamamos a pagina de cadastro
//para que o usuário realize o vinculo de PJ
self.setToken(data['x-access-token']);
var tokenDecoded = self.tokenService.getTokenDecoded();
console.log(tokenDecoded);
var jsonUser = JSON.parse(tokenDecoded.iss);
var cpf = jsonUser.cpf;
var senha = jsonUser.senha;
self.routerService.navigate('/ServicosSebrae/cadastro.jsp?tipoVisualizacao='+tipoVisualizacao);
}
}).catch(function(jqXHR){
console.log("Deu erro");
});
},
getTokenFromSession:function(){
return this.httpService.get('/ServicosSebrae/api/users/token');
},
loginCPFAmei : function(data){
var tipoVisualizacao = "";
var redirectTo = "";//$("#redirectTo").val();
var urlToLogin = "";//localStorage.getItem('storeUrlToLogin');
self.httpService
.post('/ServicosSebrae/api/users/loginCPFAmei',data)
.then(function(data, textStatus, jqXHR){
console.log('then');
console.log('data',data);
console.log('textStatus',textStatus);
console.log('jqXHR',jqXHR);
if (data['x-access-token'] == "LOGIN-ERROR"){
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, por favor verifique seu CPF e SENHA','danger');
}else if(data['x-access-token'] == "ERRO-SERVICO-SAS"){
FluigUtils.sendToast('Erro na comunicação com o sistema SaS. Entre em contato com o administrador!','danger');
}else if(data['x-access-token'] == "USUARIO-NAO-CADASTRADO-SAS"){
FluigUtils.createConfirm({
message: 'Para ter acesso aos serviços dispobilizados pelo Sebrae-GO, precisamos que realize seu cadastro.
Vamos fazer isso agora?',
title:'Primeiro Acesso?',
labelYes: 'Sim',
labelNo: 'Não'
}).then(function(result){
if ( result ) self.routerService.navigate('/ServicosSebrae/cadastro.jsp?cpf='+cpf.replace(/[^0-9]/g,'')+'&tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo);
});
}else if(data['x-access-token'] == "USUARIO-NAO-CADASTRADO-FLUIG"){
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, enviamos um email para ('+data['email']+') de confirmação, por favor acesse o link enviado.','danger');
}else{
// FluigUtils.createConfirm({
// message: 'É importante manter as informações de cadastro atualizadas! Gostaria de atualizar?',
// title: 'Informações de Cadastro',
// labelYes: 'Sim',
// labelNo: 'Não'
// }).then(function(result){
self.setToken(data['x-access-token']);
var token = self.tokenService.getToken();
var tokenDecoded = self.tokenService.getTokenDecoded();
// console.log(tokenDecoded);
// if ( result ) {
// self.routerService.navigate('/ServicosSebrae/cadastro.jsp?tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token);
// } else {
//self.routerService.navigate('/ServicosSebrae/page-wrapper/index.jsp?page=inicio');
var urlToRedirect = localStorage.getItem('urlToRedirect');
var urlToLogin = localStorage.getItem('storeUrlToLogin');
var promise = Promise.resolve();
if ( urlToRedirect && urlToLogin ) {
redirectTo = urlToRedirect;
promise = self.httpService
.get(location.origin+urlToLogin+'?token='+token);
}
promise
.then(function(){
var jsonUser = JSON.parse(tokenDecoded.iss);
var cpf = jsonUser.cpf;
var senha = jsonUser.senha;
self.routerService.navigate("/ServicosSebrae/Login?login="+cpf+"&senha="+senha+"&tipoVisualizacao="+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token+'&urlToLogin='+urlToLogin);
})
// }
// });
}
})
.catch(function(jqXHR){
console.log('jqXHR',jqXHR);
self.tokenService.removeToken();
if ( jqXHR.status == 401 ) {
self.tokenService.removeToken();
FluigUtils.createConfirm({
message: 'Usuário não encontrado. Para acessar os Serviços do Sebrae, é necessário realizar um cadastro.Você gostaria de se cadastrar?',
title: 'Acesso aos Portais do Sebrae',
labelYes: 'Sim',
labelNo: 'Não'
}).then(function(result){
if ( result ) {
self.routerService.navigate('/ServicosSebrae/cadastro.jsp?tipoVisualizacao='+tipoVisualizacao+'&redirectTo='+redirectTo+'&token='+token+'&urlToLogin='+urlToLogin);
}
});
} else {
FluigUtils.sendToast('Ocorreu um erro ao consultar seu login, por favor verifique seu CPF e SENHA','danger');
}
});
}
}
UserService.createInstance = function(){
var tokenService = new TokenService();
var routerService = new RouterService();
var httpService = HttpService.createInstance(tokenService);
return new UserService(tokenService,httpService,routerService);
}