mirror of
https://github.com/acaloiaro/go-tremendous
synced 2026-07-21 10:12:23 +00:00
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package tremendous
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
// TestflightURL is the testflight API endpoint.
|
|
const TestflightURL = "https://testflight.tremendous.com/api/v2"
|
|
|
|
// ProductionURL is the production API endpoint
|
|
const ProductionURL = "https://api.tremendous.com/api/v2"
|
|
|
|
// Client is the primary entry point for using the Tremendous API
|
|
type Client struct {
|
|
APIKey string
|
|
BaseURL string
|
|
Campaigns *CampaignsService
|
|
Orders *OrdersService
|
|
Products *ProductsService
|
|
}
|
|
|
|
type ClientArgs struct {
|
|
ApiKey string // the api key used to authenticate to the API
|
|
Production bool // whether to use the production or testflight API
|
|
}
|
|
|
|
// NewClient constructs a new Tremendous client using the given API key.
|
|
func NewClient(args ClientArgs) *Client {
|
|
baseURL := TestflightURL
|
|
if args.Production {
|
|
baseURL = ProductionURL
|
|
}
|
|
client := &Client{
|
|
APIKey: args.ApiKey,
|
|
BaseURL: baseURL,
|
|
}
|
|
client.Campaigns = &CampaignsService{client: client}
|
|
client.Orders = &OrdersService{client: client}
|
|
client.Products = &ProductsService{client: client}
|
|
return client
|
|
}
|
|
|
|
// headers returns the default headers for requests, including authorization.
|
|
func (c *Client) headers() http.Header {
|
|
h := http.Header{}
|
|
h.Set("Authorization", fmt.Sprintf("Bearer %s", c.APIKey))
|
|
h.Set("Content-Type", "application/json")
|
|
h.Set("Accept", "application/json")
|
|
h.Set("User-Agent", "go-tremendous/1.0.0")
|
|
return h
|
|
}
|