graphify

package module
v0.7.10 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2025 License: Unlicense Imports: 47 Imported by: 1

README

graphify

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AdminKeyFromContext added in v0.6.7

func AdminKeyFromContext(ctx context.Context) (value string, found bool)

func ContextWithAdminKey added in v0.6.7

func ContextWithAdminKey(parent context.Context, key string) context.Context

func ExposeNodes added in v0.4.3

func ExposeNodes(nodes ...any) exposedNodes

ExposeNodes ...

func Filter added in v0.4.6

func Filter(keyValues ...interface{}) *bindVars

Filter ...

func Id added in v0.7.1

func Id(resource, key string) string

NODE HELPERS

func Map added in v0.4.39

func Map[T any](size int, fn func(int) T) (result []T)

Map converts a slice of values to a slice of values using a function

func Must added in v0.7.1

func Must[T any](v T, err error) T

Must ...

func Mutation added in v0.1.0

func Mutation[Arg, Out proto.Message](fn func(context.Context, Arg) (Out, error)) mutation

Mutation ...

func NewConnection

func NewConnection(ctx context.Context, conf ConnectionConfig) *connection

NewConnection ...

func NewDbFileStorage added in v0.4.33

func NewDbFileStorage(access Access) *dbFileStorage

NewDbFileStorage ...

func NewFilesystemStorage added in v0.0.6

func NewFilesystemStorage(params FilesystemStorageConfig) *filesystemStorage

NewFilesystemStorage ...

func NewGraph

func NewGraph() *graph

NewGraph ...

func NewObserver

func NewObserver[T comparable]() *observer[T]

NewObserver ...

func ProtoMarshal added in v0.7.1

func ProtoMarshal(v any, out proto.Message) error

func Pure added in v0.4.6

func Pure[T any](v T) (result T)

Pure converts a value to a pure JSON value

func Query added in v0.1.0

func Query[Arg, Out proto.Message](fn func(context.Context, Arg) (Out, error)) query

Query ...

func QueryJoin added in v0.4.43

func QueryJoin(parts ...string) string

QueryJoin joins a slice of strings with a space

func Quote added in v0.4.43

func Quote(s string) string

Quote ...

func RegisterAdmin added in v0.4.36

func RegisterAdmin(ctx context.Context, access Access, req *dashboardv1.CreateAccountRequest) (err error)

func ToMap added in v0.4.6

func ToMap(v any) (result map[string]any)

ToMap converts a value to a map[string]any

Types

type Access added in v0.4.43

type Access interface {
	// AutoMigrate ...
	AutoMigrate(ctx context.Context, graph Graph) error

	// Collection ...
	Collection(ctx context.Context, elem any, callbacks ...CollectionCallback) error

	// Query returns a list of elements
	Query(ctx context.Context, query string, bindVars map[string]any, out any) error

	// Fetch returns a single element
	Fetch(ctx context.Context, query string, bindVars map[string]any, out any) error

	// List ...
	List(ctx context.Context, bindVars Vars, out any) (int64, error)

	// Find ...
	Find(ctx context.Context, bindVars Vars, out any) error

	// Create ...
	Create(ctx context.Context, val any) ([]string, error)

	// Update ...
	Update(ctx context.Context, key string, item any) error

	// Replace ...
	Replace(ctx context.Context, key string, item any) error

	// Delete ...
	Delete(ctx context.Context, item any) error

	// Relations ...
	Relations(ctx context.Context, id string, bindVars Vars, direction Direction, out any) (int64, error)
}

Access ...

type AdminHandler added in v0.4.3

AdminHandler ...

func NewAdminHandler added in v0.4.3

func NewAdminHandler(ctx context.Context, config AdminHandlerConfig, params AdminHandlerParams) *AdminHandler

NewAdminHandler ...

func (*AdminHandler) CreateAccount added in v0.4.6

func (*AdminHandler) CreateResource added in v0.4.6

func (*AdminHandler) DeleteResource added in v0.4.6

func (*AdminHandler) FilesDownloadHandler added in v0.4.6

func (h *AdminHandler) FilesDownloadHandler(w http.ResponseWriter, r *http.Request, pathParams map[string]string)

func (*AdminHandler) FilesUploadHandler added in v0.4.6

func (h *AdminHandler) FilesUploadHandler(w http.ResponseWriter, r *http.Request, _ map[string]string)

func (*AdminHandler) GetAccount added in v0.4.6

func (*AdminHandler) GetResource added in v0.4.6

func (*AdminHandler) GetResourceRelation added in v0.4.6

func (*AdminHandler) GetSchema added in v0.4.6

func (*AdminHandler) Handler added in v0.4.3

func (h *AdminHandler) Handler(ctx context.Context) http.Handler

func (*AdminHandler) ListResources added in v0.4.6

func (*AdminHandler) Login added in v0.4.6

func (*AdminHandler) UpdateResource added in v0.4.6

type AdminHandlerConfig added in v0.4.3

type AdminHandlerConfig struct {
	Secret []byte
}

AdminHandlerConfig ...

type AdminHandlerParams added in v0.4.3

type AdminHandlerParams struct {
	fx.In

	Access   Access
	Graph    Graph
	Storage  FileStorage
	Observer Observer[Topic]
}

AdminHandlerParams ...

type ApplicationConfig added in v0.0.9

type ApplicationConfig struct {
	// Name ...
	Name string `json:"name"`
	// Domain ...
	Domain string `json:"domain"`
	Logo string `json:"logo"`
}

ApplicationConfig ...

type ArangoAccess added in v0.4.3

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

func NewArangoAccess added in v0.4.3

func NewArangoAccess(conn Connection, observer Observer[Topic]) *ArangoAccess

func (*ArangoAccess) AutoMigrate added in v0.4.3

