portabilis/i-educar

Erro no endpoint `/module/Api/Escola?oper=get&resource=escolas`

Closed this issue · 4 comments

API GET no POSTMAN:
https:/letsite.com/module/Api/Escola?access_key=KEY&oper=get&resource=escolas&instituicao_id=1&ano=2022&curso_id=3&serie_id=8&turma_turno_id=2

DESCRIÇÃO:
Estudando a API do seu excelente projeto, e percebi que nesta consulta ele espera um array, mas recebe é um Boolean.
image

Também tentei não passar um inteiro, e sim uma string, porém não funcionou:

{
    "oper": "get",
    "resource": "escolas",
    "msgs": [
        {
            "msg": "Exception: Erro ao preparar consulta ( SELECT DISTINCT cod_escola\n                FROM pmieducar.escola e\n                INNER JOIN pmieducar.escola_curso ec\n                ON (e.cod_escola = ec.ref_cod_escola\n                AND $1 = ANY(ec.anos_letivos)\n                )\n                INNER JOIN pmieducar.curso c ON (c.cod_curso = ec.ref_cod_curso)\n                INNER JOIN pmieducar.escola_serie es ON (\n                es.ref_cod_escola = e.cod_escola\n                AND $1 = ANY(es.anos_letivos)\n                )\n                INNER JOIN pmieducar.serie s ON (s.cod_serie = es.ref_cod_serie)\n                INNER JOIN pmieducar.turma t ON (s.cod_serie = t.ref_ref_cod_serie AND t.ref_ref_cod_escola = e.cod_escola )\n                INNER JOIN pmieducar.escola_ano_letivo eal ON(e.cod_escola = eal.ref_cod_escola)\n                WHERE t.ano = $1\n                AND t.turma_turno_id = $2\n                AND c.cod_curso = $3\n                AND e.ref_cod_instituicao = $4\n                AND s.cod_serie = $5\n                AND ec.ativo = 1\n                AND c.ativo = 1\n                AND e.ativo = 1\n                AND es.ativo = 1\n                AND s.ativo = 1\n                AND t.ativo = 1\n                AND eal.ativo = 1\n                AND eal.andamento <> 2\n                AND eal.ano = $1) no banco de dados: Exception: SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for type integer: \"\"2\"\"\nCONTEXT:  unnamed portal parameter $2 = '...' (SQL:  SELECT DISTINCT cod_escola\n                FROM pmieducar.escola e\n                INNER JOIN pmieducar.escola_curso ec\n                ON (e.cod_escola = ec.ref_cod_escola\n                AND :a = ANY(ec.anos_letivos)\n                )\n                INNER JOIN pmieducar.curso c ON (c.cod_curso = ec.ref_cod_curso)\n                INNER JOIN pmieducar.escola_serie es ON (\n                es.ref_cod_escola = e.cod_escola\n                AND :a = ANY(es.anos_letivos)\n                )\n                INNER JOIN pmieducar.serie s ON (s.cod_serie = es.ref_cod_serie)\n                INNER JOIN pmieducar.turma t ON (s.cod_serie = t.ref_ref_cod_serie AND t.ref_ref_cod_escola = e.cod_escola )\n                INNER JOIN pmieducar.escola_ano_letivo eal ON(e.cod_escola = eal.ref_cod_escola)\n                WHERE t.ano = :a\n                AND t.turma_turno_id = :b\n                AND c.cod_curso = :c\n                AND e.ref_cod_instituicao = :d\n                AND s.cod_serie = :e\n                AND ec.ativo = 1\n                AND c.ativo = 1\n                AND e.ativo = 1\n                AND es.ativo = 1\n                AND s.ativo = 1\n                AND t.ativo = 1\n                AND eal.ativo = 1\n                AND eal.andamento <> 2\n                AND eal.ano = :a)",
            "type": "error"
        }
    ],
    "any_error_msg": true
}

OBSERVAÇÕES:
Estou utilizando como instrução de consumo da api o seu wiki:
https://github.com/portabilis/i-educar/wiki/API#recuperar-escolas

O meu objetivo é apenas conseguir listar todas as escolas registradas no i-educar para exibir em um website.

AMBIENTE:

  • Plataforma utilizada (Docker, instalação direta): DOCKER
  • Sistema operacional e versão (Ubuntu 16.04, Windows 7): UBUNTU 20
  • Navegador e versão (Chrome 75): LATEST
  • Outros detalhes importantes: LOCALHOST também não funciona.

@hermesalvesbr obrigado por abrir a issue e contribuir com o projeto.

Qual a versão do i-Educar que está rodando?

Estou utilizando a última versão deste repositório: 2.7.4

@hermesalvesbr evoluímos em alguns o código, ainda não fechamos a release mas você poderia testar a versão 2.8?

Encerrando, qualquer necessidade pode reabrir a issue ;)