Skip to content

NdoleStudio/lemonsqueezy-go

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
e2e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

lemonsqueezy-go

Build codecov Scrutinizer Code Quality Go Report Card GitHub contributors GitHub license PkgGoDev

This package provides a go API client for the lemonsqueezy API

Installation

lemonsqueezy-go is compatible with modern Go releases in module mode, with Go installed:

go get github.com/NdoleStudio/lemonsqueezy-go

Alternatively the same can be achieved if you use import in a package:

import "github.com/NdoleStudio/lemonsqueezy-go"

Implemented

  • Users
    • GET /v1/users/me: Retrieves the currently authenticated user.
  • Stores
    • GET /v1/stores/:id: Retrieve a store
    • GET /v1/stores: List all stores
  • Customers
    • GET /v1/customers/:id: Retrieve a customer
    • GET /v1/customers: List all customers
  • Products
    • GET /v1/products/:id: Retrieve a product
    • GET /v1/products: List all products
  • Variants
    • GET /v1/variants/:id: Retrieve a variant
    • GET /v1/variants: List all variants
  • Files
    • GET /v1/files/:id: Retrieve a file
    • GET /v1/files: List all files
  • Orders
    • GET /v1/orders/:id: Retrieve an order
    • GET /v1/orders: List all orders
  • Order Items
    • GET /v1/order-items/:id: Retrieve an order item
    • GET /v1/order-items: List all order items
  • Subscriptions
    • PATCH /v1/subscriptions/:id: Update a subscription
    • GET /v1/subscriptions/:id: Retrieve a subscription
    • GET /v1/subscriptions: List all subscriptions
    • DELETE /v1/subscriptions/{id}: Cancel an active subscription
  • Subscription Invoices
    • GET /v1/subscription-invoices/:id: Retrieve a subscription invoice
    • GET /v1/subscription-invoices: List all subscription invoices
  • Discounts
    • POST /v1/discounts: Create a discount
    • GET /v1/discounts/:id: Retrieve a discount
    • DELETE /v1/discounts/:id: Delete a discount
    • GET /v1/discounts: List all discounts
  • Discount Redemptions
    • GET /v1/discount-redemptions/:id: Retrieve a discount redemption
    • GET /v1/discount-redemptions: List all discount redemptions
  • License Keys
    • GET /v1/license-keys/:id: Retrieve a license key
    • GET /v1/license-keys: List all license keys
  • License Key Instances
    • GET /v1/license-key-instances/:id: Retrieve a license key instance
    • GET /v1/license-key-instances: List all license keys instance
  • Checkouts
    • POST /v1/checkouts: Create a checkout
    • GET /v1/checkouts/:id: Retrieve a checkout
    • GET /v1/checkouts: List all checkouts
  • Webhooks
    • PATCH /v1/webhooks/:id: Update a webhook
    • GET /v1/webhooks/:id: Retrieve a webhook
    • GET /v1/webhooks: List all webhooks
    • DELETE /v1/webhooks/{id}: Update a webhook
    • Verify: Verify that webhook requests are coming from Lemon Squeezy

Usage

Initializing the Client

An instance of the client can be created using New().

package main

import (
    "github.com/NdoleStudio/lemonsqueezy-go"
)

func main() {
    client := lemonsqueezy.New(lemonsqueezy.WithAPIKey(""))
}

Error handling

All API calls return an error as the last return object. All successful calls will return a nil error.

subscription, response, err := client.Sucbscriptions.Get(context.Background(), "1")
if err != nil {
    //handle error
}

Testing

You can run the unit tests for this client from the root directory using the command below:

go test -v

License

This project is licensed under the MIT License - see the LICENSE file for details