ficsit-cli-flake/ficsit/types.go
2022-06-07 02:55:26 +03:00

808 lines
27 KiB
Go

// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
package ficsit
import (
"context"
"encoding/json"
"fmt"
"time"
"github.com/Khan/genqlient/graphql"
"github.com/satisfactorymodding/ficsit-cli/ficsit/utils"
)
// GetModMod includes the requested fields of the GraphQL type Mod.
type GetModMod struct {
Id string `json:"id"`
Mod_reference string `json:"mod_reference"`
Name string `json:"name"`
Views int `json:"views"`
Downloads int `json:"downloads"`
Authors []GetModModAuthorsUserMod `json:"authors"`
Full_description string `json:"full_description"`
Source_url string `json:"source_url"`
Created_at time.Time `json:"-"`
}
// GetId returns GetModMod.Id, and is useful for accessing the field via an interface.
func (v *GetModMod) GetId() string { return v.Id }
// GetMod_reference returns GetModMod.Mod_reference, and is useful for accessing the field via an interface.
func (v *GetModMod) GetMod_reference() string { return v.Mod_reference }
// GetName returns GetModMod.Name, and is useful for accessing the field via an interface.
func (v *GetModMod) GetName() string { return v.Name }
// GetViews returns GetModMod.Views, and is useful for accessing the field via an interface.
func (v *GetModMod) GetViews() int { return v.Views }
// GetDownloads returns GetModMod.Downloads, and is useful for accessing the field via an interface.
func (v *GetModMod) GetDownloads() int { return v.Downloads }
// GetAuthors returns GetModMod.Authors, and is useful for accessing the field via an interface.
func (v *GetModMod) GetAuthors() []GetModModAuthorsUserMod { return v.Authors }
// GetFull_description returns GetModMod.Full_description, and is useful for accessing the field via an interface.
func (v *GetModMod) GetFull_description() string { return v.Full_description }
// GetSource_url returns GetModMod.Source_url, and is useful for accessing the field via an interface.
func (v *GetModMod) GetSource_url() string { return v.Source_url }
// GetCreated_at returns GetModMod.Created_at, and is useful for accessing the field via an interface.
func (v *GetModMod) GetCreated_at() time.Time { return v.Created_at }
func (v *GetModMod) UnmarshalJSON(b []byte) error {
if string(b) == "null" {
return nil
}
var firstPass struct {
*GetModMod
Created_at json.RawMessage `json:"created_at"`
graphql.NoUnmarshalJSON
}
firstPass.GetModMod = v
err := json.Unmarshal(b, &firstPass)
if err != nil {
return err
}
{
dst := &v.Created_at
src := firstPass.Created_at
if len(src) != 0 && string(src) != "null" {
err = utils.UnmarshalDateTime(
src, dst)
if err != nil {
return fmt.Errorf(
"Unable to unmarshal GetModMod.Created_at: %w", err)
}
}
}
return nil
}
type __premarshalGetModMod struct {
Id string `json:"id"`
Mod_reference string `json:"mod_reference"`
Name string `json:"name"`
Views int `json:"views"`
Downloads int `json:"downloads"`
Authors []GetModModAuthorsUserMod `json:"authors"`
Full_description string `json:"full_description"`
Source_url string `json:"source_url"`
Created_at json.RawMessage `json:"created_at"`
}
func (v *GetModMod) MarshalJSON() ([]byte, error) {
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
return json.Marshal(premarshaled)
}
func (v *GetModMod) __premarshalJSON() (*__premarshalGetModMod, error) {
var retval __premarshalGetModMod
retval.Id = v.Id
retval.Mod_reference = v.Mod_reference
retval.Name = v.Name
retval.Views = v.Views
retval.Downloads = v.Downloads
retval.Authors = v.Authors
retval.Full_description = v.Full_description
retval.Source_url = v.Source_url
{
dst := &retval.Created_at
src := v.Created_at
var err error
*dst, err = json.Marshal(
&src)
if err != nil {
return nil, fmt.Errorf(
"Unable to marshal GetModMod.Created_at: %w", err)
}
}
return &retval, nil
}
// GetModModAuthorsUserMod includes the requested fields of the GraphQL type UserMod.
type GetModModAuthorsUserMod struct {
Role string `json:"role"`
User GetModModAuthorsUserModUser `json:"user"`
}
// GetRole returns GetModModAuthorsUserMod.Role, and is useful for accessing the field via an interface.
func (v *GetModModAuthorsUserMod) GetRole() string { return v.Role }
// GetUser returns GetModModAuthorsUserMod.User, and is useful for accessing the field via an interface.
func (v *GetModModAuthorsUserMod) GetUser() GetModModAuthorsUserModUser { return v.User }
// GetModModAuthorsUserModUser includes the requested fields of the GraphQL type User.
type GetModModAuthorsUserModUser struct {
Username string `json:"username"`
}
// GetUsername returns GetModModAuthorsUserModUser.Username, and is useful for accessing the field via an interface.
func (v *GetModModAuthorsUserModUser) GetUsername() string { return v.Username }
// GetModResponse is returned by GetMod on success.
type GetModResponse struct {
Mod GetModMod `json:"mod"`
}
// GetMod returns GetModResponse.Mod, and is useful for accessing the field via an interface.
func (v *GetModResponse) GetMod() GetModMod { return v.Mod }
type ModFields string
const (
ModFieldsCreatedAt ModFields = "created_at"
ModFieldsDownloads ModFields = "downloads"
ModFieldsHotness ModFields = "hotness"
ModFieldsLastVersionDate ModFields = "last_version_date"
ModFieldsName ModFields = "name"
ModFieldsPopularity ModFields = "popularity"
ModFieldsSearch ModFields = "search"
ModFieldsUpdatedAt ModFields = "updated_at"
ModFieldsViews ModFields = "views"
)
type ModFilter struct {
Hidden bool `json:"hidden,omitempty"`
Ids []string `json:"ids,omitempty"`
Limit int `json:"limit,omitempty"`
Offset int `json:"offset,omitempty"`
Order Order `json:"order,omitempty"`
Order_by ModFields `json:"order_by,omitempty"`
References []string `json:"references,omitempty"`
Search string `json:"search,omitempty"`
}
// GetHidden returns ModFilter.Hidden, and is useful for accessing the field via an interface.
func (v *ModFilter) GetHidden() bool { return v.Hidden }
// GetIds returns ModFilter.Ids, and is useful for accessing the field via an interface.
func (v *ModFilter) GetIds() []string { return v.Ids }
// GetLimit returns ModFilter.Limit, and is useful for accessing the field via an interface.
func (v *ModFilter) GetLimit() int { return v.Limit }
// GetOffset returns ModFilter.Offset, and is useful for accessing the field via an interface.
func (v *ModFilter) GetOffset() int { return v.Offset }
// GetOrder returns ModFilter.Order, and is useful for accessing the field via an interface.
func (v *ModFilter) GetOrder() Order { return v.Order }
// GetOrder_by returns ModFilter.Order_by, and is useful for accessing the field via an interface.
func (v *ModFilter) GetOrder_by() ModFields { return v.Order_by }
// GetReferences returns ModFilter.References, and is useful for accessing the field via an interface.
func (v *ModFilter) GetReferences() []string { return v.References }
// GetSearch returns ModFilter.Search, and is useful for accessing the field via an interface.
func (v *ModFilter) GetSearch() string { return v.Search }
type ModVersionConstraint struct {
ModIdOrReference string `json:"modIdOrReference"`
Version string `json:"version"`
}
// GetModIdOrReference returns ModVersionConstraint.ModIdOrReference, and is useful for accessing the field via an interface.
func (v *ModVersionConstraint) GetModIdOrReference() string { return v.ModIdOrReference }
// GetVersion returns ModVersionConstraint.Version, and is useful for accessing the field via an interface.
func (v *ModVersionConstraint) GetVersion() string { return v.Version }
// ModVersionsMod includes the requested fields of the GraphQL type Mod.
type ModVersionsMod struct {
Id string `json:"id"`
Versions []ModVersionsModVersionsVersion `json:"versions"`
}
// GetId returns ModVersionsMod.Id, and is useful for accessing the field via an interface.
func (v *ModVersionsMod) GetId() string { return v.Id }
// GetVersions returns ModVersionsMod.Versions, and is useful for accessing the field via an interface.
func (v *ModVersionsMod) GetVersions() []ModVersionsModVersionsVersion { return v.Versions }
// ModVersionsModVersionsVersion includes the requested fields of the GraphQL type Version.
type ModVersionsModVersionsVersion struct {
Id string `json:"id"`
Version string `json:"version"`
}
// GetId returns ModVersionsModVersionsVersion.Id, and is useful for accessing the field via an interface.
func (v *ModVersionsModVersionsVersion) GetId() string { return v.Id }
// GetVersion returns ModVersionsModVersionsVersion.Version, and is useful for accessing the field via an interface.
func (v *ModVersionsModVersionsVersion) GetVersion() string { return v.Version }
// ModVersionsResponse is returned by ModVersions on success.
type ModVersionsResponse struct {
Mod ModVersionsMod `json:"mod"`
}
// GetMod returns ModVersionsResponse.Mod, and is useful for accessing the field via an interface.
func (v *ModVersionsResponse) GetMod() ModVersionsMod { return v.Mod }
// ModsModsGetMods includes the requested fields of the GraphQL type GetMods.
type ModsModsGetMods struct {
Count int `json:"count"`
Mods []ModsModsGetModsModsMod `json:"mods"`
}
// GetCount returns ModsModsGetMods.Count, and is useful for accessing the field via an interface.
func (v *ModsModsGetMods) GetCount() int { return v.Count }
// GetMods returns ModsModsGetMods.Mods, and is useful for accessing the field via an interface.
func (v *ModsModsGetMods) GetMods() []ModsModsGetModsModsMod { return v.Mods }
// ModsModsGetModsModsMod includes the requested fields of the GraphQL type Mod.
type ModsModsGetModsModsMod struct {
Id string `json:"id"`
Name string `json:"name"`
Mod_reference string `json:"mod_reference"`
Last_version_date time.Time `json:"-"`
Created_at time.Time `json:"-"`
Views int `json:"views"`
Downloads int `json:"downloads"`
Popularity int `json:"popularity"`
Hotness int `json:"hotness"`
}
// GetId returns ModsModsGetModsModsMod.Id, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetId() string { return v.Id }
// GetName returns ModsModsGetModsModsMod.Name, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetName() string { return v.Name }
// GetMod_reference returns ModsModsGetModsModsMod.Mod_reference, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetMod_reference() string { return v.Mod_reference }
// GetLast_version_date returns ModsModsGetModsModsMod.Last_version_date, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetLast_version_date() time.Time { return v.Last_version_date }
// GetCreated_at returns ModsModsGetModsModsMod.Created_at, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetCreated_at() time.Time { return v.Created_at }
// GetViews returns ModsModsGetModsModsMod.Views, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetViews() int { return v.Views }
// GetDownloads returns ModsModsGetModsModsMod.Downloads, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetDownloads() int { return v.Downloads }
// GetPopularity returns ModsModsGetModsModsMod.Popularity, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetPopularity() int { return v.Popularity }
// GetHotness returns ModsModsGetModsModsMod.Hotness, and is useful for accessing the field via an interface.
func (v *ModsModsGetModsModsMod) GetHotness() int { return v.Hotness }
func (v *ModsModsGetModsModsMod) UnmarshalJSON(b []byte) error {
if string(b) == "null" {
return nil
}
var firstPass struct {
*ModsModsGetModsModsMod
Last_version_date json.RawMessage `json:"last_version_date"`
Created_at json.RawMessage `json:"created_at"`
graphql.NoUnmarshalJSON
}
firstPass.ModsModsGetModsModsMod = v
err := json.Unmarshal(b, &firstPass)
if err != nil {
return err
}
{
dst := &v.Last_version_date
src := firstPass.Last_version_date
if len(src) != 0 && string(src) != "null" {
err = utils.UnmarshalDateTime(
src, dst)
if err != nil {
return fmt.Errorf(
"Unable to unmarshal ModsModsGetModsModsMod.Last_version_date: %w", err)
}
}
}
{
dst := &v.Created_at
src := firstPass.Created_at
if len(src) != 0 && string(src) != "null" {
err = utils.UnmarshalDateTime(
src, dst)
if err != nil {
return fmt.Errorf(
"Unable to unmarshal ModsModsGetModsModsMod.Created_at: %w", err)
}
}
}
return nil
}
type __premarshalModsModsGetModsModsMod struct {
Id string `json:"id"`
Name string `json:"name"`
Mod_reference string `json:"mod_reference"`
Last_version_date json.RawMessage `json:"last_version_date"`
Created_at json.RawMessage `json:"created_at"`
Views int `json:"views"`
Downloads int `json:"downloads"`
Popularity int `json:"popularity"`
Hotness int `json:"hotness"`
}
func (v *ModsModsGetModsModsMod) MarshalJSON() ([]byte, error) {
premarshaled, err := v.__premarshalJSON()
if err != nil {
return nil, err
}
return json.Marshal(premarshaled)
}
func (v *ModsModsGetModsModsMod) __premarshalJSON() (*__premarshalModsModsGetModsModsMod, error) {
var retval __premarshalModsModsGetModsModsMod
retval.Id = v.Id
retval.Name = v.Name
retval.Mod_reference = v.Mod_reference
{
dst := &retval.Last_version_date
src := v.Last_version_date
var err error
*dst, err = json.Marshal(
&src)
if err != nil {
return nil, fmt.Errorf(
"Unable to marshal ModsModsGetModsModsMod.Last_version_date: %w", err)
}
}
{
dst := &retval.Created_at
src := v.Created_at
var err error
*dst, err = json.Marshal(
&src)
if err != nil {
return nil, fmt.Errorf(
"Unable to marshal ModsModsGetModsModsMod.Created_at: %w", err)
}
}
retval.Views = v.Views
retval.Downloads = v.Downloads
retval.Popularity = v.Popularity
retval.Hotness = v.Hotness
return &retval, nil
}
// ModsResponse is returned by Mods on success.
type ModsResponse struct {
Mods ModsModsGetMods `json:"mods"`
}
// GetMods returns ModsResponse.Mods, and is useful for accessing the field via an interface.
func (v *ModsResponse) GetMods() ModsModsGetMods { return v.Mods }
type Order string
const (
OrderAsc Order = "asc"
OrderDesc Order = "desc"
)
// ResolveModDependenciesModsModVersion includes the requested fields of the GraphQL type ModVersion.
type ResolveModDependenciesModsModVersion struct {
Id string `json:"id"`
Mod_reference string `json:"mod_reference"`
Versions []ResolveModDependenciesModsModVersionVersionsVersion `json:"versions"`
}
// GetId returns ResolveModDependenciesModsModVersion.Id, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersion) GetId() string { return v.Id }
// GetMod_reference returns ResolveModDependenciesModsModVersion.Mod_reference, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersion) GetMod_reference() string { return v.Mod_reference }
// GetVersions returns ResolveModDependenciesModsModVersion.Versions, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersion) GetVersions() []ResolveModDependenciesModsModVersionVersionsVersion {
return v.Versions
}
// ResolveModDependenciesModsModVersionVersionsVersion includes the requested fields of the GraphQL type Version.
type ResolveModDependenciesModsModVersionVersionsVersion struct {
Id string `json:"id"`
Version string `json:"version"`
Link string `json:"link"`
Hash string `json:"hash"`
Dependencies []ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency `json:"dependencies"`
}
// GetId returns ResolveModDependenciesModsModVersionVersionsVersion.Id, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersion) GetId() string { return v.Id }
// GetVersion returns ResolveModDependenciesModsModVersionVersionsVersion.Version, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersion) GetVersion() string { return v.Version }
// GetLink returns ResolveModDependenciesModsModVersionVersionsVersion.Link, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersion) GetLink() string { return v.Link }
// GetHash returns ResolveModDependenciesModsModVersionVersionsVersion.Hash, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersion) GetHash() string { return v.Hash }
// GetDependencies returns ResolveModDependenciesModsModVersionVersionsVersion.Dependencies, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersion) GetDependencies() []ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency {
return v.Dependencies
}
// ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency includes the requested fields of the GraphQL type VersionDependency.
type ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency struct {
Condition string `json:"condition"`
Mod_id string `json:"mod_id"`
Optional bool `json:"optional"`
}
// GetCondition returns ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency.Condition, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency) GetCondition() string {
return v.Condition
}
// GetMod_id returns ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency.Mod_id, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency) GetMod_id() string {
return v.Mod_id
}
// GetOptional returns ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency.Optional, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesModsModVersionVersionsVersionDependenciesVersionDependency) GetOptional() bool {
return v.Optional
}
// ResolveModDependenciesResponse is returned by ResolveModDependencies on success.
type ResolveModDependenciesResponse struct {
Mods []ResolveModDependenciesModsModVersion `json:"mods"`
}
// GetMods returns ResolveModDependenciesResponse.Mods, and is useful for accessing the field via an interface.
func (v *ResolveModDependenciesResponse) GetMods() []ResolveModDependenciesModsModVersion {
return v.Mods
}
// SMLVersionsResponse is returned by SMLVersions on success.
type SMLVersionsResponse struct {
SmlVersions SMLVersionsSmlVersionsGetSMLVersions `json:"smlVersions"`
}
// GetSmlVersions returns SMLVersionsResponse.SmlVersions, and is useful for accessing the field via an interface.
func (v *SMLVersionsResponse) GetSmlVersions() SMLVersionsSmlVersionsGetSMLVersions {
return v.SmlVersions
}
// SMLVersionsSmlVersionsGetSMLVersions includes the requested fields of the GraphQL type GetSMLVersions.
type SMLVersionsSmlVersionsGetSMLVersions struct {
Count int `json:"count"`
Sml_versions []SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion `json:"sml_versions"`
}
// GetCount returns SMLVersionsSmlVersionsGetSMLVersions.Count, and is useful for accessing the field via an interface.
func (v *SMLVersionsSmlVersionsGetSMLVersions) GetCount() int { return v.Count }
// GetSml_versions returns SMLVersionsSmlVersionsGetSMLVersions.Sml_versions, and is useful for accessing the field via an interface.
func (v *SMLVersionsSmlVersionsGetSMLVersions) GetSml_versions() []SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion {
return v.Sml_versions
}
// SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion includes the requested fields of the GraphQL type SMLVersion.
type SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion struct {
Id string `json:"id"`
Version string `json:"version"`
Satisfactory_version int `json:"satisfactory_version"`
}
// GetId returns SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion.Id, and is useful for accessing the field via an interface.
func (v *SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion) GetId() string { return v.Id }
// GetVersion returns SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion.Version, and is useful for accessing the field via an interface.
func (v *SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion) GetVersion() string {
return v.Version
}
// GetSatisfactory_version returns SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion.Satisfactory_version, and is useful for accessing the field via an interface.
func (v *SMLVersionsSmlVersionsGetSMLVersionsSml_versionsSMLVersion) GetSatisfactory_version() int {
return v.Satisfactory_version
}
type VersionFields string
const (
VersionFieldsCreatedAt VersionFields = "created_at"
VersionFieldsDownloads VersionFields = "downloads"
VersionFieldsUpdatedAt VersionFields = "updated_at"
)
type VersionFilter struct {
Ids []string `json:"ids,omitempty"`
Limit int `json:"limit,omitempty"`
Offset int `json:"offset,omitempty"`
Order Order `json:"order,omitempty"`
Order_by VersionFields `json:"order_by,omitempty"`
Search string `json:"search,omitempty"`
}
// GetIds returns VersionFilter.Ids, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetIds() []string { return v.Ids }
// GetLimit returns VersionFilter.Limit, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetLimit() int { return v.Limit }
// GetOffset returns VersionFilter.Offset, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetOffset() int { return v.Offset }
// GetOrder returns VersionFilter.Order, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetOrder() Order { return v.Order }
// GetOrder_by returns VersionFilter.Order_by, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetOrder_by() VersionFields { return v.Order_by }
// GetSearch returns VersionFilter.Search, and is useful for accessing the field via an interface.
func (v *VersionFilter) GetSearch() string { return v.Search }
// __GetModInput is used internally by genqlient
type __GetModInput struct {
ModId string `json:"modId"`
}
// GetModId returns __GetModInput.ModId, and is useful for accessing the field via an interface.
func (v *__GetModInput) GetModId() string { return v.ModId }
// __ModVersionsInput is used internally by genqlient
type __ModVersionsInput struct {
ModId string `json:"modId,omitempty"`
Filter VersionFilter `json:"filter,omitempty"`
}
// GetModId returns __ModVersionsInput.ModId, and is useful for accessing the field via an interface.
func (v *__ModVersionsInput) GetModId() string { return v.ModId }
// GetFilter returns __ModVersionsInput.Filter, and is useful for accessing the field via an interface.
func (v *__ModVersionsInput) GetFilter() VersionFilter { return v.Filter }
// __ModsInput is used internally by genqlient
type __ModsInput struct {
Filter ModFilter `json:"filter,omitempty"`
}
// GetFilter returns __ModsInput.Filter, and is useful for accessing the field via an interface.
func (v *__ModsInput) GetFilter() ModFilter { return v.Filter }
// __ResolveModDependenciesInput is used internally by genqlient
type __ResolveModDependenciesInput struct {
Filter []ModVersionConstraint `json:"filter"`
}
// GetFilter returns __ResolveModDependenciesInput.Filter, and is useful for accessing the field via an interface.
func (v *__ResolveModDependenciesInput) GetFilter() []ModVersionConstraint { return v.Filter }
func GetMod(
ctx context.Context,
client graphql.Client,
modId string,
) (*GetModResponse, error) {
__input := __GetModInput{
ModId: modId,
}
var err error
var retval GetModResponse
err = client.MakeRequest(
ctx,
"GetMod",
`
query GetMod ($modId: String!) {
mod: getModByIdOrReference(modIdOrReference: $modId) {
id
mod_reference
name
views
downloads
authors {
role
user {
username
}
}
full_description
source_url
created_at
}
}
`,
&retval,
&__input,
)
return &retval, err
}
func ModVersions(
ctx context.Context,
client graphql.Client,
modId string,
filter VersionFilter,
) (*ModVersionsResponse, error) {
__input := __ModVersionsInput{
ModId: modId,
Filter: filter,
}
var err error
var retval ModVersionsResponse
err = client.MakeRequest(
ctx,
"ModVersions",
`
query ModVersions ($modId: String!, $filter: VersionFilter) {
mod: getModByIdOrReference(modIdOrReference: $modId) {
id
versions(filter: $filter) {
id
version
}
}
}
`,
&retval,
&__input,
)
return &retval, err
}
func Mods(
ctx context.Context,
client graphql.Client,
filter ModFilter,
) (*ModsResponse, error) {
__input := __ModsInput{
Filter: filter,
}
var err error
var retval ModsResponse
err = client.MakeRequest(
ctx,
"Mods",
`
query Mods ($filter: ModFilter) {
mods: getMods(filter: $filter) {
count
mods {
id
name
mod_reference
last_version_date
created_at
views
downloads
popularity
hotness
}
}
}
`,
&retval,
&__input,
)
return &retval, err
}
func ResolveModDependencies(
ctx context.Context,
client graphql.Client,
filter []ModVersionConstraint,
) (*ResolveModDependenciesResponse, error) {
__input := __ResolveModDependenciesInput{
Filter: filter,
}
var err error
var retval ResolveModDependenciesResponse
err = client.MakeRequest(
ctx,
"ResolveModDependencies",
`
query ResolveModDependencies ($filter: [ModVersionConstraint!]!) {
mods: resolveModVersions(filter: $filter) {
id
mod_reference
versions {
id
version
link
hash
dependencies {
condition
mod_id
optional
}
}
}
}
`,
&retval,
&__input,
)
return &retval, err
}
func SMLVersions(
ctx context.Context,
client graphql.Client,
) (*SMLVersionsResponse, error) {
var err error
var retval SMLVersionsResponse
err = client.MakeRequest(
ctx,
"SMLVersions",
`
query SMLVersions {
smlVersions: getSMLVersions(filter: {limit:100}) {
count
sml_versions {
id
version
satisfactory_version
}
}
}
`,
&retval,
nil,
)
return &retval, err
}