Search in sources :

Example 1 with ProcessoValido

use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.

the class ProcessoValidarGet method run.

@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
    boolean fPorCaptcha = false;
    if (req.captcha != null) {
        if (!Utils.verifyCaptcha(req.captcha))
            throw new PresentableUnloggedException("Token de reCaptcha inválido");
        fPorCaptcha = true;
    } else if (isValidToken(req.token, req.numero)) {
        resp.token = req.token;
    } else
        AutenticarPost.assertAuthorization();
    String usuario = null;
    try {
        Usuario u = AutenticarPost.assertUsuario();
        usuario = u.usuario;
    } catch (Exception e) {
        usuario = BalcaojusServlet.INSTANCE.getProperty("public.username");
    }
    String[] numeros = (req.numero != null && req.numero.trim() != "") ? req.numero.split(",") : null;
    if (numeros != null && numeros.length > 100)
        throw new PresentableException("Não é permitido validar mais de 100 números de processos em uma única operação");
    validar(usuario, numeros, req.nome, req.tipodedocumento, req.documento, req.oab, resp);
    if (fPorCaptcha && resp.list != null && resp.list.size() > 0) {
        StringBuilder sb = new StringBuilder();
        for (ProcessoValido p : resp.list) {
            if (sb.length() > 0)
                sb.append(",");
            sb.append(p.numero);
        }
        resp.token = jwt(sb.toString());
    }
}
Also used : Usuario(br.jus.trf2.balcaojus.AutenticarPost.Usuario) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) PresentableException(com.crivano.swaggerservlet.PresentableException) JWTVerifyException(com.auth0.jwt.JWTVerifyException) PresentableException(com.crivano.swaggerservlet.PresentableException) SignatureException(java.security.SignatureException) IOException(java.io.IOException) PresentableUnloggedException(com.crivano.swaggerservlet.PresentableUnloggedException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) InvalidKeyException(java.security.InvalidKeyException) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)

Example 2 with ProcessoValido

use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.

the class ProcessoValidarGet method validar.

public static void validar(String usuario, String[] numeros, String nome, String tipoDeDocumento, String documento, String oab, IProcessoValidarGet.Response resp) throws Exception, PresentableException {
    Map<String, SwaggerCallParameters> mapp = new HashMap<>();
    int timeout;
    String url;
    String docvalido;
    String context;
    if (documento != null) {
        docvalido = documento.replaceAll("[^0-9]", "");
        if (docvalido.isEmpty())
            throw new PresentableException("Termo de busca inválido !! " + documento);
        url = "/processo/consultar?documento=" + URLEncoder.encode(docvalido, "UTF-8").replace("+", "%20");
        context = " - consulta processo por cpf/cnpj da parte";
        timeout = 30000;
    } else if (nome != null) {
        url = "/processo/consultar?nomeparte=" + URLEncoder.encode(nome.toUpperCase(), "UTF-8").replace("+", "%20");
        context = " - consulta processo por nome da parte";
        timeout = 30000;
    } else if (oab != null) {
        url = "/processo/consultar?oab=" + URLEncoder.encode(oab.toUpperCase(), "UTF-8").replace("+", "%20");
        context = " - consulta processo por oab";
        timeout = 30000;
    } else {
        IUsuarioUsernameProcessoNumerosGet.Request q = new IUsuarioUsernameProcessoNumerosGet.Request();
        q.numeros = StringUtils.join(numeros, ",");
        url = "/processo/" + q.numeros;
        context = " - validar número de processo";
        timeout = 15000;
    }
    url = url.replace("_", "%20");
    for (String system : Utils.getSystems()) {
        mapp.put(system, new SwaggerCallParameters(system + context, Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + usuario + url, null, IUsuarioUsernameProcessoNumerosGet.Response.class));
    }
    SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, timeout);
    resp.status = Utils.getStatus(mcr);
    // resp.list = new ArrayList<>();
    Map<String, ProcessoValido> processosRecebidos = new HashMap<>();
    ProcessoValido proc;
    // TODO: Falta lógica para escolher o mais importante dos resultados.
    for (String system : mcr.responses.keySet()) {
        IUsuarioUsernameProcessoNumerosGet.Response rl = (IUsuarioUsernameProcessoNumerosGet.Response) mcr.responses.get(system);
        if (rl.list == null || rl.list.size() == 0)
            continue;
        for (Processo r : rl.list) {
            if (r.numero == null || r.perdecompetencia)
                continue;
            if (processosRecebidos.containsKey(r.numero)) {
                // considera o processo no Eproc ao decidir competência
                proc = processosRecebidos.get(r.numero);
                if (proc.sistema.contains("apolo") && system.contains("eproc")) {
                    processosRecebidos.remove(r.numero);
                } else if (proc.sistema.contains("eproc") && system.contains("apolo"))
                    continue;
                else
                    throw new PresentableException("Não foi possível identificar qual sistema tem competência para o processo: " + r.numero, mcr.status);
            }
            ProcessoValido pv = new ProcessoValido();
            pv.numero = r.numero;
            pv.sistema = system;
            pv.orgao = r.orgao;
            pv.unidade = r.unidade != null ? r.unidade.trim() : null;
            pv.localnaunidade = r.localNaUnidade;
            pv.segredodejustica = r.segredodejustica;
            pv.segredodejusticadesistema = r.segredodejusticadesistema;
            pv.segredodejusticaabsoluto = r.segredodejusticaabsoluto;
            pv.usuarioautorizado = r.usuarioautorizado;
            pv.digital = r.eletronico;
            pv.sentenciado = r.sentenciado;
            pv.baixado = r.baixado;
            pv.cdas = r.cdas;
            if (r.dataultimomovimento != null)
                pv.dataultimomovimento = Utils.parsearDataHoraMinuto(r.dataultimomovimento);
            pv.autor = Texto.maiusculasEMinusculas(r.autor);
            pv.reu = Texto.maiusculasEMinusculas(r.reu);
            processosRecebidos.put(pv.numero, pv);
        }
    }
    resp.list.addAll(processosRecebidos.values());
    resp.datavalidacao = new Date();
}
Also used : HashMap(java.util.HashMap) SwaggerCallParameters(com.crivano.swaggerservlet.SwaggerCallParameters) IUsuarioUsernameProcessoNumerosGet(br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameProcessoNumerosGet) Date(java.util.Date) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido) Processo(br.jus.trf2.sistemaprocessual.ISistemaProcessual.Processo) PresentableException(com.crivano.swaggerservlet.PresentableException) SwaggerMultipleCallResult(com.crivano.swaggerservlet.SwaggerMultipleCallResult)

