Urgent.News

What's breaking now, across thousands of outlets.

Tech

Integração com o iFood: o problema na homologação do developer

O desafio Hoje eu quero falar da Temperô, um SaaS multi-tenant de gestão de restaurantes: pedidos, cozinha, caixa, comandas, várias unidades por restaurante. Stack em Node/TypeScript/Express, Postgres com pg puro (sem ORM, SQL cru, migrations numeradas). O objetivo era simples de enunciar,mas em termos de produção, bem difícil de sustentar: um pedido feito no marketplace iFood precisa entrar…

O objetivo é falar sobre a Temperô, um SaaS multi-tenant de gestão de restaurantes que integra o marketplace iFood. A integração exige que pedidos feitos no iFood entrem no fluxo operacional da Temperô, indo para a cozinha, produção e entrega, com o status sincronizado em ambos os sentidos. No entanto, durante o desenvolvimento, surgiram vários problemas.

Uma das principais dificuldades foi a implementação de um sistema de polling, em vez de um webhook, para receber eventos do iFood. O iFood oferece dois modelos de credencial: distribuído (OAuth2 por restaurante/unidade) e centralizado (uma única credencial para toda a plataforma). Escolheram a opção centralizada, o que exigiu refatorar o cache de token.

No caminho, também houve um bug sutil envolvendo o mapeamento de código abreviado 'code' para o nome extenso 'fullCode' de eventos. O switch que processava os eventos comparava contra 'code', mas o valor real era 'PLC'. Essa correção foi fácil, mas o aprendizado foi valioso, pois enfatizou a importância de sempre comparar contra o campo canônico definido na documentação.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Crystals: agent memory that arrives before you act

Most agent memory is a search box. The model wonders something, a retriever runs, chunks come back. That design has one load-bearing hole: retrieval fires only when the agent already suspects it needs…

  • Crystals are markdown files with binding blocks specifying actions and timing.
  • Substring matching rule allows case-insensitive text matching without word boundaries.
  • New approach focuses on earlier stage to match and budget crystal content within token limits.

More from Friday 25 September →