|
|
|
@ -91,6 +91,10 @@ func GQLInterfaceThread() *graphql.Interface {
|
|
|
|
|
Type: graphql.String,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_interface_thread.AddFieldConfig("State", &graphql.Field{
|
|
|
|
|
Type: graphql.String,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_interface_thread.AddFieldConfig("Children", &graphql.Field{
|
|
|
|
|
Type: GQLListThread(),
|
|
|
|
|
})
|
|
|
|
@ -237,6 +241,30 @@ func GQLThreadParent(p graphql.ResolveParams) (interface{}, error) {
|
|
|
|
|
return parent, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GQLThreadState(p graphql.ResolveParams) (interface{}, error) {
|
|
|
|
|
node, ok := p.Source.(Thread)
|
|
|
|
|
if ok == false || node == nil {
|
|
|
|
|
return nil, fmt.Errorf("Failed to cast source to Thread")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ctx, ok := p.Context.Value("graph_context").(*Context)
|
|
|
|
|
if ok == false {
|
|
|
|
|
return nil, fmt.Errorf("Failed to cast context graph_context to Context")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var state string
|
|
|
|
|
err := UseStates(ctx, []Node{node}, func(nodes NodeMap) (error) {
|
|
|
|
|
state = node.State()
|
|
|
|
|
return nil
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return state, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GQLThreadChildren(p graphql.ResolveParams) (interface{}, error) {
|
|
|
|
|
node, ok := p.Source.(Thread)
|
|
|
|
|
if ok == false || node == nil {
|
|
|
|
@ -385,6 +413,11 @@ func GQLTypeGQLThread() * graphql.Object {
|
|
|
|
|
Resolve: GQLLockableName,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_type_gql_thread.AddFieldConfig("State", &graphql.Field{
|
|
|
|
|
Type: graphql.String,
|
|
|
|
|
Resolve: GQLThreadState,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_type_gql_thread.AddFieldConfig("Children", &graphql.Field{
|
|
|
|
|
Type: GQLListThread(),
|
|
|
|
|
Resolve: GQLThreadChildren,
|
|
|
|
@ -422,7 +455,7 @@ var gql_type_simple_thread *graphql.Object = nil
|
|
|
|
|
func GQLTypeSimpleThread() * graphql.Object {
|
|
|
|
|
if gql_type_simple_thread == nil {
|
|
|
|
|
gql_type_simple_thread = graphql.NewObject(graphql.ObjectConfig{
|
|
|
|
|
Name: "BaseThread",
|
|
|
|
|
Name: "SimpleThread",
|
|
|
|
|
Interfaces: []*graphql.Interface{
|
|
|
|
|
GQLInterfaceNode(),
|
|
|
|
|
GQLInterfaceThread(),
|
|
|
|
@ -456,6 +489,11 @@ func GQLTypeSimpleThread() * graphql.Object {
|
|
|
|
|
Resolve: GQLLockableName,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_type_simple_thread.AddFieldConfig("State", &graphql.Field{
|
|
|
|
|
Type: graphql.String,
|
|
|
|
|
Resolve: GQLThreadState,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
gql_type_simple_thread.AddFieldConfig("Children", &graphql.Field{
|
|
|
|
|
Type: GQLListThread(),
|
|
|
|
|
Resolve: GQLThreadChildren,
|
|
|
|
@ -488,7 +526,7 @@ var gql_type_simple_lockable *graphql.Object = nil
|
|
|
|
|
func GQLTypeSimpleLockable() * graphql.Object {
|
|
|
|
|
if gql_type_simple_lockable == nil {
|
|
|
|
|
gql_type_simple_lockable = graphql.NewObject(graphql.ObjectConfig{
|
|
|
|
|
Name: "BaseLockable",
|
|
|
|
|
Name: "SimpleLockable",
|
|
|
|
|
Interfaces: []*graphql.Interface{
|
|
|
|
|
GQLInterfaceNode(),
|
|
|
|
|
GQLInterfaceLockable(),
|
|
|
|
@ -543,7 +581,7 @@ var gql_type_simple_node *graphql.Object = nil
|
|
|
|
|
func GQLTypeGraphNode() * graphql.Object {
|
|
|
|
|
if gql_type_simple_node == nil {
|
|
|
|
|
gql_type_simple_node = graphql.NewObject(graphql.ObjectConfig{
|
|
|
|
|
Name: "BaseNode",
|
|
|
|
|
Name: "GraphNode",
|
|
|
|
|
Interfaces: []*graphql.Interface{
|
|
|
|
|
GQLInterfaceNode(),
|
|
|
|
|
},
|
|
|
|
|