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" "go.fifitido.net/twitch/api/extensions" "go.fifitido.net/twitch/api/games" "go.fifitido.net/twitch/api/goals" "go.fifitido.net/twitch/api/gueststar" "go.fifitido.net/twitch/api/hypetrain" "go.fifitido.net/twitch/api/moderation" "go.fifitido.net/twitch/api/polls" "go.fifitido.net/twitch/api/predictions" "go.fifitido.net/twitch/api/raids" "go.fifitido.net/twitch/api/schedule" "go.fifitido.net/twitch/api/search" "go.fifitido.net/twitch/api/streams" "go.fifitido.net/twitch/api/subscriptions" "go.fifitido.net/twitch/api/teams" "go.fifitido.net/twitch/api/users" ) 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 Extensions *extensions.Extensions EventSub *eventsub.EventSub Games *games.Games Goals *goals.Goals GuestStar *gueststar.GuestStar Hypetrain *hypetrain.Hypetrain Moderation *moderation.Moderation Polls *polls.Polls Predictions *predictions.Predictions Raids *raids.Raids Schedule *schedule.Schedule Search *search.Search Streams *streams.Streams Subscriptions *subscriptions.Subscriptions Teams *teams.Teams Users *users.Users } func New(client *http.Client, baseUrl *url.URL) *API { 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), Extensions: extensions.New(client, baseUrl), EventSub: eventsub.New(client, baseUrl), Games: games.New(client, baseUrl), Goals: goals.New(client, baseUrl), GuestStar: gueststar.New(client, baseUrl), Hypetrain: hypetrain.New(client, baseUrl), Moderation: moderation.New(client, baseUrl), Polls: polls.New(client, baseUrl), Predictions: predictions.New(client, baseUrl), Raids: raids.New(client, baseUrl), Schedule: schedule.New(client, baseUrl), Search: search.New(client, baseUrl), Streams: streams.New(client, baseUrl), Subscriptions: subscriptions.New(client, baseUrl), Teams: teams.New(client, baseUrl), Users: users.New(client, baseUrl), } } func NewDefault() *API { client := &http.Client{} baseUrl, _ := url.Parse(HelixBaseUrl) return New(client, baseUrl) }