From fb587449285e87008ae9545ea15da2f461c9652f Mon Sep 17 00:00:00 2001 From: nite Date: Mon, 7 Apr 2025 22:23:36 +1000 Subject: [PATCH] u --- README.md | 2 +- assert.go | 41 ----- client.go | 2 +- endpoint/age_rating_categories.go | 2 +- endpoint/age_rating_content_descriptions.go | 2 +- .../age_rating_content_descriptions_v2.go | 2 +- endpoint/age_rating_organizations.go | 2 +- endpoint/age_ratings.go | 2 +- endpoint/alternative_names.go | 2 +- endpoint/artworks.go | 2 +- endpoint/base.go | 32 ++-- endpoint/character_genders.go | 2 +- endpoint/character_mug_shots.go | 2 +- endpoint/character_species.go | 2 +- endpoint/characters.go | 2 +- endpoint/collection_membership_types.go | 2 +- endpoint/collection_memberships.go | 2 +- endpoint/collection_relation_types.go | 2 +- endpoint/collection_relations.go | 2 +- endpoint/collection_types.go | 2 +- endpoint/collections.go | 2 +- endpoint/companies.go | 2 +- endpoint/company_logos.go | 2 +- endpoint/company_statuses.go | 2 +- endpoint/company_websites.go | 2 +- endpoint/covers.go | 2 +- endpoint/date_formats.go | 2 +- endpoint/endpoint_name.go | 146 +++++++++--------- endpoint/event_logos.go | 2 +- endpoint/event_networks.go | 2 +- endpoint/events.go | 2 +- endpoint/external_game_sources.go | 2 +- endpoint/external_games.go | 2 +- endpoint/franchises.go | 2 +- endpoint/game_engine_logos.go | 2 +- endpoint/game_engines.go | 2 +- endpoint/game_localizations.go | 2 +- endpoint/game_modes.go | 2 +- endpoint/game_release_formats.go | 2 +- endpoint/game_statuses.go | 2 +- endpoint/game_time_to_beats.go | 2 +- endpoint/game_types.go | 2 +- endpoint/game_version_feature_values.go | 2 +- endpoint/game_version_features.go | 2 +- endpoint/game_versions.go | 2 +- endpoint/game_videos.go | 2 +- endpoint/games.go | 2 +- endpoint/genres.go | 2 +- endpoint/involved_companies.go | 2 +- endpoint/keywords.go | 2 +- endpoint/language_support_types.go | 2 +- endpoint/language_supports.go | 2 +- endpoint/languages.go | 2 +- endpoint/multiplayer_modes.go | 2 +- endpoint/network_types.go | 2 +- endpoint/platform_families.go | 2 +- endpoint/platform_logos.go | 2 +- endpoint/platform_types.go | 2 +- endpoint/platform_version_companies.go | 2 +- endpoint/platform_version_release_dates.go | 2 +- endpoint/platform_versions.go | 2 +- endpoint/platform_websites.go | 2 +- endpoint/platforms.go | 2 +- endpoint/player_perspectives.go | 2 +- endpoint/popularity_primitives.go | 2 +- endpoint/popularity_types.go | 2 +- endpoint/regions.go | 2 +- endpoint/release_date_regions.go | 2 +- endpoint/release_date_statuses.go | 2 +- endpoint/release_dates.go | 2 +- endpoint/screenshots.go | 2 +- endpoint/search.go | 6 +- endpoint/themes.go | 2 +- endpoint/webhooks.go | 2 +- endpoint/website_types.go | 2 +- endpoint/websites.go | 2 +- request.go | 6 +- token.go | 10 +- 78 files changed, 172 insertions(+), 213 deletions(-) delete mode 100644 assert.go diff --git a/README.md b/README.md index a7d7a0f..8c213b7 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ func Test2(c *igdb.Client) { } func Test3(c *igdb.Client) { - total, err := c.Games.GetLastOneId() + total, err := c.Games.Count() if err != nil { log.Fatal(err) } diff --git a/assert.go b/assert.go deleted file mode 100644 index b6e277b..0000000 --- a/assert.go +++ /dev/null @@ -1,41 +0,0 @@ -package igdb - -import "fmt" - -func AssertSingle[T any](data any, err error) (*T, error) { - if err != nil { - return nil, err - } - - if data == nil { - return nil, fmt.Errorf("data is nil") - } - - datas, ok := data.([]*T) - if !ok { - return nil, fmt.Errorf("failed to convert to []*T") - } - - if len(datas) == 0 { - return nil, fmt.Errorf("no results") - } - - return datas[0], nil -} - -func AssertSlice[T any](data any, err error) ([]*T, error) { - if err != nil { - return nil, err - } - - if data == nil { - return nil, fmt.Errorf("data is nil") - } - - datas, ok := data.([]*T) - if !ok { - return nil, fmt.Errorf("failed to convert to []*T") - } - - return datas, nil -} diff --git a/client.go b/client.go index e56e294..2544c46 100644 --- a/client.go +++ b/client.go @@ -11,7 +11,7 @@ import ( type Client struct { clientID string - token *twitchToken + token *TwitchToken flaresolverr *flaresolverr.Flaresolverr limiter *rateLimiter diff --git a/endpoint/age_rating_categories.go b/endpoint/age_rating_categories.go index ac8c47a..b04a651 100644 --- a/endpoint/age_rating_categories.go +++ b/endpoint/age_rating_categories.go @@ -25,7 +25,7 @@ func NewAgeRatingCategories(request func(URL string, dataBody any) (*resty.Respo } func (a *AgeRatingCategories) Query(query string) ([]*pb.AgeRatingCategory, error) { - resp, err := a.request("https://api.igdb.com/v4/age_rating_categories.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/age_rating_content_descriptions.go b/endpoint/age_rating_content_descriptions.go index d9dfddd..7f1af3b 100644 --- a/endpoint/age_rating_content_descriptions.go +++ b/endpoint/age_rating_content_descriptions.go @@ -25,7 +25,7 @@ func NewAgeRatingContentDescriptions(request func(URL string, dataBody any) (*re } func (a *AgeRatingContentDescriptions) Query(query string) ([]*pb.AgeRatingContentDescription, error) { - resp, err := a.request("https://api.igdb.com/v4/age_rating_content_descriptions.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/age_rating_content_descriptions_v2.go b/endpoint/age_rating_content_descriptions_v2.go index e1cb14d..fab9fa4 100644 --- a/endpoint/age_rating_content_descriptions_v2.go +++ b/endpoint/age_rating_content_descriptions_v2.go @@ -25,7 +25,7 @@ func NewAgeRatingContentDescriptionsV2(request func(URL string, dataBody any) (* } func (a *AgeRatingContentDescriptionsV2) Query(query string) ([]*pb.AgeRatingContentDescriptionV2, error) { - resp, err := a.request("https://api.igdb.com/v4/age_rating_content_descriptions_v2.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/age_rating_organizations.go b/endpoint/age_rating_organizations.go index de4b6db..f6dca84 100644 --- a/endpoint/age_rating_organizations.go +++ b/endpoint/age_rating_organizations.go @@ -25,7 +25,7 @@ func NewAgeRatingOrganizations(request func(URL string, dataBody any) (*resty.Re } func (a *AgeRatingOrganizations) Query(query string) ([]*pb.AgeRatingOrganization, error) { - resp, err := a.request("https://api.igdb.com/v4/age_rating_organizations.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/age_ratings.go b/endpoint/age_ratings.go index 32a426c..c837615 100644 --- a/endpoint/age_ratings.go +++ b/endpoint/age_ratings.go @@ -25,7 +25,7 @@ func NewAgeRatings(request func(URL string, dataBody any) (*resty.Response, erro } func (a *AgeRatings) Query(query string) ([]*pb.AgeRating, error) { - resp, err := a.request("https://api.igdb.com/v4/age_ratings.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/alternative_names.go b/endpoint/alternative_names.go index d574261..60ce9a0 100644 --- a/endpoint/alternative_names.go +++ b/endpoint/alternative_names.go @@ -25,7 +25,7 @@ func NewAlternativeNames(request func(URL string, dataBody any) (*resty.Response } func (a *AlternativeNames) Query(query string) ([]*pb.AlternativeName, error) { - resp, err := a.request("https://api.igdb.com/v4/alternative_names.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/artworks.go b/endpoint/artworks.go index 814ce40..fccce4f 100644 --- a/endpoint/artworks.go +++ b/endpoint/artworks.go @@ -25,7 +25,7 @@ func NewArtworks(request func(URL string, dataBody any) (*resty.Response, error) } func (a *Artworks) Query(query string) ([]*pb.Artwork, error) { - resp, err := a.request("https://api.igdb.com/v4/artworks.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/base.go b/endpoint/base.go index 5379cb6..ebb83b9 100644 --- a/endpoint/base.go +++ b/endpoint/base.go @@ -2,6 +2,8 @@ package endpoint import ( "fmt" + pb "github.com/bestnite/go-igdb/proto" + "google.golang.org/protobuf/proto" "strconv" "strings" @@ -10,17 +12,17 @@ import ( type BaseEndpoint[T any] struct { request func(URL string, dataBody any) (*resty.Response, error) - endpointName EndpointName + endpointName Name queryFunc func(string) ([]*T, error) } -func (b *BaseEndpoint[T]) GetEndpointName() EndpointName { +func (b *BaseEndpoint[T]) GetEndpointName() Name { return b.endpointName } func (b *BaseEndpoint[T]) Query(query string) ([]*T, error) { if b.queryFunc == nil { - return nil, fmt.Errorf("Query method must be implemented by specific endpoint") + return nil, fmt.Errorf("query method must be implemented by specific endpoint") } return b.queryFunc(query) } @@ -47,22 +49,18 @@ func (b *BaseEndpoint[T]) GetByIDs(ids []uint64) ([]*T, error) { return b.Query(fmt.Sprintf("where id = (%s); fields *;", builder.String())) } -func (b *BaseEndpoint[T]) GetLastOneId() (uint64, error) { - res, err := b.Query("fields *; sort id desc; limit 1;") +func (b *BaseEndpoint[T]) Count() (uint64, error) { + resp, err := b.request(fmt.Sprintf("https://api.igdb.com/v4/%s/count.pb", b.endpointName), "") if err != nil { - return 0, err + return 0, fmt.Errorf("failed to request: %w", err) } - if len(res) == 0 { - return 0, fmt.Errorf("no results") + + var res pb.Count + if err = proto.Unmarshal(resp.Body(), &res); err != nil { + return 0, fmt.Errorf("failed to unmarshal: %w", err) } - type IdGetter interface { - GetId() uint64 - } - item, ok := any(res[0]).(IdGetter) - if !ok { - return 0, fmt.Errorf("invalid type") - } - return item.GetId(), nil + + return uint64(res.Count), nil } func (b *BaseEndpoint[T]) Paginated(offset, limit uint64) ([]*T, error) { @@ -70,7 +68,7 @@ func (b *BaseEndpoint[T]) Paginated(offset, limit uint64) ([]*T, error) { } type EntityEndpoint[T any] interface { - GetEndpointName() EndpointName + GetEndpointName() Name Query(string) ([]*T, error) GetByID(uint64) (*T, error) GetByIDs([]uint64) ([]*T, error) diff --git a/endpoint/character_genders.go b/endpoint/character_genders.go index 4336571..0d4daaa 100644 --- a/endpoint/character_genders.go +++ b/endpoint/character_genders.go @@ -25,7 +25,7 @@ func NewCharacterGenders(request func(URL string, dataBody any) (*resty.Response } func (a *CharacterGenders) Query(query string) ([]*pb.CharacterGender, error) { - resp, err := a.request("https://api.igdb.com/v4/character_genders.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/character_mug_shots.go b/endpoint/character_mug_shots.go index 9862baa..1c63013 100644 --- a/endpoint/character_mug_shots.go +++ b/endpoint/character_mug_shots.go @@ -25,7 +25,7 @@ func NewCharacterMugShots(request func(URL string, dataBody any) (*resty.Respons } func (a *CharacterMugShots) Query(query string) ([]*pb.CharacterMugShot, error) { - resp, err := a.request("https://api.igdb.com/v4/character_mug_shots.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/character_species.go b/endpoint/character_species.go index 9ab82ad..bdfec18 100644 --- a/endpoint/character_species.go +++ b/endpoint/character_species.go @@ -25,7 +25,7 @@ func NewCharacterSpecies(request func(URL string, dataBody any) (*resty.Response } func (a *CharacterSpecies) Query(query string) ([]*pb.CharacterSpecie, error) { - resp, err := a.request("https://api.igdb.com/v4/character_species.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/characters.go b/endpoint/characters.go index 2ba73c1..89bd75c 100644 --- a/endpoint/characters.go +++ b/endpoint/characters.go @@ -25,7 +25,7 @@ func NewCharacters(request func(URL string, dataBody any) (*resty.Response, erro } func (a *Characters) Query(query string) ([]*pb.Character, error) { - resp, err := a.request("https://api.igdb.com/v4/characters.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collection_membership_types.go b/endpoint/collection_membership_types.go index 86524b6..0b20485 100644 --- a/endpoint/collection_membership_types.go +++ b/endpoint/collection_membership_types.go @@ -25,7 +25,7 @@ func NewCollectionMembershipTypes(request func(URL string, dataBody any) (*resty } func (a *CollectionMembershipTypes) Query(query string) ([]*pb.CollectionMembershipType, error) { - resp, err := a.request("https://api.igdb.com/v4/collection_membership_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collection_memberships.go b/endpoint/collection_memberships.go index 52282e7..94c3347 100644 --- a/endpoint/collection_memberships.go +++ b/endpoint/collection_memberships.go @@ -25,7 +25,7 @@ func NewCollectionMemberships(request func(URL string, dataBody any) (*resty.Res } func (a *CollectionMemberships) Query(query string) ([]*pb.CollectionMembership, error) { - resp, err := a.request("https://api.igdb.com/v4/collection_memberships.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collection_relation_types.go b/endpoint/collection_relation_types.go index 22f42b2..24bf11f 100644 --- a/endpoint/collection_relation_types.go +++ b/endpoint/collection_relation_types.go @@ -25,7 +25,7 @@ func NewCollectionRelationTypes(request func(URL string, dataBody any) (*resty.R } func (a *CollectionRelationTypes) Query(query string) ([]*pb.CollectionRelationType, error) { - resp, err := a.request("https://api.igdb.com/v4/collection_relation_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collection_relations.go b/endpoint/collection_relations.go index ef0851e..5036226 100644 --- a/endpoint/collection_relations.go +++ b/endpoint/collection_relations.go @@ -25,7 +25,7 @@ func NewCollectionRelations(request func(URL string, dataBody any) (*resty.Respo } func (a *CollectionRelations) Query(query string) ([]*pb.CollectionRelation, error) { - resp, err := a.request("https://api.igdb.com/v4/collection_relations.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collection_types.go b/endpoint/collection_types.go index 2e787fa..92b9d2a 100644 --- a/endpoint/collection_types.go +++ b/endpoint/collection_types.go @@ -25,7 +25,7 @@ func NewCollectionTypes(request func(URL string, dataBody any) (*resty.Response, } func (a *CollectionTypes) Query(query string) ([]*pb.CollectionType, error) { - resp, err := a.request("https://api.igdb.com/v4/collection_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/collections.go b/endpoint/collections.go index c3f631e..d0f2d3d 100644 --- a/endpoint/collections.go +++ b/endpoint/collections.go @@ -25,7 +25,7 @@ func NewCollections(request func(URL string, dataBody any) (*resty.Response, err } func (a *Collections) Query(query string) ([]*pb.Collection, error) { - resp, err := a.request("https://api.igdb.com/v4/collections.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/companies.go b/endpoint/companies.go index ebed71d..018be6e 100644 --- a/endpoint/companies.go +++ b/endpoint/companies.go @@ -26,7 +26,7 @@ func NewCompanies(request func(URL string, dataBody any) (*resty.Response, error } func (a *Companies) Query(query string) ([]*pb.Company, error) { - resp, err := a.request("https://api.igdb.com/v4/companies.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/company_logos.go b/endpoint/company_logos.go index 7f8d16c..9fd4d7f 100644 --- a/endpoint/company_logos.go +++ b/endpoint/company_logos.go @@ -25,7 +25,7 @@ func NewCompanyLogos(request func(URL string, dataBody any) (*resty.Response, er } func (a *CompanyLogos) Query(query string) ([]*pb.CompanyLogo, error) { - resp, err := a.request("https://api.igdb.com/v4/company_logos.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/company_statuses.go b/endpoint/company_statuses.go index 7013cf7..05b1f1f 100644 --- a/endpoint/company_statuses.go +++ b/endpoint/company_statuses.go @@ -25,7 +25,7 @@ func NewCompanyStatuses(request func(URL string, dataBody any) (*resty.Response, } func (a *CompanyStatuses) Query(query string) ([]*pb.CompanyStatus, error) { - resp, err := a.request("https://api.igdb.com/v4/company_statuses.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/company_websites.go b/endpoint/company_websites.go index 3c21d1f..1d220a6 100644 --- a/endpoint/company_websites.go +++ b/endpoint/company_websites.go @@ -25,7 +25,7 @@ func NewCompanyWebsites(request func(URL string, dataBody any) (*resty.Response, } func (a *CompanyWebsites) Query(query string) ([]*pb.CompanyWebsite, error) { - resp, err := a.request("https://api.igdb.com/v4/company_websites.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/covers.go b/endpoint/covers.go index 350d144..30e5780 100644 --- a/endpoint/covers.go +++ b/endpoint/covers.go @@ -25,7 +25,7 @@ func NewCovers(request func(URL string, dataBody any) (*resty.Response, error)) } func (a *Covers) Query(query string) ([]*pb.Cover, error) { - resp, err := a.request("https://api.igdb.com/v4/covers.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/date_formats.go b/endpoint/date_formats.go index 8080ea4..e79e260 100644 --- a/endpoint/date_formats.go +++ b/endpoint/date_formats.go @@ -25,7 +25,7 @@ func NewDateFormats(request func(URL string, dataBody any) (*resty.Response, err } func (a *DateFormats) Query(query string) ([]*pb.DateFormat, error) { - resp, err := a.request("https://api.igdb.com/v4/date_formats.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/endpoint_name.go b/endpoint/endpoint_name.go index 91df4e3..94d8bb9 100644 --- a/endpoint/endpoint_name.go +++ b/endpoint/endpoint_name.go @@ -1,82 +1,82 @@ package endpoint -type EndpointName string +type Name string var ( - EPAgeRatingCategories EndpointName = "age_rating_categories" - EPAgeRatingContentDescriptions EndpointName = "age_rating_content_descriptions" - EPAgeRatingContentDescriptionsV2 EndpointName = "age_rating_content_descriptions_v2" - EPAgeRatingOrganizations EndpointName = "age_rating_organizations" - EPAgeRatings EndpointName = "age_ratings" - EPAlternativeNames EndpointName = "alternative_names" - EPArtworks EndpointName = "artworks" - EPCharacterGenders EndpointName = "character_genders" - EPCharacterMugShots EndpointName = "character_mug_shots" - EPCharacters EndpointName = "characters" - EPCharacterSpecies EndpointName = "character_species" - EPCollectionMemberships EndpointName = "collection_memberships" - EPCollectionMembershipTypes EndpointName = "collection_membership_types" - EPCollectionRelations EndpointName = "collection_relations" - EPCollectionRelationTypes EndpointName = "collection_relation_types" - EPCollections EndpointName = "collections" - EPCollectionTypes EndpointName = "collection_types" - EPCompanies EndpointName = "companies" - EPCompanyLogos EndpointName = "company_logos" - EPCompanyStatuses EndpointName = "company_statuses" - EPCompanyWebsites EndpointName = "company_websites" - EPCovers EndpointName = "covers" - EPDateFormats EndpointName = "date_formats" - EPEventLogos EndpointName = "event_logos" - EPEventNetworks EndpointName = "event_networks" - EPEvents EndpointName = "events" - EPExternalGames EndpointName = "external_games" - EPExternalGameSources EndpointName = "external_game_sources" - EPFranchises EndpointName = "franchises" - EPGameEngineLogos EndpointName = "game_engine_logos" - EPGameEngines EndpointName = "game_engines" - EPGameLocalizations EndpointName = "game_localizations" - EPGameModes EndpointName = "game_modes" - EPGameReleaseFormats EndpointName = "game_release_formats" - EPGames EndpointName = "games" - EPGameStatuses EndpointName = "game_statuses" - EPGameTimeToBeats EndpointName = "game_time_to_beats" - EPGameTypes EndpointName = "game_types" - EPGameVersionFeatures EndpointName = "game_version_features" - EPGameVersionFeatureValues EndpointName = "game_version_feature_values" - EPGameVersions EndpointName = "game_versions" - EPGameVideos EndpointName = "game_videos" - EPGenres EndpointName = "genres" - EPInvolvedCompanies EndpointName = "involved_companies" - EPKeywords EndpointName = "keywords" - EPLanguages EndpointName = "languages" - EPLanguageSupports EndpointName = "language_supports" - EPLanguageSupportTypes EndpointName = "language_support_types" - EPMultiplayerModes EndpointName = "multiplayer_modes" - EPNetworkTypes EndpointName = "network_types" - EPPlatformFamilies EndpointName = "platform_families" - EPPlatformLogos EndpointName = "platform_logos" - EPPlatforms EndpointName = "platforms" - EPPlatformTypes EndpointName = "platform_types" - EPPlatformVersionCompanies EndpointName = "platform_version_companies" - EPPlatformVersionReleaseDates EndpointName = "platform_version_release_dates" - EPPlatformVersions EndpointName = "platform_versions" - EPPlatformWebsites EndpointName = "platform_websites" - EPPlayerPerspectives EndpointName = "player_perspectives" - EPPopularityPrimitives EndpointName = "popularity_primitives" - EPPopularityTypes EndpointName = "popularity_types" - EPRegions EndpointName = "regions" - EPReleaseDateRegions EndpointName = "release_date_regions" - EPReleaseDates EndpointName = "release_dates" - EPReleaseDateStatuses EndpointName = "release_date_statuses" - EPScreenshots EndpointName = "screenshots" - EPSearch EndpointName = "search" - EPThemes EndpointName = "themes" - EPWebhooks EndpointName = "webhooks" - EPWebsites EndpointName = "websites" - EPWebsiteTypes EndpointName = "website_types" + EPAgeRatingCategories Name = "age_rating_categories" + EPAgeRatingContentDescriptions Name = "age_rating_content_descriptions" + EPAgeRatingContentDescriptionsV2 Name = "age_rating_content_descriptions_v2" + EPAgeRatingOrganizations Name = "age_rating_organizations" + EPAgeRatings Name = "age_ratings" + EPAlternativeNames Name = "alternative_names" + EPArtworks Name = "artworks" + EPCharacterGenders Name = "character_genders" + EPCharacterMugShots Name = "character_mug_shots" + EPCharacters Name = "characters" + EPCharacterSpecies Name = "character_species" + EPCollectionMemberships Name = "collection_memberships" + EPCollectionMembershipTypes Name = "collection_membership_types" + EPCollectionRelations Name = "collection_relations" + EPCollectionRelationTypes Name = "collection_relation_types" + EPCollections Name = "collections" + EPCollectionTypes Name = "collection_types" + EPCompanies Name = "companies" + EPCompanyLogos Name = "company_logos" + EPCompanyStatuses Name = "company_statuses" + EPCompanyWebsites Name = "company_websites" + EPCovers Name = "covers" + EPDateFormats Name = "date_formats" + EPEventLogos Name = "event_logos" + EPEventNetworks Name = "event_networks" + EPEvents Name = "events" + EPExternalGames Name = "external_games" + EPExternalGameSources Name = "external_game_sources" + EPFranchises Name = "franchises" + EPGameEngineLogos Name = "game_engine_logos" + EPGameEngines Name = "game_engines" + EPGameLocalizations Name = "game_localizations" + EPGameModes Name = "game_modes" + EPGameReleaseFormats Name = "game_release_formats" + EPGames Name = "games" + EPGameStatuses Name = "game_statuses" + EPGameTimeToBeats Name = "game_time_to_beats" + EPGameTypes Name = "game_types" + EPGameVersionFeatures Name = "game_version_features" + EPGameVersionFeatureValues Name = "game_version_feature_values" + EPGameVersions Name = "game_versions" + EPGameVideos Name = "game_videos" + EPGenres Name = "genres" + EPInvolvedCompanies Name = "involved_companies" + EPKeywords Name = "keywords" + EPLanguages Name = "languages" + EPLanguageSupports Name = "language_supports" + EPLanguageSupportTypes Name = "language_support_types" + EPMultiplayerModes Name = "multiplayer_modes" + EPNetworkTypes Name = "network_types" + EPPlatformFamilies Name = "platform_families" + EPPlatformLogos Name = "platform_logos" + EPPlatforms Name = "platforms" + EPPlatformTypes Name = "platform_types" + EPPlatformVersionCompanies Name = "platform_version_companies" + EPPlatformVersionReleaseDates Name = "platform_version_release_dates" + EPPlatformVersions Name = "platform_versions" + EPPlatformWebsites Name = "platform_websites" + EPPlayerPerspectives Name = "player_perspectives" + EPPopularityPrimitives Name = "popularity_primitives" + EPPopularityTypes Name = "popularity_types" + EPRegions Name = "regions" + EPReleaseDateRegions Name = "release_date_regions" + EPReleaseDates Name = "release_dates" + EPReleaseDateStatuses Name = "release_date_statuses" + EPScreenshots Name = "screenshots" + EPSearch Name = "search" + EPThemes Name = "themes" + EPWebhooks Name = "webhooks" + EPWebsites Name = "websites" + EPWebsiteTypes Name = "website_types" ) -var AllEndpoints = []EndpointName{ +var AllNames = []Name{ EPAgeRatingCategories, EPAgeRatingContentDescriptions, EPAgeRatingContentDescriptionsV2, diff --git a/endpoint/event_logos.go b/endpoint/event_logos.go index 1dc9329..763eae8 100644 --- a/endpoint/event_logos.go +++ b/endpoint/event_logos.go @@ -25,7 +25,7 @@ func NewEventLogos(request func(URL string, dataBody any) (*resty.Response, erro } func (a *EventLogos) Query(query string) ([]*pb.EventLogo, error) { - resp, err := a.request("https://api.igdb.com/v4/event_logos.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/event_networks.go b/endpoint/event_networks.go index 47ebc95..c9d576e 100644 --- a/endpoint/event_networks.go +++ b/endpoint/event_networks.go @@ -25,7 +25,7 @@ func NewEventNetworks(request func(URL string, dataBody any) (*resty.Response, e } func (a *EventNetworks) Query(query string) ([]*pb.EventNetwork, error) { - resp, err := a.request("https://api.igdb.com/v4/event_networks.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/events.go b/endpoint/events.go index 86bbc10..ce275c4 100644 --- a/endpoint/events.go +++ b/endpoint/events.go @@ -25,7 +25,7 @@ func NewEvents(request func(URL string, dataBody any) (*resty.Response, error)) } func (a *Events) Query(query string) ([]*pb.Event, error) { - resp, err := a.request("https://api.igdb.com/v4/events.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/external_game_sources.go b/endpoint/external_game_sources.go index e4d404c..250c261 100644 --- a/endpoint/external_game_sources.go +++ b/endpoint/external_game_sources.go @@ -25,7 +25,7 @@ func NewExternalGameSources(request func(URL string, dataBody any) (*resty.Respo } func (a *ExternalGameSources) Query(query string) ([]*pb.ExternalGameSource, error) { - resp, err := a.request("https://api.igdb.com/v4/external_game_sources.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/external_games.go b/endpoint/external_games.go index 0384b4f..2eb6898 100644 --- a/endpoint/external_games.go +++ b/endpoint/external_games.go @@ -25,7 +25,7 @@ func NewExternalGames(request func(URL string, dataBody any) (*resty.Response, e } func (a *ExternalGames) Query(query string) ([]*pb.ExternalGame, error) { - resp, err := a.request("https://api.igdb.com/v4/external_games.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/franchises.go b/endpoint/franchises.go index 26e48f1..ae9368f 100644 --- a/endpoint/franchises.go +++ b/endpoint/franchises.go @@ -25,7 +25,7 @@ func NewFranchises(request func(URL string, dataBody any) (*resty.Response, erro } func (a *Franchises) Query(query string) ([]*pb.Franchise, error) { - resp, err := a.request("https://api.igdb.com/v4/franchises.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_engine_logos.go b/endpoint/game_engine_logos.go index 1aef913..649c2ef 100644 --- a/endpoint/game_engine_logos.go +++ b/endpoint/game_engine_logos.go @@ -25,7 +25,7 @@ func NewGameEngineLogos(request func(URL string, dataBody any) (*resty.Response, } func (a *GameEngineLogos) Query(query string) ([]*pb.GameEngineLogo, error) { - resp, err := a.request("https://api.igdb.com/v4/game_engine_logos.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_engines.go b/endpoint/game_engines.go index 74699b4..fdc5067 100644 --- a/endpoint/game_engines.go +++ b/endpoint/game_engines.go @@ -25,7 +25,7 @@ func NewGameEngines(request func(URL string, dataBody any) (*resty.Response, err } func (a *GameEngines) Query(query string) ([]*pb.GameEngine, error) { - resp, err := a.request("https://api.igdb.com/v4/game_engines.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_localizations.go b/endpoint/game_localizations.go index 21d4879..fc8d118 100644 --- a/endpoint/game_localizations.go +++ b/endpoint/game_localizations.go @@ -25,7 +25,7 @@ func NewGameLocalizations(request func(URL string, dataBody any) (*resty.Respons } func (a *GameLocalizations) Query(query string) ([]*pb.GameLocalization, error) { - resp, err := a.request("https://api.igdb.com/v4/game_localizations.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_modes.go b/endpoint/game_modes.go index 1ebc7e3..63d41f1 100644 --- a/endpoint/game_modes.go +++ b/endpoint/game_modes.go @@ -25,7 +25,7 @@ func NewGameModes(request func(URL string, dataBody any) (*resty.Response, error } func (a *GameModes) Query(query string) ([]*pb.GameMode, error) { - resp, err := a.request("https://api.igdb.com/v4/game_modes.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_release_formats.go b/endpoint/game_release_formats.go index b53599f..15ce06a 100644 --- a/endpoint/game_release_formats.go +++ b/endpoint/game_release_formats.go @@ -25,7 +25,7 @@ func NewGameReleaseFormats(request func(URL string, dataBody any) (*resty.Respon } func (a *GameReleaseFormats) Query(query string) ([]*pb.GameReleaseFormat, error) { - resp, err := a.request("https://api.igdb.com/v4/game_release_formats.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_statuses.go b/endpoint/game_statuses.go index cc4feb2..26bba5c 100644 --- a/endpoint/game_statuses.go +++ b/endpoint/game_statuses.go @@ -25,7 +25,7 @@ func NewGameStatuses(request func(URL string, dataBody any) (*resty.Response, er } func (a *GameStatuses) Query(query string) ([]*pb.GameStatus, error) { - resp, err := a.request("https://api.igdb.com/v4/game_statuses.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_time_to_beats.go b/endpoint/game_time_to_beats.go index 01529c6..b0a6cc5 100644 --- a/endpoint/game_time_to_beats.go +++ b/endpoint/game_time_to_beats.go @@ -25,7 +25,7 @@ func NewGameTimeToBeats(request func(URL string, dataBody any) (*resty.Response, } func (a *GameTimeToBeats) Query(query string) ([]*pb.GameTimeToBeat, error) { - resp, err := a.request("https://api.igdb.com/v4/game_time_to_beats.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_types.go b/endpoint/game_types.go index 6db2671..d3ecfff 100644 --- a/endpoint/game_types.go +++ b/endpoint/game_types.go @@ -25,7 +25,7 @@ func NewGameTypes(request func(URL string, dataBody any) (*resty.Response, error } func (a *GameTypes) Query(query string) ([]*pb.GameType, error) { - resp, err := a.request("https://api.igdb.com/v4/game_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_version_feature_values.go b/endpoint/game_version_feature_values.go index a8f7ef6..1feb804 100644 --- a/endpoint/game_version_feature_values.go +++ b/endpoint/game_version_feature_values.go @@ -25,7 +25,7 @@ func NewGameVersionFeatureValues(request func(URL string, dataBody any) (*resty. } func (a *GameVersionFeatureValues) Query(query string) ([]*pb.GameVersionFeatureValue, error) { - resp, err := a.request("https://api.igdb.com/v4/game_version_feature_values.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_version_features.go b/endpoint/game_version_features.go index 4cdd9e7..5ea30f4 100644 --- a/endpoint/game_version_features.go +++ b/endpoint/game_version_features.go @@ -25,7 +25,7 @@ func NewGameVersionFeatures(request func(URL string, dataBody any) (*resty.Respo } func (a *GameVersionFeatures) Query(query string) ([]*pb.GameVersionFeature, error) { - resp, err := a.request("https://api.igdb.com/v4/game_version_features.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_versions.go b/endpoint/game_versions.go index 8d8d8a1..929c275 100644 --- a/endpoint/game_versions.go +++ b/endpoint/game_versions.go @@ -25,7 +25,7 @@ func NewGameVersions(request func(URL string, dataBody any) (*resty.Response, er } func (a *GameVersions) Query(query string) ([]*pb.GameVersion, error) { - resp, err := a.request("https://api.igdb.com/v4/game_versions.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/game_videos.go b/endpoint/game_videos.go index 2892ad9..d3febe9 100644 --- a/endpoint/game_videos.go +++ b/endpoint/game_videos.go @@ -25,7 +25,7 @@ func NewGameVideos(request func(URL string, dataBody any) (*resty.Response, erro } func (a *GameVideos) Query(query string) ([]*pb.GameVideo, error) { - resp, err := a.request("https://api.igdb.com/v4/game_videos.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/games.go b/endpoint/games.go index 1190824..37a400d 100644 --- a/endpoint/games.go +++ b/endpoint/games.go @@ -25,7 +25,7 @@ func NewGames(request func(URL string, dataBody any) (*resty.Response, error)) * } func (a *Games) Query(query string) ([]*pb.Game, error) { - resp, err := a.request("https://api.igdb.com/v4/games.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/genres.go b/endpoint/genres.go index 1adc502..4c79e30 100644 --- a/endpoint/genres.go +++ b/endpoint/genres.go @@ -25,7 +25,7 @@ func NewGenres(request func(URL string, dataBody any) (*resty.Response, error)) } func (a *Genres) Query(query string) ([]*pb.Genre, error) { - resp, err := a.request("https://api.igdb.com/v4/genres.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/involved_companies.go b/endpoint/involved_companies.go index 69d23bc..c312ec8 100644 --- a/endpoint/involved_companies.go +++ b/endpoint/involved_companies.go @@ -25,7 +25,7 @@ func NewInvolvedCompanies(request func(URL string, dataBody any) (*resty.Respons } func (a *InvolvedCompanies) Query(query string) ([]*pb.InvolvedCompany, error) { - resp, err := a.request("https://api.igdb.com/v4/involved_companies.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/keywords.go b/endpoint/keywords.go index 66cbc1b..a8691bd 100644 --- a/endpoint/keywords.go +++ b/endpoint/keywords.go @@ -25,7 +25,7 @@ func NewKeywords(request func(URL string, dataBody any) (*resty.Response, error) } func (a *Keywords) Query(query string) ([]*pb.Keyword, error) { - resp, err := a.request("https://api.igdb.com/v4/keywords.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/language_support_types.go b/endpoint/language_support_types.go index aa07923..ab3e8e7 100644 --- a/endpoint/language_support_types.go +++ b/endpoint/language_support_types.go @@ -25,7 +25,7 @@ func NewLanguageSupportTypes(request func(URL string, dataBody any) (*resty.Resp } func (a *LanguageSupportTypes) Query(query string) ([]*pb.LanguageSupportType, error) { - resp, err := a.request("https://api.igdb.com/v4/language_support_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/language_supports.go b/endpoint/language_supports.go index 34f8b7f..302db11 100644 --- a/endpoint/language_supports.go +++ b/endpoint/language_supports.go @@ -25,7 +25,7 @@ func NewLanguageSupports(request func(URL string, dataBody any) (*resty.Response } func (a *LanguageSupports) Query(query string) ([]*pb.LanguageSupport, error) { - resp, err := a.request("https://api.igdb.com/v4/language_supports.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/languages.go b/endpoint/languages.go index 785c6af..ace7f8e 100644 --- a/endpoint/languages.go +++ b/endpoint/languages.go @@ -25,7 +25,7 @@ func NewLanguages(request func(URL string, dataBody any) (*resty.Response, error } func (a *Languages) Query(query string) ([]*pb.Language, error) { - resp, err := a.request("https://api.igdb.com/v4/languages.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/multiplayer_modes.go b/endpoint/multiplayer_modes.go index e1a8550..230c578 100644 --- a/endpoint/multiplayer_modes.go +++ b/endpoint/multiplayer_modes.go @@ -25,7 +25,7 @@ func NewMultiplayerModes(request func(URL string, dataBody any) (*resty.Response } func (a *MultiplayerModes) Query(query string) ([]*pb.MultiplayerMode, error) { - resp, err := a.request("https://api.igdb.com/v4/multiplayer_modes.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/network_types.go b/endpoint/network_types.go index 4234607..ef81c47 100644 --- a/endpoint/network_types.go +++ b/endpoint/network_types.go @@ -25,7 +25,7 @@ func NewNetworkTypes(request func(URL string, dataBody any) (*resty.Response, er } func (a *NetworkTypes) Query(query string) ([]*pb.NetworkType, error) { - resp, err := a.request("https://api.igdb.com/v4/network_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_families.go b/endpoint/platform_families.go index c45b072..4cf3d24 100644 --- a/endpoint/platform_families.go +++ b/endpoint/platform_families.go @@ -25,7 +25,7 @@ func NewPlatformFamilies(request func(URL string, dataBody any) (*resty.Response } func (a *PlatformFamilies) Query(query string) ([]*pb.PlatformFamily, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_families.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_logos.go b/endpoint/platform_logos.go index 504b26c..2e0d090 100644 --- a/endpoint/platform_logos.go +++ b/endpoint/platform_logos.go @@ -25,7 +25,7 @@ func NewPlatformLogos(request func(URL string, dataBody any) (*resty.Response, e } func (a *PlatformLogos) Query(query string) ([]*pb.PlatformLogo, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_logos.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_types.go b/endpoint/platform_types.go index cb9f457..3cae3ef 100644 --- a/endpoint/platform_types.go +++ b/endpoint/platform_types.go @@ -25,7 +25,7 @@ func NewPlatformTypes(request func(URL string, dataBody any) (*resty.Response, e } func (a *PlatformTypes) Query(query string) ([]*pb.PlatformType, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_version_companies.go b/endpoint/platform_version_companies.go index 6947833..6846b26 100644 --- a/endpoint/platform_version_companies.go +++ b/endpoint/platform_version_companies.go @@ -25,7 +25,7 @@ func NewPlatformVersionCompanies(request func(URL string, dataBody any) (*resty. } func (a *PlatformVersionCompanies) Query(query string) ([]*pb.PlatformVersionCompany, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_version_companies.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_version_release_dates.go b/endpoint/platform_version_release_dates.go index 016632b..440b36d 100644 --- a/endpoint/platform_version_release_dates.go +++ b/endpoint/platform_version_release_dates.go @@ -25,7 +25,7 @@ func NewPlatformVersionReleaseDates(request func(URL string, dataBody any) (*res } func (a *PlatformVersionReleaseDates) Query(query string) ([]*pb.PlatformVersionReleaseDate, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_version_release_dates.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_versions.go b/endpoint/platform_versions.go index 534a23b..afa1f82 100644 --- a/endpoint/platform_versions.go +++ b/endpoint/platform_versions.go @@ -25,7 +25,7 @@ func NewPlatformVersions(request func(URL string, dataBody any) (*resty.Response } func (a *PlatformVersions) Query(query string) ([]*pb.PlatformVersion, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_versions.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platform_websites.go b/endpoint/platform_websites.go index ca3261e..d945fab 100644 --- a/endpoint/platform_websites.go +++ b/endpoint/platform_websites.go @@ -25,7 +25,7 @@ func NewPlatformWebsites(request func(URL string, dataBody any) (*resty.Response } func (a *PlatformWebsites) Query(query string) ([]*pb.PlatformWebsite, error) { - resp, err := a.request("https://api.igdb.com/v4/platform_websites.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/platforms.go b/endpoint/platforms.go index e587190..04bb858 100644 --- a/endpoint/platforms.go +++ b/endpoint/platforms.go @@ -25,7 +25,7 @@ func NewPlatforms(request func(URL string, dataBody any) (*resty.Response, error } func (a *Platforms) Query(query string) ([]*pb.Platform, error) { - resp, err := a.request("https://api.igdb.com/v4/platforms.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/player_perspectives.go b/endpoint/player_perspectives.go index cb7fe59..7163648 100644 --- a/endpoint/player_perspectives.go +++ b/endpoint/player_perspectives.go @@ -25,7 +25,7 @@ func NewPlayerPerspectives(request func(URL string, dataBody any) (*resty.Respon } func (a *PlayerPerspectives) Query(query string) ([]*pb.PlayerPerspective, error) { - resp, err := a.request("https://api.igdb.com/v4/player_perspectives.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/popularity_primitives.go b/endpoint/popularity_primitives.go index 7eaa501..22d6375 100644 --- a/endpoint/popularity_primitives.go +++ b/endpoint/popularity_primitives.go @@ -25,7 +25,7 @@ func NewPopularityPrimitives(request func(URL string, dataBody any) (*resty.Resp } func (a *PopularityPrimitives) Query(query string) ([]*pb.PopularityPrimitive, error) { - resp, err := a.request("https://api.igdb.com/v4/popularity_primitives.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/popularity_types.go b/endpoint/popularity_types.go index 4e3e10a..bb82be1 100644 --- a/endpoint/popularity_types.go +++ b/endpoint/popularity_types.go @@ -25,7 +25,7 @@ func NewPopularityTypes(request func(URL string, dataBody any) (*resty.Response, } func (a *PopularityTypes) Query(query string) ([]*pb.PopularityType, error) { - resp, err := a.request("https://api.igdb.com/v4/popularity_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/regions.go b/endpoint/regions.go index 8c79dd0..6578e76 100644 --- a/endpoint/regions.go +++ b/endpoint/regions.go @@ -25,7 +25,7 @@ func NewRegions(request func(URL string, dataBody any) (*resty.Response, error)) } func (a *Regions) Query(query string) ([]*pb.Region, error) { - resp, err := a.request("https://api.igdb.com/v4/regions.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/release_date_regions.go b/endpoint/release_date_regions.go index 912e87e..542f78f 100644 --- a/endpoint/release_date_regions.go +++ b/endpoint/release_date_regions.go @@ -25,7 +25,7 @@ func NewReleaseDateRegions(request func(URL string, dataBody any) (*resty.Respon } func (a *ReleaseDateRegions) Query(query string) ([]*pb.ReleaseDateRegion, error) { - resp, err := a.request("https://api.igdb.com/v4/release_date_regions.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/release_date_statuses.go b/endpoint/release_date_statuses.go index 65a8fc2..ff47081 100644 --- a/endpoint/release_date_statuses.go +++ b/endpoint/release_date_statuses.go @@ -25,7 +25,7 @@ func NewReleaseDateStatuses(request func(URL string, dataBody any) (*resty.Respo } func (a *ReleaseDateStatuses) Query(query string) ([]*pb.ReleaseDateStatus, error) { - resp, err := a.request("https://api.igdb.com/v4/release_date_statuses.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/release_dates.go b/endpoint/release_dates.go index 126fd25..ab3637c 100644 --- a/endpoint/release_dates.go +++ b/endpoint/release_dates.go @@ -25,7 +25,7 @@ func NewReleaseDates(request func(URL string, dataBody any) (*resty.Response, er } func (a *ReleaseDates) Query(query string) ([]*pb.ReleaseDate, error) { - resp, err := a.request("https://api.igdb.com/v4/release_dates.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/screenshots.go b/endpoint/screenshots.go index 71043e4..c43613b 100644 --- a/endpoint/screenshots.go +++ b/endpoint/screenshots.go @@ -25,7 +25,7 @@ func NewScreenshots(request func(URL string, dataBody any) (*resty.Response, err } func (a *Screenshots) Query(query string) ([]*pb.Screenshot, error) { - resp, err := a.request("https://api.igdb.com/v4/screenshots.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/search.go b/endpoint/search.go index 80bc90f..f5c49b2 100644 --- a/endpoint/search.go +++ b/endpoint/search.go @@ -23,18 +23,20 @@ var webSearchCFCookies struct { } type Search struct { + endpointName Name request func(URL string, dataBody any) (*resty.Response, error) flaresolverr *flaresolverr.Flaresolverr } func NewSearch(request func(URL string, dataBody any) (*resty.Response, error)) *Search { return &Search{ - request: request, + endpointName: EPSearch, + request: request, } } func (a *Search) Search(query string) ([]*pb.Search, error) { - resp, err := a.request("https://api.igdb.com/v4/search.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/themes.go b/endpoint/themes.go index b1202b9..2cb4c19 100644 --- a/endpoint/themes.go +++ b/endpoint/themes.go @@ -25,7 +25,7 @@ func NewThemes(request func(URL string, dataBody any) (*resty.Response, error)) } func (a *Themes) Query(query string) ([]*pb.Theme, error) { - resp, err := a.request("https://api.igdb.com/v4/themes.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/webhooks.go b/endpoint/webhooks.go index f19a510..5b7ec25 100644 --- a/endpoint/webhooks.go +++ b/endpoint/webhooks.go @@ -18,7 +18,7 @@ func NewWebhooks(request func(URL string, dataBody any) (*resty.Response, error) } } -func (a *Webhooks) Register(endpoint EndpointName, secret, callbackUrl string) error { +func (a *Webhooks) Register(endpoint Name, secret, callbackUrl string) error { dataBody := url.Values{} dataBody.Set("url", callbackUrl) dataBody.Set("secret", secret) diff --git a/endpoint/website_types.go b/endpoint/website_types.go index 6a4ac6a..5c953bc 100644 --- a/endpoint/website_types.go +++ b/endpoint/website_types.go @@ -25,7 +25,7 @@ func NewWebsiteTypes(request func(URL string, dataBody any) (*resty.Response, er } func (a *WebsiteTypes) Query(query string) ([]*pb.WebsiteType, error) { - resp, err := a.request("https://api.igdb.com/v4/website_types.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/endpoint/websites.go b/endpoint/websites.go index 0d7cebb..f483015 100644 --- a/endpoint/websites.go +++ b/endpoint/websites.go @@ -25,7 +25,7 @@ func NewWebsites(request func(URL string, dataBody any) (*resty.Response, error) } func (a *Websites) Query(query string) ([]*pb.Website, error) { - resp, err := a.request("https://api.igdb.com/v4/websites.pb", query) + resp, err := a.request(fmt.Sprintf("https://api.igdb.com/v4/%s.pb", a.endpointName), query) if err != nil { return nil, fmt.Errorf("failed to request: %w", err) } diff --git a/request.go b/request.go index dbe8e81..0ebf223 100644 --- a/request.go +++ b/request.go @@ -24,6 +24,6 @@ func request() *resty.Request { type disableLogger struct{} -func (d disableLogger) Errorf(format string, v ...interface{}) {} -func (d disableLogger) Warnf(format string, v ...interface{}) {} -func (d disableLogger) Debugf(format string, v ...interface{}) {} +func (d disableLogger) Errorf(string, ...interface{}) {} +func (d disableLogger) Warnf(string, ...interface{}) {} +func (d disableLogger) Debugf(string, ...interface{}) {} diff --git a/token.go b/token.go index 89defca..ff37e2c 100644 --- a/token.go +++ b/token.go @@ -7,21 +7,21 @@ import ( "time" ) -type twitchToken struct { +type TwitchToken struct { clientID string clientSecret string token string expires time.Time } -func NewTwitchToken(clientID, clientSecret string) *twitchToken { - return &twitchToken{ +func NewTwitchToken(clientID, clientSecret string) *TwitchToken { + return &TwitchToken{ clientID: clientID, clientSecret: clientSecret, } } -func (t *twitchToken) getToken() (string, error) { +func (t *TwitchToken) getToken() (string, error) { if t.token != "" && time.Now().Before(t.expires) { return t.token, nil } @@ -34,7 +34,7 @@ func (t *twitchToken) getToken() (string, error) { return token, nil } -func (t *twitchToken) loginTwitch() (string, time.Duration, error) { +func (t *TwitchToken) loginTwitch() (string, time.Duration, error) { baseURL, _ := url.Parse("https://id.twitch.tv/oauth2/token") params := url.Values{} params.Add("client_id", t.clientID)