• Geral
  • Lançada versão v2.1

rodrigours Mesmo problema aqui, na v2.0.1 web funciona, na v2.1 com comunicação mercure ele fica tentando fazer a request pro localhost.
Request URL: http://127.0.0.1:3000/.well-known/mercure?topic=%2Funidades%2F1%2Fpainel
Referrer Policy: no-referrer-when-downgrade

Estou tentando fazer funcionar a vocalização, habilitei o código da página settings, que estava comentado, mas não funcionou.
Procurando o resto do código aqui.

    tiagoalves

    Endereço Mercure para publicar mensagem (onde "mercure" é o nome do host)

    esse endereço será chamado internamente via o PHP

    MERCURE_PUBLIC_URL=http://mercure:3000/.well-known/mercure

    Endereço Mercure para consumir mensagem

    esse endereço será chamado via o navegador web

    MERCURE_CONSUMER_URL=http://127.0.0.1:3000/.well-known/mercure
    http://(aqui vai o nome do seu computador):3000/.well-known/mercure

    mas no caso se for Windows eu fiz um container só do mercure, faça um maquina no docker e roda abaixo o servidor mercure

    mercure:
    image: novosga/mercure:v0.11
    restart: always
    ports:
    - "3000:3000"
    environment:

    same value from ports

    SERVER_NAME: ":3000"

    default publish key, must be changed

    MERCURE_PUBLISHER_JWT_KEY: "!ChangeMe!"
    MERCURE_EXTRA_DIRECTIVES: "anonymous 1; cors_origins *"

      israel7souza

      Só vi a resposta agora, já tinha feito funcionar aqui, quando abri o docker-compose eu vi que tinha errado nisso.
      Já customizei o app do painel e estou terminando de customizar o app de triagem, mas empaquei na modificação do payload da triagem. Aproveitei que já haviam os campos para envio do nome e documento e consegui fazer o post, mas a resposta vem com erro:

      Return value of Novosga\Entity\Cliente::getEndereco() must be an instance of Novosga\Entity\Endereco, null returned

      Adicionei um campo de endereço na request (mas não dá pra ficar colocando endereço no autoatendimento), e já tentei enviar de tudo: array vazio, string vazia, objeto vazio, null, mas neste caso ele retorna:

      You must define a type for Novosga\Entity\Cliente::$endereco.

      Verifiquei no código do novoSGA e em Cliente.orm.yml a entidade Endereço está integrada à Entidade Cliente sem definição de tipo e também não diz se pode ser null:

          embedded:
              endereco:
                  class: Novosga\Entity\Endereco
                  columnPrefix: end_

      No arquivo Endereco.orm.yml o tipo é definível como "integrável" e os campos podem ser nulos.

      Novosga\Entity\Endereco:
          type: embeddable
          fields:
              pais:
                  type: string
                  length: 2
                  nullable: true
              cep:
                  type: string
                  length: 25
                  nullable: true
              estado:
                  type: string
                  length: 3
                  nullable: true
              cidade:
                  type: string
                  length: 30
                  nullable: true
              logradouro:
                  type: string
                  length: 60
                  nullable: true
              numero:
                  type: string
                  length: 10
                  nullable: true
              complemento:
                  type: string
                  length: 15
                  nullable: true

      A questão é: se a API permite a emissão de senhas sem os dados do cliente, por qual motivo ao adicionar o cliente é exigido a inserção de dados do endereço? (que aliás eu não vi em lugar algum do sistema em si)

      Enfim, já que estou com esta demanda aqui no meu órgão, estou disposto a colaborar com o desenvolvimento do sistema na medida do possível, porém não tenho tanto conhecimento das regras de negócio como você, por isso busquei ajuda aqui. 😄

        Não consigo cadastrar novo usuario: [Lotação] Lotação é utilizada para definir o perfil de acesso do usuário nas unidades.
        Onde configuro este item de LOTAÇÃO na configuração de usuario?

          tiagoalves A questão é: se a API permite a emissão de senhas sem os dados do cliente, por qual motivo ao adicionar o cliente é exigido a inserção de dados do endereço? (que aliás eu não vi em lugar algum do sistema em si)

          Permite informação apenas do nome+documento para buscar ou inserir um cliente. Esse é o mesmo payload desde versões antigas quando nem existia a entidade cliente.

          Na versão gratuita não tem muita utilidade os demais campos, mas por exemplo existe um módulo comercial para visualizar e cadastrar clientes.

            tonyferreira "Lotação" é apenas a junção de "Unidade" + "Perfil", o usuário precisa ter ao menos um perfil em pelo menos uma unidade.

            tiagoalves

            Me da uma mão no painel também não consigo vocalizar, chamando só com sinal é super rápido, mas vocalizar não chama.

              rogeriolino Já tentei de diversas formas, inclusive já encontrei o código que provoca o erro:

              You must define a type for Novosga\Entity\Cliente::$endereco.

              É no arquivo Entity.Cliente.yml do Serializer, onde está:

              Novosga\Entity\Cliente:
                  properties:
                      id:
                          read_only: true
                      nome:
                          type: string
                      documento:
                          type: string

              Deveria Estar:

              Novosga\Entity\Cliente:
                  properties:
                      id:
                          read_only: true
                      nome:
                          type: string
                      documento:
                          type: string
                      endereco:
                          type: array

              O problema é que isso gera o seguinte erro:

              ReflectionProperty::getValue() expects parameter 1 to be object, array given

              E no serializer não tem o tipo "object" e eu não entendo muito de symfony nem de doctrine pra saber onde que ocorre essa conversão de array pra objeto. Além disso não há nenhum log sobre isso pra me ajudar a seguir o stack trace.

              israel7souza Sobre o Painel eu fiz apenas o MVP, preciso mudar algumas coisas na página de configuração do fork que eu fiz. Foi relativamente simples, em algumas horas já estava funcionando. Como sou de um órgão da segurança publica vou ter que mudar algumas coisas antes de publicar no github.

              Quando estiver validado, se possível posso fazer um PR no projeto original e lançar uma release nova.
              É claro que tá tudo bem desatualizado mas pelo menos algumas funções como a vocalização e o chamado pelo nome já estariam disponíveis.

              Update:
              Resolvi o problema (aparentemente)

              Ao invés de declarar o tipo específico (string, array, etc) no serializer, o mesmo deve ser a entidade (que é um objeto):

              Novosga\Entity\Cliente:
                  properties:
                      id:
                          read_only: true
                      nome:
                          type: string
                      documento:
                          type: string
                      endereco:
                          type: Novosga\Entity\Endereco

              Nesse caso é só mandar um objeto vazio no lugar do endereço no JSON que ele vai retornar com a senha:

              {
              	"unidade": $unidade,
              	"servico": $servico,
              	"prioridade": $prioridade,
              	"cliente": {
              		"nome": "$nome",
              		"documento": "$documento",
              		"endereco": {}
              	}
              }

              Estou fazendo testes aqui mas aparentemente deu certo.

                israel7souza
                Qual ambiente tu subiu esse novoSGA? Docker? Windows?
                Já viu a questão da configuração do Mercure (no painel v2.1 não funciona se o mercure não estiver configurado direito).

                Testa na última release v2.0.1 (eu testei web e desktop e funcionou nas duas), o chamado vai demorar pra cair no painel, se chamar é problema no mercure mesmo pois essa versão usa o socket.io.

                  tiagoalves

                  Eu uso wamp server no Windows, para o novosga e para o mercure rodo um docker somente com docker.

                  tiagoalves
                  A release panel-app v2.0.1 não tem conexão com mercure.
                  Somente a panel-app v2.1 foi realizado o Removing socketio, adding support for mercure.
                  Demora muito a comunicação com a a versão 2.0.1 do painel
                  Quando coloco somente para chamar pelo sons do painel de atenção, fica rápido demais a resposta é imediata, mas se eu coloco a vocalização não chama panel-app v2.1.

                    israel7souza

                    israel7souza Quando coloco somente para chamar pelo sons do painel de atenção, fica rápido demais a resposta é imediata, mas se eu coloco a vocalização não chama panel-app v2.1.

                    Chama a senha no painel mas não vocaliza? Isso que você quer dizer?

                    Eu implementei a vocalização de forma manual (não usei o checkbox).