60 lines
1.6 KiB
Go
60 lines
1.6 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/ccls"
|
|
"go.fifitido.net/twitch/api/channelpoints"
|
|
"go.fifitido.net/twitch/api/channels"
|
|
"go.fifitido.net/twitch/api/charity"
|
|
"go.fifitido.net/twitch/api/chat"
|
|
"go.fifitido.net/twitch/api/conduit"
|
|
"go.fifitido.net/twitch/api/entitlements"
|
|
"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
|
|
Chat *chat.Chat
|
|
Conduit *conduit.Conduit
|
|
CCLS *ccls.CCLS
|
|
Entitlements *entitlements.Entitlements
|
|
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),
|
|
Chat: chat.New(client, baseUrl),
|
|
Conduit: conduit.New(client, baseUrl),
|
|
CCLS: ccls.New(client, baseUrl),
|
|
Entitlements: entitlements.New(client, baseUrl),
|
|
EventSub: eventsub.New(client, baseUrl),
|
|
}
|
|
}
|