01. DADOS GERAIS

Produto:

TOTVS Varejo Gestão Fiscal

Linha de Produto:

Linha Fiscal Cloud 

Segmento:

Varejo 

Módulo:DOCUMENTO FISCAL
Função:EMISSÃO
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DVTPFRM-630


02. 
SITUAÇÃO/REQUISITO

Realizar a migração das URLs das prefeituras da collection "prefeituras" no MongoDB para a tabela "provedores" no Postgres, estruturando as URLs de emissão e recepção separadamente e ajustando os conectores existentes para buscar essas informações da nova estrutura.

03. SOLUÇÃO

Alterações na Estrutura de Migração


A migração foi efetuada para que, ao utilizar a API Invoicy, os dados de URL do provedor não sejam mais obtidos a partir da collection prefeituras do MongoDB, mas sim da tabela provedores do mesmo banco. Essa mudança elimina a necessidade de inserir novos documentos toda vez que um novo município que utiliza o provedor Invoicy for implementado.


A partir dessa alteração, é necessário apenas o cadastro padrão dos dados de conexãoPrefeitura e a associação do idProvedorEmissao do cadastro da cidade correspondente ao município de emissão ao ID correspondente ao provedor Invoicy.


Além disso, a API de provedores foi melhorada para que suas funções sejam mais bem definidas.




Endpoints da API Provedor

1. Consulta de Provedores Cadastrados

URL: /provedor

Método HTTP: GET

Descrição: Retorna uma lista de todos os provedores cadastrados.

Autenticação: Requer token JWT no cabeçalho Authorization.

Resposta de Sucesso: 200 OK

Exemplo de Corpo da Resposta:

[
    {
        "idProvedor": 1,
        "nome": "NOME_PROVEDOR",
        "tipo": "TIPO_PROVEDOR",
        "intervaloBusca": 1,
        "urls": [
            {
                "tipo": "TIPO_URL",
                "url": "URLPROVEDOR.COM.BR",
                "ambiente": "homolog"
            }
        ]
    },
    {
        "idProvedor": 2,
        "nome": "NOME_PROVEDOR_2",
        "tipo": "TIPO_PROVEDOR",
        "intervaloBusca": 1,
        "urls": [
            {
                "tipo": "TIPO_URL",
                "url": "URLPROVEDOR2.COM.BR",
                "ambiente": "homolog"
            }
        ]
    }
]

2. Consulta de Provedor por ID

URL: /provedor/{id}

Método HTTP: GET

Descrição: Retorna os detalhes de um provedor específico pelo seu ID.

Parâmetros:

id (Path Variable): ID do provedor a ser consultado.

Autenticação: Requer token JWT no cabeçalho Authorization.

Resposta de Sucesso: 200 OK

Exemplo de Corpo da Resposta:


{
    "idProvedor": 1,
    "nome": "NOME_PROVEDOR",
    "tipo": "TIPO_PROVEDOR",
    "intervaloBusca": 1,
    "urls": [
        {
            "tipo": "TIPO_URL",
            "url": "URLPROVEDOR.COM.BR",
            "ambiente": "homolog"
        }
    ]
}

3. Criar Novo Provedor

URL: /provedor

Método HTTP: POST

Descrição: Cria um novo provedor.

Parâmetros:

ProvedorDTO (Request Body): Dados do novo provedor.


{
    "nome": "NOME_PROVEDOR",
    "tipo": "TIPO_PROVEDOR",
    "intervaloBusca": 1,
    "urls": [
        {
            "tipo": "TIPO_URL",
            "url": "URLPROVEDOR.COM.BR",
            "ambiente": "homolog"
        }
    ]
}

Autenticação: Requer token JWT no cabeçalho Authorization.

Resposta de Sucesso: 200 OK

Exemplo de Corpo da Resposta:

{
    "idProvedor": 17,
    "nome": "NOME_PROVEDOR",
    "tipo": "TIPO_PROVEDOR",
    "intervaloBusca": 1,
    "urls": [
        {
            "tipo": "TIPO_URL",
            "url": "URLPROVEDOR.COM.BR",
            "ambiente": "homolog"
        }
    ]
}

4. Atualizar Dados de um Provedor

URL: /provedor/{id}

Método HTTP: PUT

Descrição: Atualiza os dados de um provedor existente.

Parâmetros:

id (Path Variable): ID do provedor a ser atualizado.

ProvedorDTO (Request Body): Dados atualizados do provedor.

{
    "nome": "NOME_PROVEDOR_ATUALIZADO",
    "tipo": "TIPO_PROVEDOR",
    "intervaloBusca": 1,
    "urls": [
        {
            "tipo": "TIPO_URL",
            "url": "URLPROVEDOR.COM.BR",
            "ambiente": "homolog"
        }
    ]
}

Autenticação: Requer token JWT no cabeçalho Authorization.

Resposta de Sucesso: 200 OK

Exemplo de Corpo da Resposta:

{
    "idProvedor": 1,
    "nome": "NOME_PROVEDOR_ATUALIZADO",
    "tipo": "TIPO_PROVEDOR",
    "intervaloBusca": 1,
    "urls": [
        {
            "tipo": "TIPO_URL",
            "url": "URLPROVEDOR.COM.BR",
            "ambiente": "homolog"
        }
    ]
}


04. DEMAIS INFORMAÇÕES

Não se aplica

05. ASSUNTOS RELACIONADOS

        Não se aplica