Example 3 with ProcessoValido

use of br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido in project balcaovirtual by trf2-jus-br.

the class Notificar method notificarUsuario.

private void notificarUsuario(Dao dao, String usuario, List<String> tokens, Map<String, Date> processos, List<ProcessoValido> list) throws Exception {
    // Calcular o body
    int c = 0;
    for (ProcessoValido pv : list) {
        Date dt = processos.get(pv.numero);
        if (dt == null || dt.before(pv.dataultimomovimento))
            c++;
    }
    if (c == 0)
        return;
    String body = usuario + " possui " + c + (c > 1 ? " processos favoritos com movimentos novos." : " processo favorito com movimentos novos.");
    // SwaggerUtils.log(Notificar.class).info(body);
    String titulo = BalcaojusServlet.INSTANCE.getProperty("notificar.titulo");
    if (titulo != null) {
        String clickAction = BalcaojusServlet.INSTANCE.getProperty("notificar.url");
        String icon = BalcaojusServlet.INSTANCE.getProperty("base.url") + "/assets/icon-256x256.png";
        int sucessos = NotificarFirebase.enviarNotificacao(dao, tokens, titulo, body, clickAction, icon);
    // SwaggerUtils.log(Notificar.class)
    // .info(sucessos + (sucessos == 1 ? " notificação enviada." : " notificações
    // enviadas."));
    }
}
Also used : Date(java.util.Date) ProcessoValido(br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)

Aggregations

ProcessoValido (br.jus.trf2.balcaojus.IBalcaojus.ProcessoValido)3 PresentableException (com.crivano.swaggerservlet.PresentableException)2 Date (java.util.Date)2 Usuario (br.jus.trf2.balcaojus.AutenticarPost.Usuario)1 IUsuarioUsernameProcessoNumerosGet (br.jus.trf2.sistemaprocessual.ISistemaProcessual.IUsuarioUsernameProcessoNumerosGet)1 Processo (br.jus.trf2.sistemaprocessual.ISistemaProcessual.Processo)1 JWTVerifyException (com.auth0.jwt.JWTVerifyException)1 PresentableUnloggedException (com.crivano.swaggerservlet.PresentableUnloggedException)1 SwaggerCallParameters (com.crivano.swaggerservlet.SwaggerCallParameters)1 SwaggerMultipleCallResult (com.crivano.swaggerservlet.SwaggerMultipleCallResult)1 IOException (java.io.IOException)1 InvalidKeyException (java.security.InvalidKeyException)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 SignatureException (java.security.SignatureException)1 HashMap (java.util.HashMap)1