utils

package
v1.8.2 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DirAsc sorting ASC
	DirAsc = direction{
			// contains filtered or unexported fields
	}

	// DirDesc sorting DESC
	DirDesc = direction{
			// contains filtered or unexported fields
	}

	// Direction map direction
	Direction = map[string]direction{
		"ASC":  DirAsc,
		"DESC": DirDesc,
	}
)
View Source
var (
	// InnerJoin inner join type
	InnerJoin = joinType{
				// contains filtered or unexported fields
	}

	// LeftJoin left join type
	LeftJoin = joinType{
				// contains filtered or unexported fields
	}

	// RightJoin right join type
	RightJoin = joinType{
				// contains filtered or unexported fields
	}
)

Functions

func NewPagination

func NewPagination(page, limit int) *paginationOption

NewPagination build new pagination

Types

type MetaResponse

type MetaResponse struct {
	Data Pagination `json:"pagination"`
}

MetaResponse meta pagination response

func MapMetaResponse

func MapMetaResponse(totalCount int, currentPageCount int, currentPage int, limitPerPage int) MetaResponse

MapMetaResponse map meta pagination response

type Pagination

type Pagination struct {
	Total       int `json:"total"`
	Count       int `json:"count"`
	PerPage     int `json:"per_page"`
	CurrentPage int `json:"current_page"`
	TotalPages  int `json:"total_pages"`
}

Pagination pagination attributes

type QueryBuilderInteractor

type QueryBuilderInteractor interface {
	GetQuery(tablename string, aliases string) (query string, values []interface{}, err error)
	CopyQuery() QueryBuilderInteractor
	InsertQuery(tableName string, arrColumn []string, models map[string]interface{}) (stmt string, values []interface{}, err error)
	InsertManyQuery(tableName string, arrColumn []string, models []interface{}) (stmt string, values []interface{}, err error)
	UpdateQuery(tableName string, arrColumn []string, models map[string]interface{}) (stmt string, values []interface{}, err error)
	AddSelection(selection string)
	AddSum(column string, aliases string)
	AddCount(column string, aliases string)
	AddPagination(pagination *paginationOption)
	AddSort(direction direction, sortBy ...string)
	AddWhere(attribute string, operation string, value interface{})
	AddRawWhere(listWhere map[string]interface{})
	AddJoin(joinType joinType, tableName, aliases, on string)
	AddGroup(group ...string)
	AddKey(key ...interface{})
	RemoveKey()
	GetKey() string
}

QueryBuilderInteractor query builder interactor

func NewQueryBuilder

func NewQueryBuilder() QueryBuilderInteractor

NewQueryBuilder create new query builder

type RequestOption

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

RequestOption pagination request option

func NewRequestOption

func NewRequestOption() *RequestOption

NewRequestOption build new request option

func (*RequestOption) GetPagination

func (request *RequestOption) GetPagination() *paginationOption

GetPagination get pagination request

func (*RequestOption) GetSortBy

func (request *RequestOption) GetSortBy() *map[string]direction

GetSortBy get sort by request

func (*RequestOption) SetPagination

func (request *RequestOption) SetPagination(pagination *paginationOption) *RequestOption

SetPagination set pagination request

func (*RequestOption) SetPaginationWithSort

func (request *RequestOption) SetPaginationWithSort(query QueryBuilderInteractor) (q QueryBuilderInteractor, page int, limit int)

SetPaginationWithSort Set pagination with sort

func (*RequestOption) SetSortBy

func (request *RequestOption) SetSortBy(sortDir direction, sortBy ...string) (*RequestOption, error)

SetSortBy set sort by request

Jump to

Keyboard shortcuts

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