diego3g / rsxp-2023

Repositório contendo o código do app do RS/XP 2023
MIT License
440 stars 84 forks source link

[0014] Serviço de conexão com a API do Sympla #65

Closed gabe-frasz closed 1 year ago

gabe-frasz commented 1 year ago

Fala pessoal, acredito que posso contribuir com a tarefa em questão no projeto. Analisei as discussões e não encontrei nada relacionado, mas revisei a documentação da API, fiz um teste e tive algumas ideias.

Minha sugestão é criar um novo serviço que inclua todos os métodos necessários da API. Em cada método, será realizado um fetch na API utilizando o token.

export class SymplaService {
  private baseUrl = 'https://api.sympla.com.br/public/v3'

  constructor(private token: string) {}

  public async getParticipantByTicketId(ticketId: string) {
    return await fetch(
      `${this.baseUrl}/events/${eventId}/participants/${ticketId}`,
      {
        headers: {
          s_token: this.token,
        },
      },
    ).then((res) => res.json())
  }
}

Ainda há alguns pontos a serem definidos, mas estou aberto a sugestões e ajuda.

diego3g commented 1 year ago

Fala @gabe-frasz, podemos talvez usar o Axios com uma URL de base para todas as chamadas e também o token já como base? Além disso, buscar o token das variáveis ambiente do Next ao invés de uma informação no constructor?

De resto acho que é isso ai mesmo, um service que vai ter vários métodos que vamos usar depois como o getTicketByNumber que acho que é o mais importante (https://www.sympla.com.br/api-doc/index.html#operation/getOneParticipantByTicketNumber).

Lembrando que vamos usar o número do ingresso e não do pedido porque um pedido pode ter mais ingressos associados.

Além disso, existe a informação do event_id que vai ser fixa, mas que pode ser uma variavel ambiente também.

gabe-frasz commented 1 year ago

Fechou @diego3g! Vou iniciar o trabalho nas seguintes mudanças:

Assim que terminar, criarei uma pull request e continuamos o trabalho por lá.