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.
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 ;)