Documentation ¶
Index ¶
- func Contains(arr []string, str string) bool
- func ContainsKey(keyValuePair map[string][]string, keyToCheck string) bool
- func DoesColumnExistInTable(uow *UnitOfWork, tableName string, ColumnName string) bool
- func GetOrder(orderBy string, validSortingColumn []string, ...) (interface{}, error)
- func GetOrderType(order string) string
- type GormRepository
- func (repository *GormRepository) Add(uow *UnitOfWork, entity interface{}) error
- func (repository *GormRepository) Delete(uow *UnitOfWork, entity interface{}) error
- func (repository *GormRepository) Get(uow *UnitOfWork, out interface{}, id uuid.UUID, preloadAssociations []string) error
- func (repository *GormRepository) GetAll(uow *UnitOfWork, out interface{}, queryProcessors []QueryProcessor) error
- func (repository *GormRepository) GetAllForTenant(uow *UnitOfWork, out interface{}, tenantID uuid.UUID, ...) error
- func (repository *GormRepository) Update(uow *UnitOfWork, entity interface{}) error
- type QueryProcessor
- func AddFiltersFromQueryParams(r *http.Request, filterDetails ...string) ([]QueryProcessor, error)
- func AddFiltersFromQueryParamsWithOR(r *http.Request, filterDetails ...string) ([]QueryProcessor, error)
- func Filter(condition string, args ...interface{}) QueryProcessor
- func FilterWithOR(columnName []string, condition []string, filterValues []interface{}) QueryProcessor
- func Order(value interface{}, reorder bool) QueryProcessor
- func Paginate(limit int, offset int, count *int) QueryProcessor
- func PaginateForWeb(w http.ResponseWriter, r *http.Request) QueryProcessor
- func PreloadAssociations(preloadAssociations []string) QueryProcessor
- func TimeRangeForWeb(r *http.Request, fieldName string) QueryProcessor
- type Repository
- type UnitOfWork
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContainsKey ¶ added in v0.0.84
ContainsKey checks if key present in map
func DoesColumnExistInTable ¶ added in v0.0.84
func DoesColumnExistInTable(uow *UnitOfWork, tableName string, ColumnName string) bool
DoesColumnExistInTable returns bool if the column exist in table
func GetOrder ¶ added in v0.0.84
func GetOrder(orderBy string, validSortingColumn []string, subsituteKeyWithValue map[string][]string, returnType string) (interface{}, error)
GetOrder will check for valid sorting columns, substituting column and return the Order Query. Format for orderBy : ColumnName1:1,ColumnName2:0 etc. 0 -> Asc, 1 -> Desc Format For SubsituteKeyWithValue : map[string][]string{"Key": []string{"Value1", "Value2"}}
func GetOrderType ¶ added in v0.0.84
GetOrderType returns the type of order
Types ¶
type GormRepository ¶
type GormRepository struct { }
GormRepository implements Repository
func (*GormRepository) Add ¶
func (repository *GormRepository) Add(uow *UnitOfWork, entity interface{}) error
Add specified Entity
func (*GormRepository) Delete ¶
func (repository *GormRepository) Delete(uow *UnitOfWork, entity interface{}) error
Delete specified Entity
func (*GormRepository) Get ¶
func (repository *GormRepository) Get(uow *UnitOfWork, out interface{}, id uuid.UUID, preloadAssociations []string) error
Get a record for specified entity with specific id
func (*GormRepository) GetAll ¶
func (repository *GormRepository) GetAll(uow *UnitOfWork, out interface{}, queryProcessors []QueryProcessor) error
GetAll retrieves all the records for a specified entity and returns it
func (*GormRepository) GetAllForTenant ¶ added in v0.0.6
func (repository *GormRepository) GetAllForTenant(uow *UnitOfWork, out interface{}, tenantID uuid.UUID, queryProcessors []QueryProcessor) error
GetAllForTenant returns all objects of specifeid tenantID
func (*GormRepository) Update ¶
func (repository *GormRepository) Update(uow *UnitOfWork, entity interface{}) error
Update specified Entity
type QueryProcessor ¶ added in v0.0.23
QueryProcessor allows to modify the query before it is executed
func AddFiltersFromQueryParams ¶ added in v0.0.78
func AddFiltersFromQueryParams(r *http.Request, filterDetails ...string) ([]QueryProcessor, error)
AddFiltersFromQueryParams will check for given filter(s) in the query params, if value found creates the db filter. filterDetail format - "filterName[:type]".
func AddFiltersFromQueryParamsWithOR ¶ added in v0.0.82
func AddFiltersFromQueryParamsWithOR(r *http.Request, filterDetails ...string) ([]QueryProcessor, error)
AddFiltersFromQueryParamsWithOR will check for given filter(s) in the query params, if value found adds it in array and creates the db filter. filterDetail format - "filterName[:type]". Same field Filters are using 'OR' , 'AND' would be done between different fields
func Filter ¶ added in v0.0.23
func Filter(condition string, args ...interface{}) QueryProcessor
Filter will filter the results
func FilterWithOR ¶ added in v0.0.81
func FilterWithOR(columnName []string, condition []string, filterValues []interface{}) QueryProcessor
FilterWithOR will filter the results based on OR
func Order ¶ added in v0.0.76
func Order(value interface{}, reorder bool) QueryProcessor
Order will filter the results
func Paginate ¶ added in v0.0.23
func Paginate(limit int, offset int, count *int) QueryProcessor
Paginate will restrict the output of query
func PaginateForWeb ¶ added in v0.0.26
func PaginateForWeb(w http.ResponseWriter, r *http.Request) QueryProcessor
PaginateForWeb will take limit and offset parameters from URL and will set X-Total-Count header in response
func PreloadAssociations ¶ added in v0.0.23
func PreloadAssociations(preloadAssociations []string) QueryProcessor
PreloadAssociations specified associations to be preloaded
func TimeRangeForWeb ¶ added in v0.0.42
func TimeRangeForWeb(r *http.Request, fieldName string) QueryProcessor
TimeRangeForWeb will take limit and offset parameters from URL and will set X-Total-Count header in response
type Repository ¶
type Repository interface { Get(uow *UnitOfWork, out interface{}, id uuid.UUID, preloadAssociations []string) error GetAll(uow *UnitOfWork, out interface{}, queryProcessors []QueryProcessor) error GetAllForTenant(uow *UnitOfWork, out interface{}, tenantID uuid.UUID, queryProcessors []QueryProcessor) error Add(uow *UnitOfWork, out interface{}) error Update(uow *UnitOfWork, out interface{}) error Delete(uow *UnitOfWork, out interface{}) error }
Repository represents generic interface for interacting with DB
type UnitOfWork ¶
UnitOfWork represents a connection
func NewUnitOfWork ¶
func NewUnitOfWork(db *gorm.DB, readOnly bool) *UnitOfWork
NewUnitOfWork creates new UnitOfWork