go-twitch/api/api.go

97 lines
2.9 KiB
Go
Raw Normal View History

2024-02-27 22:13:57 -05:00
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"
2024-02-27 22:13:57 -05:00
"go.fifitido.net/twitch/api/channelpoints"
"go.fifitido.net/twitch/api/channels"
2024-02-27 22:26:57 -05:00
"go.fifitido.net/twitch/api/charity"
2024-02-28 10:30:20 -05:00
"go.fifitido.net/twitch/api/chat"
2024-02-28 13:50:07 -05:00
"go.fifitido.net/twitch/api/conduit"
2024-02-28 14:25:19 -05:00
"go.fifitido.net/twitch/api/entitlements"
2024-02-27 22:13:57 -05:00
"go.fifitido.net/twitch/api/eventsub"
2024-03-02 22:45:59 -05:00
"go.fifitido.net/twitch/api/extensions"
2024-03-02 22:54:58 -05:00
"go.fifitido.net/twitch/api/games"
2024-03-02 23:04:11 -05:00
"go.fifitido.net/twitch/api/goals"
2024-03-03 14:09:31 -05:00
"go.fifitido.net/twitch/api/gueststar"
2024-03-03 14:16:33 -05:00
"go.fifitido.net/twitch/api/hypetrain"
2024-03-03 15:14:59 -05:00
"go.fifitido.net/twitch/api/moderation"
2024-03-03 15:27:37 -05:00
"go.fifitido.net/twitch/api/polls"
2024-03-03 15:50:12 -05:00
"go.fifitido.net/twitch/api/predictions"
2024-03-03 16:00:12 -05:00
"go.fifitido.net/twitch/api/raids"
2024-03-03 16:30:10 -05:00
"go.fifitido.net/twitch/api/schedule"
2024-03-03 16:47:48 -05:00
"go.fifitido.net/twitch/api/search"
2024-02-27 22:13:57 -05:00
)
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
2024-02-27 22:26:57 -05:00
Charity *charity.Charity
2024-02-28 10:30:20 -05:00
Chat *chat.Chat
2024-02-28 13:50:07 -05:00
Conduit *conduit.Conduit
CCLS *ccls.CCLS
2024-02-28 14:25:19 -05:00
Entitlements *entitlements.Entitlements
2024-03-02 22:45:59 -05:00
Extensions *extensions.Extensions
2024-02-27 22:13:57 -05:00
EventSub *eventsub.EventSub
2024-03-02 22:54:58 -05:00
Games *games.Games
2024-03-02 23:04:11 -05:00
Goals *goals.Goals
2024-03-03 14:09:31 -05:00
GuestStar *gueststar.GuestStar
2024-03-03 14:16:33 -05:00
Hypetrain *hypetrain.Hypetrain
2024-03-03 15:14:59 -05:00
Moderation *moderation.Moderation
2024-03-03 15:27:37 -05:00
Polls *polls.Polls
2024-03-03 15:50:12 -05:00
Predictions *predictions.Predictions
2024-03-03 16:00:12 -05:00
Raids *raids.Raids
2024-03-03 16:30:10 -05:00
Schedule *schedule.Schedule
2024-03-03 16:47:48 -05:00
Search *search.Search
2024-02-27 22:13:57 -05:00
}
func New(client *http.Client, baseUrl *url.URL) *API {
2024-02-27 22:13:57 -05:00
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),
2024-02-27 22:26:57 -05:00
Charity: charity.New(client, baseUrl),
2024-02-28 10:30:20 -05:00
Chat: chat.New(client, baseUrl),
2024-02-28 13:50:07 -05:00
Conduit: conduit.New(client, baseUrl),
CCLS: ccls.New(client, baseUrl),
2024-02-28 14:25:19 -05:00
Entitlements: entitlements.New(client, baseUrl),
2024-03-02 22:45:59 -05:00
Extensions: extensions.New(client, baseUrl),
2024-02-27 22:13:57 -05:00
EventSub: eventsub.New(client, baseUrl),
2024-03-02 22:54:58 -05:00
Games: games.New(client, baseUrl),
2024-03-02 23:04:11 -05:00
Goals: goals.New(client, baseUrl),
2024-03-03 14:09:31 -05:00
GuestStar: gueststar.New(client, baseUrl),
2024-03-03 14:16:33 -05:00
Hypetrain: hypetrain.New(client, baseUrl),
2024-03-03 15:14:59 -05:00
Moderation: moderation.New(client, baseUrl),
2024-03-03 15:27:37 -05:00
Polls: polls.New(client, baseUrl),
2024-03-03 15:50:12 -05:00
Predictions: predictions.New(client, baseUrl),
2024-03-03 16:00:12 -05:00
Raids: raids.New(client, baseUrl),
2024-03-03 16:30:10 -05:00
Schedule: schedule.New(client, baseUrl),
2024-03-03 16:47:48 -05:00
Search: search.New(client, baseUrl),
2024-02-27 22:13:57 -05:00
}
}
2024-03-03 16:30:10 -05:00
func NewDefault() *API {
2024-03-03 16:30:10 -05:00
client := &http.Client{}
baseUrl, _ := url.Parse(HelixBaseUrl)
2024-03-03 16:30:10 -05:00
return New(client, baseUrl)
2024-03-03 16:30:10 -05:00
}