Missing Jason.Encoder implementation for Stripe.Customer
vittoriabitton opened this issue · 0 comments
vittoriabitton commented
I'm processing some Stripe Customers using retrieve/2
for a Stripe.Customer
and while trying to fetch its attributes I keep getting:
** (Protocol.UndefinedError) protocol Jason.Encoder not implemented for
%Stripe.Customer{id: "cus_Lt4OfmnftQHhNW", object: "customer", address: nil, balance: 0, created: 1234567890, currency: "usd", default_source: nil, deleted: nil, delinquent: false, description: nil, discount: nil, email: nil, invoice_prefix: "40BEC7C", invoice_settings: %{custom_fields: nil, default_payment_method: nil, footer: nil}, livemode: false, metadata: %{}, name: nil, next_invoice_sequence: 1, payment_method: nil, phone: nil, preferred_locales: [], shipping: nil, sources: nil, subscriptions: nil, tax_exempt: "none", tax_ids: nil, test_clock: nil}
of type Stripe.Customer (a struct), Jason.Encoder protocol must always be explicitly implemented.
If you own the struct, you can derive the implementation specifying which fields should be encoded to JSON:
@derive {Jason.Encoder, only: [....]}
defstruct ...
PS: data from this is using stripe-mock
service.
The to-go solution for this would be adding @derive {Jason.Encoder, only: [....]}
to stripity-stripe Stripe.Customer
model or there is another possible workaround for this?
Thanks in advance :)