func (e *ArangoAccess) AutoMigrate(ctx context.Context, graph Graph) error

AutoMigrate ...

func (*ArangoAccess) Collection added in v0.4.3

func (e *ArangoAccess) Collection(ctx context.Context, elem any, callbacks ...CollectionCallback) (err error)

Collection ...

func (*ArangoAccess) Create added in v0.4.3

func (e *ArangoAccess) Create(ctx context.Context, val any) ([]string, error)

Create ...

func (*ArangoAccess) Delete added in v0.4.3

func (e *ArangoAccess) Delete(ctx context.Context, item any) error

Delete ...

func (*ArangoAccess) Fetch added in v0.4.43

func (e *ArangoAccess) Fetch(ctx context.Context, query string, bindVars map[string]any, out any) error

Fetch ...

func (*ArangoAccess) Find added in v0.4.3

func (e *ArangoAccess) Find(ctx context.Context, bindVars Vars, out any) error

Find ...

func (*ArangoAccess) List added in v0.4.3

func (e *ArangoAccess) List(ctx context.Context, bindVars Vars, out any) (int64, error)

List ...

func (*ArangoAccess) Query added in v0.4.43

func (e *ArangoAccess) Query(ctx context.Context, query string, bindVars map[string]any, out any) error

Query ...

func (*ArangoAccess) Relations added in v0.4.3

func (e *ArangoAccess) Relations(ctx context.Context, id string, bindVars Vars, direction Direction, out any) (int64, error)

Relations ...

func (*ArangoAccess) Replace added in v0.4.3

func (e *ArangoAccess) Replace(ctx context.Context, key string, item any) error

Replace ...

func (*ArangoAccess) Update added in v0.4.3

func (e *ArangoAccess) Update(ctx context.Context, key string, item any) error

Update ...

type CollectionCallback added in v0.4.3

type CollectionCallback func(context.Context, driver.Collection)

CollectionCallback ...

type Connection added in v0.4.43

type Connection interface {
	// Database ...
	Database(ctx context.Context) (driver.Database, error)
	// Collection ...
	Collection(ctx context.Context, elem any) (driver.Collection, error)
	// Reflect ...
	Reflect(ctx context.Context, elem reflect.Type) (driver.Collection, error)
}

Connection ...

type ConnectionConfig added in v0.4.3

type ConnectionConfig struct {
	// DBName ...
	DBName string
	// UserName ...
	UserName string
	// Password ...
	Password string
	// Connection ...
	Connection http.ConnectionConfig
}

ConnectionConfig ...

type Direction added in v0.0.12

type Direction string
const (
	DirectionInbound  Direction = "INBOUND"
	DirectionOutbound Direction = "OUTBOUND"
	DirectionAny      Direction = "ANY"
)

type Event

type Event[T comparable] struct {
	// Topic ...
	Topic T
	// Payload ...
	Payload protoreflect.ProtoMessage
	// Timestamp ...
	Timestamp time.Time
}

Event ...

type FileStorage added in v0.4.43

type FileStorage interface {
	// StoreFile ...
	StoreFile(name string, file []byte) (err error)

	// StoreByHash ...
	StoreByHash(file []byte) (hash string, err error)

	// ReadFile ...
	ReadFile(name string) (fileContent []byte, errr error)

	// MaxMemory ...
	MaxMemory() int
}

FileStorage ...

type FilesystemStorageConfig added in v0.4.3

type FilesystemStorageConfig struct {
	// BasePath ...
	BasePath string
	// MaxMemory ...
	MaxMemory int
}

FilesystemStorageConfig ...

type Graph added in v0.4.3

type Graph interface {
	// Node ...
	Node(node any)
	// Edge ...
	Edge(from, to, edge any)

	// Nodes ...
	Nodes() []reflect.Type
	// Edges ...
	Edges() []reflect.Type
	// Relation ...
	Relation(edge reflect.Type) *Relation

	// CollectionFor ...
	CollectionFor(elem reflect.Type) string
	// TypeOf ...
	TypeOf(name string) reflect.Type
}

Graph ...

type GraphqlHandler added in v0.4.3

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

GraphqlHandler ...

func NewGraphqlHandler added in v0.4.3

func NewGraphqlHandler(access Access, graph Graph) *GraphqlHandler

NewGraphqlHandler ...

func (*GraphqlHandler) Handle added in v0.4.8

func (e *GraphqlHandler) Handle(ctx context.Context, handlers ...interface{}) *handler.Handler

Handle ...

type Observer

type Observer[T comparable] interface {
	// Subscribe ...
	Subscribe(t T, p Processor[T]) SourceID
	// Unsubscribe ...
	Unsubscribe(s SourceID)
	// Emit ...
	Emit(e *Event[T]) error
}

Observer ...

type Processor

type Processor[T comparable] func(e *Event[T]) error

Processor ...

type Relation added in v0.4.3

type Relation struct {
	From reflect.Type `json:"_from"`
	To   reflect.Type `json:"_to"`
}

Relation

type SourceID

type SourceID int64

SourceID ...

type Topic

type Topic string
var (
	CreatedTopic  Topic = "created"
	UpdatedTopic  Topic = "updated"
	ReplacedTopic Topic = "replaced"
	DeletedTopic  Topic = "deleted"
)
var (
	AdminCreatedTopic  Topic = "admin_created"
	AdminReplacedTopic Topic = "admin_replaced"
	AdminDeletedTopic  Topic = "admin_deleted"
)

func (Topic) For added in v0.0.2

func (t Topic) For(elem any) Topic

type Vars added in v0.4.3

type Vars interface {
	// Limit ...
	Limit() string

	// Filters ...
	Filters() string

	// Values ...
	Values() map[string]interface{}
}

Vars ...

Jump to

Keyboard shortcuts

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