Skip to content

Abacate Pay API typings that are always up to date.

License

Notifications You must be signed in to change notification settings

AbacatePay/go-types

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AbacatePay Go Types

Tipagens oficiais e helpers modernos para integrar com a API da AbacatePay.

AbacatePay Open Source

Instalação

go get github.com/AbacatePay/go-types@latest

Como a AbacatePay API Types documenta

Antes de tudo, você deve específicar a versão da API que você deseja importar os tipos. Coloque /v* no final da importação, sendo * a versão que deseja usar:

import "github.com/AbacatePay/go-types/v2"
  • Prefixo API* Representa estruturas gerais da API (Objetos retornados, modelos internos etc.).

  • Prefixo Webhook* Representa payloads recebidos pelos eventos de webhook. Documentação: https://docs.abacatepay.com/pages/webhooks

  • Prefixo REST<HTTPMethod>* Tipos usados em requisições diretas à API.

    • Sufixo Body → corpo enviado na requisição Ex.: RESTPostCreateNewChargeBody

    • Sufixo QueryParams → parâmetros de query Ex.: RESTGetCheckQRCodePixStatusQueryParams

    • Sufixo Data → dados retornados pela API Ex.: RESTGetListCouponsData

  • O pacote NÃO adiciona tipos além do que existe na documentação oficial. Cada tipo reflete exatamente o que está documentado aqui: https://docs.abacatepay.com/pages/introduction

Quickstart

Crie um novo cupom

package main

import (
	"bytes"
	"encoding/json"
	"net/http"

	types "github.com/AbacatePay/go-types/v2"
)

func CreateCoupon(body types.RESTPostCreateCouponBody) (*types.RESTPostCreateCouponData, error) {
	url := types.APIBaseURL + types.RouteCreateCoupon

	payload, _ := json.Marshal(body)

	req, _ := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(payload))

	req.Header.Set("Authorization", "...")
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)

	if err != nil {
		return nil, err
	}

	defer resp.Body.Close()

	var data types.RESTPostCreateCouponData

	if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
		return nil, err
	}

	return data, nil
}

Escute eventos de Webhooks da AbacatePay

package main

import (
	"encoding/json"
	"net/http"

	types "github.com/AbacatePay/go-types/v2"
)

func webhookHandler(w http.ResponseWriter, r *http.Request) {
	var event types.WebhookEvent

	if err := json.NewDecoder(r.Body).Decode(&event); err != nil {
		w.WriteHeader(http.StatusBadRequest)

		return
	}

	switch event.Event {
	case types.WebhookEventBillingPaid:
		// Pagamento confirmado
	case types.WebhookEventPayoutDone:
		// Saque concluído
	case types.WebhookEventPayoutFailed:
		// Saque falhou
	}

	w.WriteHeader(http.StatusOK)
}

Feito com 🥑 pela equipe AbacatePay
Open source, de verdade.

About

Abacate Pay API typings that are always up to date.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages