@israel7souza Obrigado
Lançada versão v2.1
- Editado
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.
- Editado
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 *"
aqui tem tudo, se precisar de mais ajuda, teria que entrar remoto no meu pc para eu explicar
entre em contato te mostro remoto como fazer
- Editado
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.
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.
- Editado
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.
- Editado
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.
tiagoalves
Ainda não consegui fazer o painel chamar a senha
Também tentei varias alterações, se puder me ajudar agradeço.
Qual é a versão do novoSGA e do Painel?
Eu estou compilando a versão panel-app v2.1
E o novosga v2.1.2 .
- Editado
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.
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.
- Editado
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).