48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
| package api
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 	"net/url"
 | |
| 
 | |
| 	"go.fifitido.net/twitch/api/ads"
 | |
| 	"go.fifitido.net/twitch/api/analytics"
 | |
| 	"go.fifitido.net/twitch/api/bits"
 | |
| 	"go.fifitido.net/twitch/api/channelpoints"
 | |
| 	"go.fifitido.net/twitch/api/channels"
 | |
| 	"go.fifitido.net/twitch/api/charity"
 | |
| 	"go.fifitido.net/twitch/api/eventsub"
 | |
| )
 | |
| 
 | |
| const HelixBaseUrl = "https://api.twitch.tv/helix"
 | |
| 
 | |
| type API struct {
 | |
| 	client  *http.Client
 | |
| 	baseUrl *url.URL
 | |
| 
 | |
| 	Ads           *ads.Ads
 | |
| 	Analytics     *analytics.Analytics
 | |
| 	Bits          *bits.Bits
 | |
| 	Channels      *channels.Channels
 | |
| 	ChannelPoints *channelpoints.ChannelPoints
 | |
| 	Charity       *charity.Charity
 | |
| 	EventSub      *eventsub.EventSub
 | |
| }
 | |
| 
 | |
| func New() *API {
 | |
| 	client := &http.Client{}
 | |
| 	baseUrl, _ := url.Parse(HelixBaseUrl)
 | |
| 
 | |
| 	return &API{
 | |
| 		client:  client,
 | |
| 		baseUrl: baseUrl,
 | |
| 
 | |
| 		Ads:           ads.New(client, baseUrl),
 | |
| 		Analytics:     analytics.New(client, baseUrl),
 | |
| 		Bits:          bits.New(client, baseUrl),
 | |
| 		Channels:      channels.New(client, baseUrl),
 | |
| 		ChannelPoints: channelpoints.New(client, baseUrl),
 | |
| 		Charity:       charity.New(client, baseUrl),
 | |
| 		EventSub:      eventsub.New(client, baseUrl),
 | |
| 	}
 | |
| }
 |