159 lines
4.0 KiB
Go
159 lines
4.0 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/graphql-go/graphql"
|
|
"reflect"
|
|
)
|
|
|
|
func GQLVexTypes() map[reflect.Type]*graphql.Object {
|
|
types := map[reflect.Type]*graphql.Object{}
|
|
types[reflect.TypeOf((*Match)(nil))] = GQLVexTypeMatch()
|
|
|
|
return types
|
|
}
|
|
|
|
var gql_vex_list_team * graphql.List = nil
|
|
func GQLVexListTeam() * graphql.List {
|
|
if gql_vex_list_team == nil {
|
|
gql_vex_list_team = graphql.NewList(GQLVexTypeTeam())
|
|
}
|
|
return gql_vex_list_team
|
|
}
|
|
|
|
var gql_vex_list_alliance * graphql.List = nil
|
|
func GQLVexListAlliance() * graphql.List {
|
|
if gql_vex_list_alliance == nil {
|
|
gql_vex_list_alliance = graphql.NewList(GQLVexTypeAlliance())
|
|
}
|
|
return gql_vex_list_alliance
|
|
}
|
|
|
|
func GQLVexMatchAlliances(p graphql.ResolveParams) (interface{}, error) {
|
|
return GQLEventFn(p, func(event Event, p graphql.ResolveParams) (interface{}, error) {
|
|
//TODO improve
|
|
return event.(*Match).alliances, nil
|
|
})
|
|
}
|
|
|
|
var gql_vex_type_match * graphql.Object = nil
|
|
func GQLVexTypeMatch() * graphql.Object {
|
|
if gql_vex_type_match == nil {
|
|
gql_vex_type_match = graphql.NewObject(graphql.ObjectConfig{
|
|
Name: "Match",
|
|
Interfaces: []*graphql.Interface{
|
|
GQLInterfaceEvent(),
|
|
},
|
|
IsTypeOf: func(p graphql.IsTypeOfParams) bool {
|
|
_, ok := p.Value.(*Match)
|
|
return ok
|
|
},
|
|
Fields: graphql.Fields{},
|
|
})
|
|
|
|
gql_vex_type_match.AddFieldConfig("ID", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLEventID,
|
|
})
|
|
|
|
gql_vex_type_match.AddFieldConfig("Name", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLEventName,
|
|
})
|
|
|
|
gql_vex_type_match.AddFieldConfig("Description", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLEventDescription,
|
|
})
|
|
|
|
gql_vex_type_match.AddFieldConfig("Children", &graphql.Field{
|
|
Type: GQLListEvent(),
|
|
Resolve: GQLEventChildren,
|
|
})
|
|
|
|
gql_vex_type_match.AddFieldConfig("Alliances", &graphql.Field{
|
|
Type: GQLVexListAlliance(),
|
|
Resolve: GQLVexMatchAlliances,
|
|
})
|
|
}
|
|
|
|
return gql_vex_type_match
|
|
}
|
|
|
|
var gql_vex_type_alliance * graphql.Object = nil
|
|
func GQLVexTypeAlliance() * graphql.Object {
|
|
if gql_vex_type_alliance == nil {
|
|
gql_vex_type_alliance = graphql.NewObject(graphql.ObjectConfig{
|
|
Name: "Alliance",
|
|
Interfaces: []*graphql.Interface{
|
|
GQLInterfaceResource(),
|
|
},
|
|
IsTypeOf: func(p graphql.IsTypeOfParams) bool {
|
|
_, ok := p.Value.(*Alliance)
|
|
return ok
|
|
},
|
|
Fields: graphql.Fields{},
|
|
})
|
|
}
|
|
|
|
gql_vex_type_alliance.AddFieldConfig("ID", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceID,
|
|
})
|
|
|
|
gql_vex_type_alliance.AddFieldConfig("Name", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceName,
|
|
})
|
|
|
|
gql_vex_type_alliance.AddFieldConfig("Description", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceDescription,
|
|
})
|
|
|
|
gql_vex_type_alliance.AddFieldConfig("Parents", &graphql.Field{
|
|
Type: GQLListResource(),
|
|
Resolve: GQLResourceParents,
|
|
})
|
|
|
|
return gql_vex_type_alliance
|
|
}
|
|
|
|
var gql_vex_type_team * graphql.Object = nil
|
|
func GQLVexTypeTeam() * graphql.Object {
|
|
if gql_vex_type_team == nil {
|
|
gql_vex_type_team = graphql.NewObject(graphql.ObjectConfig{
|
|
Name: "Team",
|
|
Interfaces: []*graphql.Interface{
|
|
GQLInterfaceResource(),
|
|
},
|
|
IsTypeOf: func(p graphql.IsTypeOfParams) bool {
|
|
_, ok := p.Value.(*Team)
|
|
return ok
|
|
},
|
|
Fields: graphql.Fields{},
|
|
})
|
|
}
|
|
|
|
gql_vex_type_team.AddFieldConfig("ID", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceID,
|
|
})
|
|
|
|
gql_vex_type_team.AddFieldConfig("Name", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceName,
|
|
})
|
|
|
|
gql_vex_type_team.AddFieldConfig("Description", &graphql.Field{
|
|
Type: graphql.String,
|
|
Resolve: GQLResourceDescription,
|
|
})
|
|
|
|
gql_vex_type_team.AddFieldConfig("Parents", &graphql.Field{
|
|
Type: GQLListResource(),
|
|
Resolve: GQLResourceParents,
|
|
})
|
|
|
|
return gql_vex_type_team
|
|
}
|