Documentation ¶
Index ¶
- 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 Filter(condition string, args ...interface{}) 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 ¶
This section is empty.
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 Filter ¶ added in v0.0.23
func Filter(condition string, args ...interface{}) QueryProcessor
Filter 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