entx

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2024 License: Apache-2.0 Imports: 8 Imported by: 3

README

Build status Quality Gate Status

entx

A helper package for working with ent(https://entgo.io/).

Documentation

Overview

Package entx is a package of tools for interacting with ent

Index

Constants

This section is empty.

Variables

View Source
var CascadeAnnotationName = "DATUM_CASCADE"

CascadeAnnotationName is a name for our cascading delete annotation

View Source
var CascadeThroughAnnotationName = "DATUM_CASCADE_THROUGH"

CascadeThroughAnnotationName is a name for our cascading through edge delete annotation

View Source
var SchemaGenAnnotationName = "DATUM_SCHEMAGEN"

SchemaGenAnnotationName is a name for our graphql schema generation annotation

Functions

func CheckIsSoftDelete

func CheckIsSoftDelete(ctx context.Context) bool

CheckIsSoftDelete checks if the softDeleteKey is set in the context

func CheckSkipSoftDelete

func CheckSkipSoftDelete(ctx context.Context) bool

CheckSkipSoftDelete checks if the SoftDeleteSkipKey is set in the context

func IsSoftDelete

func IsSoftDelete(parent context.Context) context.Context

IsSoftDelete returns a new context that informs the delete is a soft-delete for interceptor/hooks.

func MarshalRawMessage

func MarshalRawMessage(t json.RawMessage) graphql.Marshaler

MarshalRawMessage provides a graphql.Marshaler for json.RawMessage

func SkipSoftDelete

func SkipSoftDelete(parent context.Context) context.Context

SkipSoftDelete returns a new context that skips the soft-delete interceptor/hooks.

func UnmarshalRawMessage

func UnmarshalRawMessage(v interface{}) (json.RawMessage, error)

UnmarshalRawMessage provides a graphql.Unmarshaler for json.RawMessage

Types

type CascadeAnnotation

type CascadeAnnotation struct {
	Field string
}

CascadeAnnotation is an annotation used to indicate that an edge should be cascaded

func CascadeAnnotationField

func CascadeAnnotationField(fieldname string) *CascadeAnnotation

CascadeAnnotationField sets the field name of the edge containing the ID of a record from the current schema

func (CascadeAnnotation) Name

func (a CascadeAnnotation) Name() string

Name returns the name of the CascadeAnnotation

type CascadeThroughAnnotation

type CascadeThroughAnnotation struct {
	Schemas []ThroughCleanup
}

CascadeThroughAnnotation is an annotation used to indicate that an edge should be cascaded through

func CascadeThroughAnnotationField

func CascadeThroughAnnotationField(schemas []ThroughCleanup) *CascadeThroughAnnotation

CascadeThroughAnnotationField sets the field name of the edge containing the ID of a record from the current schema

func (CascadeThroughAnnotation) Name

Name returns the name of the CascadeThroughAnnotation

type Extension

type Extension struct {
	entc.DefaultExtension
	// contains filtered or unexported fields
}

Extension is an implementation of entc.Extension

func NewExtension

func NewExtension(opts ...ExtensionOption) (*Extension, error)

NewExtension returns an entc Extension that allows the entx package to generate the schema changes and templates needed to function

func (*Extension) GQLSchemaHooks

func (e *Extension) GQLSchemaHooks() []entgql.SchemaHook

GQLSchemaHooks of the extension to seamlessly edit the final gql interface

func (*Extension) Templates

func (e *Extension) Templates() []*gen.Template

Templates of the extension

type ExtensionOption

type ExtensionOption func(*Extension) error

ExtensionOption allow for control over the behavior of the generator

func WithJSONScalar

func WithJSONScalar() ExtensionOption

WithJSONScalar adds the JSON scalar definition

type SchemaGenAnnotation

type SchemaGenAnnotation struct {
	Skip bool
}

SchemaGenAnnotation is an annotation used to indicate that schema generation should be skipped for this type

func SchemaGenSkip

func SchemaGenSkip(skip bool) *SchemaGenAnnotation

SchemaGenSkip sets the whether schema generation should be skipped for this type

func (SchemaGenAnnotation) Name

func (a SchemaGenAnnotation) Name() string

Name returns the name of the SchemaGenAnnotation

type SoftDeleteKey

type SoftDeleteKey struct{}

SoftDeleteKey is used to indicate a soft delete mutation is in progress

type SoftDeleteSkipKey

type SoftDeleteSkipKey struct{}

SoftDeleteSkipKey is used to indicate to allow soft deleted records to be returned in records and to skip soft delete on mutations and proceed with a regular delete

type ThroughCleanup

type ThroughCleanup struct {
	Field   string
	Through string
}

ThroughCleanup is a struct used to indicate the field and through edge to cascade through

Jump to

Keyboard shortcuts

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