engine

package
v0.31.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2023 License: Apache-2.0 Imports: 26 Imported by: 1

README

Engine

This package refers to the handling of the Prisma query engine. It handles the lifecycle of starting the engine, sending requests to it, and shutting it down.

The main implementation is the QueryEngine, which refers to the rust query engine. Alternative implementations are the data proxy, which is a remote query engine hosted by Prisma, and a mock engine used for testing.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Data

type Data struct {
	Result json.RawMessage `json:"result"`
}

type DataProxyEngine

type DataProxyEngine struct {

	// Schema contains the prisma Schema
	Schema string
	// contains filtered or unexported fields
}

func NewDataProxyEngine

func NewDataProxyEngine(schema, connectionURL string) *DataProxyEngine

func (*DataProxyEngine) Batch

func (e *DataProxyEngine) Batch(ctx context.Context, payload interface{}, into interface{}) error

func (*DataProxyEngine) Connect

func (e *DataProxyEngine) Connect() error

func (*DataProxyEngine) Disconnect

func (e *DataProxyEngine) Disconnect() error

func (*DataProxyEngine) Do

func (e *DataProxyEngine) Do(ctx context.Context, payload interface{}, into interface{}) error

func (*DataProxyEngine) Name

func (e *DataProxyEngine) Name() string

type DatasourceOverride added in v0.27.0

type DatasourceOverride struct {
	Name string `json:"name"`
	URL  string `json:"url"`
}

type Engine

type Engine interface {
	Connect() error
	Disconnect() error
	Do(ctx context.Context, payload interface{}, into interface{}) error
	Batch(ctx context.Context, payload interface{}, into interface{}) error
	Name() string
}

type GQLBatchRequest

type GQLBatchRequest struct {
	Batch       []GQLRequest `json:"batch"`
	Transaction bool         `json:"transaction"`
}

GQLBatchRequest is the payload for GraphQL queries

type GQLBatchResponse

type GQLBatchResponse struct {
	Errors []GQLError    `json:"errors"`
	Result []GQLResponse `json:"batchResult"`
}

type GQLError

type GQLError struct {
	Message    string                 `json:"error"` // note: the query-engine uses 'error' instead of 'message'
	Path       []string               `json:"path"`
	Extensions map[string]interface{} `json:"query"`
}

GQLError is a GraphQL Error

func (*GQLError) RawMessage

func (e *GQLError) RawMessage() string

type GQLRequest

type GQLRequest struct {
	Query     string                 `json:"query"`
	Variables map[string]interface{} `json:"variables"`
}

GQLRequest is the payload for GraphQL queries

type GQLResponse

type GQLResponse struct {
	Data       Data                   `json:"data"`
	Errors     []GQLError             `json:"errors"`
	Extensions map[string]interface{} `json:"extensions"`
}

GQLResponse is the default GraphQL response

type Messsage added in v0.28.0

type Messsage struct {
	IsPanic bool   `json:"is_panic"`
	Message string `json:"message"`
}

type QueryEngine

type QueryEngine struct {
	// Schema contains the prisma Schema
	Schema string
	// contains filtered or unexported fields
}

func NewQueryEngine

func NewQueryEngine(schema string, hasBinaryTargets bool, datasources string, datasourceURL string) *QueryEngine

func (*QueryEngine) Batch

func (e *QueryEngine) Batch(ctx context.Context, payload interface{}, v interface{}) error

Batch sends a batch request to the query engine; used for transactions

func (*QueryEngine) Connect

func (e *QueryEngine) Connect() error

func (*QueryEngine) Disconnect

func (e *QueryEngine) Disconnect() error

func (*QueryEngine) Do

func (e *QueryEngine) Do(ctx context.Context, payload interface{}, v interface{}) error

Do sends the http Request to the query engine and unmarshals the response

func (*QueryEngine) GetEncodedDatasources added in v0.27.0

func (e *QueryEngine) GetEncodedDatasources() (string, error)

func (*QueryEngine) Name

func (e *QueryEngine) Name() string

func (*QueryEngine) ReplaceSchema

func (e *QueryEngine) ReplaceSchema(replace func(schema string) string)

deprecated

func (*QueryEngine) Request

func (e *QueryEngine) Request(ctx context.Context, method string, path string, payload interface{}, requiresConnection bool) ([]byte, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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