conekta / conekta-node

Node.js library for Conekta api calls
https://conekta.com
MIT License
39 stars 22 forks source link

Imposible eliminar múltiples métodos de pago? #83

Closed javorosas closed 1 year ago

javorosas commented 5 years ago

Cómo puedo hacer para eliminar todos los métodos de pago de un cliente? Si llamo al método payment_sources.get más de una vez me da un error.

...
const customer = await conekta.Customer.find(customer.conektaId);
const sourceCount = customer.payment_sources._json.data.length;
const sourcesToDelete = [];
for (let i = 0; i < sourceCount; i++) {
  sourcesToDelete.push(paymentSources.get(i));
}
...

Arroja este error en la segunda vuelta del loop:

Error: Cannot read property '1' of undefined

Mi objetivo final es poder borrar todos los payment_sources. Podrían indicarme la forma correcta de hacerlo? Muchas gracias.

leofischer commented 4 years ago

Me parece que los submodelos tenían una comportamiento inesperado cuando iterabas sobre ellos en cuál la referencia de los payment_sources se cruzaba con el payment_source después de hacer el .get(). Tengo pendiente un PR para resolver este comportamiento (https://github.com/conekta/conekta-node/pull/99), algo así debería de funcionar:

const customer = await conekta.Customer.find(customer.conektaId);
const sourceCount = customer.payment_sources._json.data.length;
for (let i = 0; i < sourceCount; i++) {
  customer.payment_sources.get(0).delete;
}
leofischer commented 4 years ago

@javorosas - he hecho cambios para arreglar eso en el release https://github.com/conekta/conekta-node/releases/tag/4.0.1. Me puedes confirmar que funciona como esperabas? Voy a esperar 2 semanas para tu confirmación, sino cerraré este issue ya como resuelto