gqbuilder

package
v0.1.31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2022 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Query        = "Query"
	Mutation     = "Mutation"
	Subscription = "Subscription"
)
View Source
const (
	INPUT_TYPE  = "INPUT_TYPE"
	OUTPUT_TYPE = "OUTPUT_TYPE"
)

Variables

View Source
var DecimalScalar = graphql.NewScalar(graphql.ScalarConfig{
	Name:        "Decimal",
	Description: ``,
	Serialize: func(value interface{}) interface{} {
		switch value := value.(type) {
		case *decimal.Decimal:
			return *value
		case decimal.Decimal:
			return value
		default:
			log.Errorf("Value is not decimal, actial type is %v", value)
		}

		return nil
	},

	ParseValue: func(value interface{}) interface{} {
		switch value := value.(type) {
		case *decimal.Decimal:
			return *value
		case decimal.Decimal:
			return value
		case string:
			i, err := decimal.NewFromString(value)
			if err != nil {
				log.Errorf("Cannot convert %v to decimal, %s", value, err)
			}
			return i
		default:
			log.Errorf("Value is not decimal, actial type is %v", value)
		}

		return nil
	},

	ParseLiteral: func(valueAST ast.Value) interface{} {
		switch valueAST := valueAST.(type) {
		case *ast.StringValue:
			i, err := decimal.NewFromString(valueAST.Value)
			if err != nil {
				log.Error(err)
			}

			return i
		}
		return nil
	},
})
View Source
var Int64Scalar = graphql.NewScalar(graphql.ScalarConfig{
	Name:        "int64",
	Description: ``,
	Serialize: func(value interface{}) interface{} {
		switch value := value.(type) {
		case *int64:
			return *value
		case int64:
			return value
		default:
			log.Errorf("Value is not int64, actial type is %v", value)
		}

		return nil
	},

	ParseValue: func(value interface{}) interface{} {
		switch value := value.(type) {
		case int64:
			return value
		case float64:
			return int64(value)
		case string:
			i, err := strconv.ParseInt(value, 10, 64)
			if err != nil {
				log.Errorf("Cannot convert %v to int64, %s", value, err)
			}
			return i
		default:
			log.Errorf("Value is not int64, actial type is %v", value)
		}

		return nil
	},

	ParseLiteral: func(valueAST ast.Value) interface{} {
		switch valueAST := valueAST.(type) {
		case *ast.IntValue:
			i, err := strconv.ParseInt(valueAST.Value, 10, 64)
			if err != nil {
				log.Error(err)
			}

			return i
		}
		return nil
	},
})

Functions

func MakeObjectNullable

func MakeObjectNullable(output graphql.Output) graphql.Output

func ReflectStructFieldRecursive

func ReflectStructFieldRecursive(fName string, t reflect.Type, param interface{}) reflect.Value

func ReflectStructRecursive

func ReflectStructRecursive(t reflect.Type, param interface{}) reflect.Value

Types

type BuildObject added in v0.1.31

type BuildObject struct {
	RType         reflect.Type
	IgnoredFields map[string]string
}

type ConnectionACKMessage

type ConnectionACKMessage struct {
	OperationID string `json:"id,omitempty"`
	Type        string `json:"type"`
	Payload     struct {
		Query string `json:"query"`
	} `json:"payload,omitempty"`
}

type FieldResolveFn

type FieldResolveFn func() (interface{}, error)

type GomerInputObject

type GomerInputObject struct {
	graphql.InputObject
	ArgsObject interface{}
}

type GomerObject

type GomerObject interface {
	GetType() interface{}
}

type GomerTags added in v0.1.31

type GomerTags map[string]string

func (GomerTags) GetParam added in v0.1.31

func (gt GomerTags) GetParam(n string) string

func (GomerTags) ParamExist added in v0.1.31

func (gt GomerTags) ParamExist(n string) (string, bool)

type HandlerFn

type HandlerFn func(ctx context.Context, args interface{}) (interface{}, error)

type Method

type Method struct {
	Name string
	Fn   interface{}
}

type Object

type Object struct {
	Name        string
	Type        interface{}
	Description string
	Resolver    interface{}
	Args        interface{}
	Methods     map[string]*Method
}

func (*Object) FieldResolver

func (s *Object) FieldResolver(name string, handler interface{})

func (*Object) GetType

func (s *Object) GetType() interface{}

type SchemaBuilder

type SchemaBuilder struct {
	// contains filtered or unexported fields
}

func GetBuilder

func GetBuilder() *SchemaBuilder

func (*SchemaBuilder) Build

func (s *SchemaBuilder) Build() (graphql.Schema, error)

func (*SchemaBuilder) CreateObjects

func (s *SchemaBuilder) CreateObjects() (map[string]graphql.Input, map[string]graphql.Output)

func (*SchemaBuilder) CreateObjectsFields

func (s *SchemaBuilder) CreateObjectsFields() (map[string]graphql.Input, map[string]graphql.Output)

func (*SchemaBuilder) FindObjectsToBuild

func (s *SchemaBuilder) FindObjectsToBuild() (map[string]*BuildObject, map[string]*BuildObject)

func (*SchemaBuilder) Mutation

func (s *SchemaBuilder) Mutation() *Object

func (*SchemaBuilder) Object

func (s *SchemaBuilder) Object(name string, objType interface{}) *Object

func (*SchemaBuilder) Query

func (s *SchemaBuilder) Query() *Object

func (*SchemaBuilder) RegisterScalar

func (s *SchemaBuilder) RegisterScalar(key string, sType *graphql.Scalar)

func (*SchemaBuilder) SetDefaultScalars

func (s *SchemaBuilder) SetDefaultScalars()

func (*SchemaBuilder) Subscription

func (s *SchemaBuilder) Subscription() *SubscriptionObject

type Selection

type Selection struct {
	Name         string
	Alias        string
	Args         interface{}
	SelectionSet *SelectionSet
}

func ParseSelections

func ParseSelections(p graphql.ResolveParams, argsMap map[string]map[string]interface{}) []*Selection

type SelectionSet

type SelectionSet struct {
	Selections []*Selection
}

type Subscriber

type Subscriber struct {
	UUID          string
	Conn          *websocket.Conn
	RequestString string
	OperationID   string
}

type SubscriptionHandler

type SubscriptionHandler struct {
	// contains filtered or unexported fields
}

func GetSubscriptionHandler

func GetSubscriptionHandler(schema graphql.Schema) *SubscriptionHandler

func (*SubscriptionHandler) SubscriptionsHandlerFunc

func (sh *SubscriptionHandler) SubscriptionsHandlerFunc(w http.ResponseWriter, r *http.Request)

type SubscriptionMethod

type SubscriptionMethod struct {
	Name   string
	Output interface{}
	Fn     interface{}
}

type SubscriptionObject

type SubscriptionObject struct {
	Name        string
	Description string
	Type        interface{}
	Resolver    interface{}
	Args        interface{}
	Methods     map[string]*SubscriptionMethod
}

func (*SubscriptionObject) FieldSubscription

func (s *SubscriptionObject) FieldSubscription(name string, output interface{}, handler interface{})

func (*SubscriptionObject) GetType

func (s *SubscriptionObject) GetType() interface{}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL