Skip to content

Inconsistencia nas docs e types #45

@rossanodr

Description

@rossanodr

Pessoal, estou migrando agora para a Pagar.me. Vendo as documentações em https://docs.pagar.me/reference/criar-cliente-1
No próprio exemplo, é possivel criar um customer com poucas informações, exemplo:

`const url = 'https://api.pagar.me/core/v5/customers';
const options = {
  method: 'POST',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
  },
  body: JSON.stringify({name: 'Nome', email: 'teste@teste.com', code: '123'})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));`

Porém utilizando essa sdk, vejo que vários itens são obrigatórios, o que deixa as coisas um pouco confusas, campo como metadata, phones, address ficam obrigatórios e uma função que poderia ter 3 linhas fica assim, por exemplo:

export async function createPagarMeCustomer(
    name: string,
    email: string,
    uid: string,
    document: string,
    type: "individual" | "company"
) {
    const customer = await pagarMeCustomer.createCustomer({
        name: name,
        email: email,
        code: uid,
        document: document,
        type: type,
        metadata: {},
        phones: {},
        address: {
            street: "",
            number: "",
            zipCode: "",
            neighborhood: "",
            city: "",
            state: "",
            country: "",
            complement: "",
            line1: "",
            line2: "",
        },
    });
    const customerId = customer.result.id;
}

`
Ao meu ver, isso torna a utilização da sdk um pouco complicada.
Em alguns casos, como o exemplo de 'code', nas types o comentário é razo:

`    /** Customer code */
    code: string;`

e na documentação é muito mais completo:

code
Código de referência do cliente no sistema da loja. Max: 52 caracteres

Para os que já utilizam a mais tempo, vale a pena utilizar essa sdk ou é melhor criar as chamadas individualmente?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions