`contacts.create` posts to `/audiences/undefined/contacts` when `audienceId` is undefined
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
- Ambito
- api
Direzione di ricerca
Inizia leggendo l’implementazione di contacts.create() e confronta come contacts.get(), contacts.update() e contacts.remove() gestiscono un audienceId non definito. Controlla i test dei contatti esistenti e aggiungi test per audienceId non definito, anche quando sono presenti segments. Il lavoro è completo quando la creazione usa POST /contacts in questi casi e i test passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
resend.contacts.create() picks the deprecated audiences endpoint whenever the payload has an audienceId key, even if its value is undefined. The request goes to POST /audiences/undefined/contacts and fails, and a payload that also has segments or topics returns the "audienceId is deprecated" error without any request.
contacts.get(), contacts.update() and contacts.remove() already treat an undefined audienceId as absent and use the /contacts endpoints.
This passes type checking when the options object isn't an object literal, for example when it's built from optional config:
const options = {
email: '[email protected]',
audienceId: process.env.RESEND_AUDIENCE_ID, // unset after moving to segments
segments: [{ id: 'segment-id' }],
};
await resend.contacts.create(options);
// error: "`audienceId` is deprecated, and cannot be used together with `segments` or `topics`. ..."
await resend.contacts.create({ email: options.email, audienceId: options.audienceId });
// request: POST https://api.resend.com/audiences/undefined/contacts
Expected behavior
When audienceId is undefined, contacts.create() uses POST /contacts, like the other contact methods.
SDK version
resend 6.37.0 (current canary)
- Lingua principale
- TypeScript
- Stelle
- 973
- Fork
- 99
- Merge medio
- 1g 13h
- PR unite (30g)
- 37
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di resend/resend-node
-
Dependency DashboardAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 10/100
resend/resend-node#3 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di resend/resend-node
Issue simili
-
needs-area-label
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 2 giorni
-
Website: the hero tip's video play() has no catch, so a refused play is an unhandled rejectionAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
liberation-data/drivine#615 ·
I maintainer di solito rispondono entro 1 giorno
-
backend bug ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
geolens-io/geolens#3639 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
radius-project/ai-extensions#1196 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100