core

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ASC  = `ASC`
	DESC = `DESC`
)

Variables

This section is empty.

Functions

func GetAssemblerToken

func GetAssemblerToken(dtoname string) string

func GetQueryServiceToken

func GetQueryServiceToken(entityname string) string

Types

type Assembler

type Assembler interface {
	// dto query to entity query
	ConvertToQuery(Query) Query
	// entity to dto for response
	ConvertToDTO(interface{}) interface{}
	// entities to dtos for response
	ConvertToDTOs(interface{}) interface{}
	// create input dto to create entity for consumption by orm
	ConvertToCreateEntity(interface{}) interface{}
	// update input dto to update entity form consumption by orm
	ConvertToUpdateEntity(interface{}) interface{}
}

convert between dto and entity

type DefaultAssembler

type DefaultAssembler struct {
	DTO    interface{}
	Entity interface{}
}

func (*DefaultAssembler) ConvertToCreateEntity

func (a *DefaultAssembler) ConvertToCreateEntity(dto interface{}) interface{}

func (*DefaultAssembler) ConvertToDTO

func (a *DefaultAssembler) ConvertToDTO(entity interface{}) interface{}

func (*DefaultAssembler) ConvertToDTOs

func (a *DefaultAssembler) ConvertToDTOs(entities interface{}) interface{}

func (*DefaultAssembler) ConvertToQuery

func (a *DefaultAssembler) ConvertToQuery(q Query) Query

func (*DefaultAssembler) ConvertToUpdateEntity

func (a *DefaultAssembler) ConvertToUpdateEntity(dto interface{}) interface{}

type Filter

type Filter struct {
	Fields map[string]interface{} `form:"fields"`
	And    []*Filter              `form:"and"`
	Or     []*Filter              `form:"or"`
	Not    []*Filter              `form:"not"`
}

type Pagination

type Pagination struct {
	Page    uint `form:"page" validate:"required,min=1"`
	PerPage uint `form:"perPage" validate:"required,min=1"`
}

type Query

type Query struct {
	Filter     *Filter     `form:"filter"`
	Pagination *Pagination `form:"pagination"`
	Sort       Sort        `form:"sort"`
	Select     []string    `form:"select"`
	Relations  []string    `form:"relations"`
}

type QueryService

type QueryService interface {
	Find(Query) interface{}
	FindByID(id interface{}) interface{}
	Create(interface{}) interface{}
	UpdateOne(interface{}, interface{}) interface{}
	UpdateMany(Filter, interface{}) int
	DeleteOne(interface{}) interface{}
	DeleteMany(Filter) int
}

type Sort

type Sort map[string]string

Jump to

Keyboard shortcuts

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