# Integração SSP com Goiás Digital Links úteis: * https://api.goiasdigital.go.gov.br/api/ui/ * https://api.goiasdigital.go.gov.br/integracao-redirect-servico * https://api.goiasdigital.go.gov.br/integracao-api * https://api.goiasdigital.go.gov.br/integracao-formulario-externo ## CADASTRO DO ORGÃO O administrador do Goiás Digital deve cadastrar a SSP na integração. Após o cadastro, eles nos enviarão o **clientID** (codigo do cliente) e o **clientSecret** (chave de autenticação) ## REDIRECT - INTEGRAÇÃO PROCON (fora do nosso SSO) 1. Cadastrar a url de entrada no portal Atende Goiás. Ex: https://proconwebws.ssp.go.gov.br/goiasdigital/funcionalidade=denuncias 2. Quando o usuário acessar o serviço via portal Atende Goiás, será chamada a url acima com um parametro adicional chamado **protocoloAtendeGoias**. 3. O nosso endpoint **/goiasdigital** deve [chamar de volta](https://api.goiasdigital.go.gov.br/api/ui/#/ATENDE_GOIAS/getAddAndamentoAtendimento) a API do Goias Digital para **registar o atendimento**. 4. Ao registrar o atendimento, vamos receber como response um **JWT** (para realizar chamadas) e uma **Chave Pública** (para validar chamadas) 5. Após o receber o response, devemos **salvar** no backend a Chave Pública e o protocoloAtendeGoias. 5.1. Salvar a Chave Pública pois nosso backend **estará preparado para validar os dois tipos de token** (o nosso e o do governo federal). 5.2. Salvar o protocoloAtendeGoias pois o mesmo será usado posteriormente para mudarmos o status do atendimento (*item 8*). 5.3. Cadastrar um novo usuário para o CPF caso não exista. 6. A útima operação no backend é dar um redirect para o frontend com o parametro **jwt**. Ex: https://proconweb.ssp.go.gov.br/#/denuncias?jwt=[jwt] 7. O frontend deve ser capaz de ler o parâmetro jwt e armazenar o mesmo no sessionStorage. (usar a chave **token**, que é a mesma chave do jwt do procon já usa) 7.1. Poder ser necessária uma tela adicional "intermediária" para completar as informações de cadastro caso seja uma novo usuário. 8. Posteriormente o backend deve [enviar novos status](https://api.goiasdigital.go.gov.br/api/ui/#/ATENDE_GOIAS/getAddAndamentoAtendimento): **Pendente** ou **Finalizada**. Pode ser feita de forma sincrona (ex: ao chamar /salvarDenuncia), ou assíncrona (via jobs que checkam status). > **Pendente** - Usado em casos que a solicitação não será concluída no momento, terá uma interação no futuro. > **Finalizada** - Usado para encerrar a solicitação ou finalização do serviço, caso a finalização seja por conta do cidadão não cumprir algum requisito ou regra do sistema, informar junto da finalização a justificativa * Esta modelo foi pensado para futuramente ser "mais fácil" a integração via [API](https://api.goiasdigital.go.gov.br/integracao-api). ## REDIRECT - INTEGRAÇÃO NOSSO SSO O fluxo deve ser parecido. Será tratado no futuro, caso exista necessidade. Uma vez implementado, seria reusado em praticamente todas as aplicações. ## Tipo API e TELA Este documento tratou apenas o tipo de integração **REDIRECT**. Futuramente poderemos tratar os tipos **API** e **TELA**.