repository

package
v0.0.0-...-e5954dd Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Code generated by firestore-repo. DO NOT EDIT. generated version: 1.10.0

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAlreadyExists        = xerrors.New("already exists")
	ErrAlreadyDeleted       = xerrors.New("already been deleted")
	ErrNotFound             = xerrors.New("not found")
	ErrLogicallyDeletedData = xerrors.New("logically deleted data")
	ErrUniqueConstraint     = xerrors.New("unique constraint error")
	ErrNotAvailableCG       = xerrors.New("not available in collection groups")
	ErrVersionConflict      = xerrors.New("version conflict")
)

Functions

func IsSlice

func IsSlice(v interface{}) bool

IsSlice - slice judgment

func SetLastThreeToZero

func SetLastThreeToZero(t time.Time) time.Time

SetLastThreeToZero - set the last three digits to zero

Types

type Cursor

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

Cursor - query cursor

type DeleteMode

type DeleteMode int

DeleteMode - delete mode

const (
	DeleteModeSoft DeleteMode = iota + 1 // logical delete mode
	DeleteModeHard                       // physical delete mode
)

type DeleteOption

type DeleteOption struct {
	Mode DeleteMode
}

DeleteOption - option to delete logically or physically default: physical deletion use `DeleteModeSoft` or `DeleteModeHard

type Filter

type Filter struct {
	FilterTypes []FilterType
	Value       interface{}
}

Filter - filters of extra indexer

type FilterType

type FilterType = int

FilterType - extra indexes filters type

const (
	FilterTypeAdd FilterType = 1 << iota
	FilterTypeAddPrefix
	FilterTypeAddSuffix
	FilterTypeAddBiunigrams
	FilterTypeAddSomething
)

type GetOption

type GetOption struct {
	IncludeSoftDeleted bool
}

GetOption - option to include logical deletion data

type MultiError

type MultiError interface {
	GetIndex() int
	GetError() error
	Error() string
}

MultiError - multi error interface

func NewMultiError

func NewMultiError(index int, err error) MultiError

NewMultiError - constructor

type MultiErrors

type MultiErrors []MultiError

MultiErrors - multi errors

func NewMultiErrors

func NewMultiErrors() MultiErrors

NewMultiErrors - constructor

func (MultiErrors) Error

func (errs MultiErrors) Error() string

Error - multi errors string

type OpType

type OpType = string

OpType - operator type

const (
	OpTypeEqual              OpType = "=="
	OpTypeNotEqual           OpType = "!="
	OpTypeLessThan           OpType = "<"
	OpTypeLessThanOrEqual    OpType = "<="
	OpTypeGreaterThan        OpType = ">"
	OpTypeGreaterThanOrEqual OpType = ">="
	OpTypeIn                 OpType = "in"
	OpTypeNotIn              OpType = "not-in"
	OpTypeArrayContains      OpType = "array-contains"
	OpTypeArrayContainsAny   OpType = "array-contains-any"
)

type OrganizationRepository

type OrganizationRepository interface {
	// Single
	Get(ctx context.Context, id string, opts ...GetOption) (*model.Organization, error)
	GetWithDoc(ctx context.Context, doc *firestore.DocumentRef, opts ...GetOption) (*model.Organization, error)
	Insert(ctx context.Context, subject *model.Organization) (_ string, err error)
	Update(ctx context.Context, subject *model.Organization) (err error)
	StrictUpdate(ctx context.Context, id string, param *OrganizationUpdateParam, opts ...firestore.Precondition) error
	Delete(ctx context.Context, subject *model.Organization, opts ...DeleteOption) (err error)
	DeleteByID(ctx context.Context, id string, opts ...DeleteOption) (err error)
	// Multiple
	GetMulti(ctx context.Context, ids []string, opts ...GetOption) ([]*model.Organization, error)
	InsertMulti(ctx context.Context, subjects []*model.Organization) (_ []string, er error)
	UpdateMulti(ctx context.Context, subjects []*model.Organization) (er error)
	DeleteMulti(ctx context.Context, subjects []*model.Organization, opts ...DeleteOption) (er error)
	DeleteMultiByIDs(ctx context.Context, ids []string, opts ...DeleteOption) (er error)
	// Single(Transaction)
	GetWithTx(tx *firestore.Transaction, id string, opts ...GetOption) (*model.Organization, error)
	GetWithDocWithTx(tx *firestore.Transaction, doc *firestore.DocumentRef, opts ...GetOption) (*model.Organization, error)
	InsertWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Organization) (_ string, err error)
	UpdateWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Organization) (err error)
	StrictUpdateWithTx(tx *firestore.Transaction, id string, param *OrganizationUpdateParam, opts ...firestore.Precondition) error
	DeleteWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Organization, opts ...DeleteOption) (err error)
	DeleteByIDWithTx(ctx context.Context, tx *firestore.Transaction, id string, opts ...DeleteOption) (err error)
	// Multiple(Transaction)
	GetMultiWithTx(tx *firestore.Transaction, ids []string, opts ...GetOption) ([]*model.Organization, error)
	InsertMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Organization) (_ []string, er error)
	UpdateMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Organization) (er error)
	DeleteMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Organization, opts ...DeleteOption) (er error)
	DeleteMultiByIDsWithTx(ctx context.Context, tx *firestore.Transaction, ids []string, opts ...DeleteOption) (er error)
	// Search
	Search(ctx context.Context, param *OrganizationSearchParam, q *firestore.Query) ([]*model.Organization, error)
	SearchWithTx(tx *firestore.Transaction, param *OrganizationSearchParam, q *firestore.Query) ([]*model.Organization, error)
	// misc
	GetCollection() *firestore.CollectionRef
	GetCollectionName() string
	GetDocRef(id string) *firestore.DocumentRef
	RunInTransaction() func(ctx context.Context, f func(context.Context, *firestore.Transaction) error, opts ...firestore.TransactionOption) (err error)
}

OrganizationRepository - Repository of Organization

func NewOrganizationRepository

func NewOrganizationRepository(firestoreClient *firestore.Client, middleware ...OrganizationRepositoryMiddleware) OrganizationRepository

NewOrganizationRepository - constructor

type OrganizationRepositoryMiddleware

type OrganizationRepositoryMiddleware interface {
	BeforeInsert(ctx context.Context, subject *model.Organization) (bool, error)
	BeforeUpdate(ctx context.Context, old, subject *model.Organization) (bool, error)
	BeforeDelete(ctx context.Context, subject *model.Organization, opts ...DeleteOption) (bool, error)
	BeforeDeleteByID(ctx context.Context, ids []string, opts ...DeleteOption) (bool, error)
}

OrganizationRepositoryMiddleware - middleware of OrganizationRepository

type OrganizationSearchParam

type OrganizationSearchParam struct {
	Name                 *QueryChainer
	LINEWorksAppID       *QueryChainer
	LINEWorksConsumerKey *QueryChainer
	LINEWorksDomain      *QueryChainer
	CreatedAt            *QueryChainer
	CreatedBy            *QueryChainer
	DeletedAt            *QueryChainer
	DeletedBy            *QueryChainer
	UpdatedAt            *QueryChainer
	UpdatedBy            *QueryChainer
	Version              *QueryChainer

	IncludeSoftDeleted bool
	CursorLimit        int
}

OrganizationSearchParam - params for search

type OrganizationUpdateParam

type OrganizationUpdateParam struct {
	Name                 interface{}
	LINEWorksAppID       interface{}
	LINEWorksConsumerKey interface{}
	LINEWorksDomain      interface{}
	CreatedAt            interface{}
	CreatedBy            interface{}
	DeletedAt            interface{}
	DeletedBy            interface{}
	UpdatedAt            interface{}
	UpdatedBy            interface{}
	Version              interface{}
}

OrganizationUpdateParam - params for strict updates

type OrganizationUserRepository

type OrganizationUserRepository interface {
	// Single
	Get(ctx context.Context, id string, opts ...GetOption) (*model.OrganizationUser, error)
	GetWithDoc(ctx context.Context, doc *firestore.DocumentRef, opts ...GetOption) (*model.OrganizationUser, error)
	Insert(ctx context.Context, subject *model.OrganizationUser) (_ string, err error)
	Update(ctx context.Context, subject *model.OrganizationUser) (err error)
	StrictUpdate(ctx context.Context, id string, param *OrganizationUserUpdateParam, opts ...firestore.Precondition) error
	Delete(ctx context.Context, subject *model.OrganizationUser, opts ...DeleteOption) (err error)
	DeleteByID(ctx context.Context, id string, opts ...DeleteOption) (err error)
	// Multiple
	GetMulti(ctx context.Context, ids []string, opts ...GetOption) ([]*model.OrganizationUser, error)
	InsertMulti(ctx context.Context, subjects []*model.OrganizationUser) (_ []string, er error)
	UpdateMulti(ctx context.Context, subjects []*model.OrganizationUser) (er error)
	DeleteMulti(ctx context.Context, subjects []*model.OrganizationUser, opts ...DeleteOption) (er error)
	DeleteMultiByIDs(ctx context.Context, ids []string, opts ...DeleteOption) (er error)
	// Single(Transaction)
	GetWithTx(tx *firestore.Transaction, id string, opts ...GetOption) (*model.OrganizationUser, error)
	GetWithDocWithTx(tx *firestore.Transaction, doc *firestore.DocumentRef, opts ...GetOption) (*model.OrganizationUser, error)
	InsertWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.OrganizationUser) (_ string, err error)
	UpdateWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.OrganizationUser) (err error)
	StrictUpdateWithTx(tx *firestore.Transaction, id string, param *OrganizationUserUpdateParam, opts ...firestore.Precondition) error
	DeleteWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.OrganizationUser, opts ...DeleteOption) (err error)
	DeleteByIDWithTx(ctx context.Context, tx *firestore.Transaction, id string, opts ...DeleteOption) (err error)
	// Multiple(Transaction)
	GetMultiWithTx(tx *firestore.Transaction, ids []string, opts ...GetOption) ([]*model.OrganizationUser, error)
	InsertMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.OrganizationUser) (_ []string, er error)
	UpdateMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.OrganizationUser) (er error)
	DeleteMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.OrganizationUser, opts ...DeleteOption) (er error)
	DeleteMultiByIDsWithTx(ctx context.Context, tx *firestore.Transaction, ids []string, opts ...DeleteOption) (er error)
	// Search
	Search(ctx context.Context, param *OrganizationUserSearchParam, q *firestore.Query) ([]*model.OrganizationUser, error)
	SearchWithTx(tx *firestore.Transaction, param *OrganizationUserSearchParam, q *firestore.Query) ([]*model.OrganizationUser, error)
	// misc
	GetCollection() *firestore.CollectionRef
	GetCollectionName() string
	GetDocRef(id string) *firestore.DocumentRef
	RunInTransaction() func(ctx context.Context, f func(context.Context, *firestore.Transaction) error, opts ...firestore.TransactionOption) (err error)
	SetParentDoc(doc *firestore.DocumentRef)
	Free()
}

OrganizationUserRepository - Repository of OrganizationUser

func NewOrganizationUserCollectionGroupRepository

func NewOrganizationUserCollectionGroupRepository(firestoreClient *firestore.Client) OrganizationUserRepository

NewOrganizationUserCollectionGroupRepository - constructor

func NewOrganizationUserRepository

func NewOrganizationUserRepository(firestoreClient *firestore.Client, parentDocument *firestore.DocumentRef, middleware ...OrganizationUserRepositoryMiddleware) OrganizationUserRepository

NewOrganizationUserRepository - constructor

type OrganizationUserRepositoryMiddleware

type OrganizationUserRepositoryMiddleware interface {
	BeforeInsert(ctx context.Context, subject *model.OrganizationUser) (bool, error)
	BeforeUpdate(ctx context.Context, old, subject *model.OrganizationUser) (bool, error)
	BeforeDelete(ctx context.Context, subject *model.OrganizationUser, opts ...DeleteOption) (bool, error)
	BeforeDeleteByID(ctx context.Context, ids []string, opts ...DeleteOption) (bool, error)
}

OrganizationUserRepositoryMiddleware - middleware of OrganizationUserRepository

type OrganizationUserSearchParam

type OrganizationUserSearchParam struct {
	OrganizationID            *QueryChainer
	PrimaryEmail              *QueryChainer
	LINEWorksAccessToken      *QueryChainer
	GoogleCalendarEmail       *QueryChainer
	GoogleCalendarAccessToken *QueryChainer
	CreatedAt                 *QueryChainer
	CreatedBy                 *QueryChainer
	DeletedAt                 *QueryChainer
	DeletedBy                 *QueryChainer
	UpdatedAt                 *QueryChainer
	UpdatedBy                 *QueryChainer
	Version                   *QueryChainer

	IncludeSoftDeleted bool
	CursorLimit        int
}

OrganizationUserSearchParam - params for search

type OrganizationUserUpdateParam

type OrganizationUserUpdateParam struct {
	OrganizationID            interface{}
	PrimaryEmail              interface{}
	LINEWorksAccessToken      interface{}
	GoogleCalendarEmail       interface{}
	GoogleCalendarAccessToken interface{}
	CreatedAt                 interface{}
	CreatedBy                 interface{}
	DeletedAt                 interface{}
	DeletedBy                 interface{}
	UpdatedAt                 interface{}
	UpdatedBy                 interface{}
	Version                   interface{}
}

OrganizationUserUpdateParam - params for strict updates

type Query

type Query struct {
	Operator OpType
	Value    interface{}
}

Query - query

func (*Query) IsSlice

func (q *Query) IsSlice() bool

IsSlice - slice judgment

type QueryBuilder

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

QueryBuilder - query builder

func NewQueryBuilder

func NewQueryBuilder(collection *firestore.CollectionRef) *QueryBuilder

NewQueryBuilder - constructor

func (*QueryBuilder) ArrayContains

func (qb *QueryBuilder) ArrayContains(path string, value interface{}) *QueryBuilder

ArrayContains - array filter ( `array-contains` )

func (*QueryBuilder) ArrayContainsAny

func (qb *QueryBuilder) ArrayContainsAny(path string, value interface{}) *QueryBuilder

ArrayContainsAny - array filter ( `array-contains-any` )

func (*QueryBuilder) Asc

func (qb *QueryBuilder) Asc(path string) *QueryBuilder

Asc - order

func (*QueryBuilder) Check

func (qb *QueryBuilder) Check() error

Check - condition check

func (*QueryBuilder) Desc

func (qb *QueryBuilder) Desc(path string) *QueryBuilder

Desc - order

func (*QueryBuilder) EndAt

func (qb *QueryBuilder) EndAt(docSnapshotOrFieldValues ...interface{}) *QueryBuilder

EndAt - end at

func (*QueryBuilder) EndBefore

func (qb *QueryBuilder) EndBefore(docSnapshotOrFieldValues ...interface{}) *QueryBuilder

EndBefore - end before

func (*QueryBuilder) Equal

func (qb *QueryBuilder) Equal(path string, value interface{}) *QueryBuilder

Equal - equality filter ( `==` )

func (*QueryBuilder) GreaterThan

func (qb *QueryBuilder) GreaterThan(path string, value interface{}) *QueryBuilder

GreaterThan - range filter ( `>` )

func (*QueryBuilder) GreaterThanOrEqual

func (qb *QueryBuilder) GreaterThanOrEqual(path string, value interface{}) *QueryBuilder

GreaterThanOrEqual - range filter ( `>=` )

func (*QueryBuilder) In

func (qb *QueryBuilder) In(path string, value interface{}) *QueryBuilder

In - array filter ( `in` )

func (*QueryBuilder) LessThan

func (qb *QueryBuilder) LessThan(path string, value interface{}) *QueryBuilder

LessThan - range filter ( `<` )

func (*QueryBuilder) LessThanOrEqual

func (qb *QueryBuilder) LessThanOrEqual(path string, value interface{}) *QueryBuilder

LessThanOrEqual - range filter ( `<=` )

func (*QueryBuilder) Limit

func (qb *QueryBuilder) Limit(limit int) *QueryBuilder

Limit - limit

func (*QueryBuilder) NotEqual

func (qb *QueryBuilder) NotEqual(path string, value interface{}) *QueryBuilder

NotEqual - inequality filter ( `!=` )

func (*QueryBuilder) NotIn

func (qb *QueryBuilder) NotIn(path string, value interface{}) *QueryBuilder

NotIn - array filter ( `not-in` )

func (*QueryBuilder) Query

func (qb *QueryBuilder) Query() *firestore.Query

Query - return firestore.Query

func (*QueryBuilder) StartAfter

func (qb *QueryBuilder) StartAfter(docSnapshotOrFieldValues ...interface{}) *QueryBuilder

StartAfter - start after

func (*QueryBuilder) StartAt

func (qb *QueryBuilder) StartAt(docSnapshotOrFieldValues ...interface{}) *QueryBuilder

StartAt - start at

type QueryChainer

type QueryChainer struct {
	QueryGroup       []*Query
	OrderByDirection firestore.Direction
	Filter           Filter
	// contains filtered or unexported fields
}

QueryChainer - query chainer

func NewQueryChainer

func NewQueryChainer() *QueryChainer

NewQueryChainer - constructor

func (*QueryChainer) ArrayContains

func (qc *QueryChainer) ArrayContains(v interface{}) *QueryChainer

ArrayContains - `array-contains`

func (*QueryChainer) ArrayContainsAny

func (qc *QueryChainer) ArrayContainsAny(v interface{}) *QueryChainer

ArrayContainsAny - `array-contains-any`

func (*QueryChainer) Asc

func (qc *QueryChainer) Asc() *QueryChainer

Asc - `Asc`

func (*QueryChainer) BuildCursorQuery

func (qc *QueryChainer) BuildCursorQuery(q firestore.Query) firestore.Query

BuildCursor - build query for cursor

func (*QueryChainer) Desc

func (qc *QueryChainer) Desc() *QueryChainer

Desc - `Desc`

func (*QueryChainer) EndAt

func (qc *QueryChainer) EndAt(v ...interface{}) *QueryChainer

EndAt - end at

func (*QueryChainer) EndBefore

func (qc *QueryChainer) EndBefore(v ...interface{}) *QueryChainer

EndBefore - end before

func (*QueryChainer) Equal

func (qc *QueryChainer) Equal(v interface{}) *QueryChainer

Equal - `==`

func (*QueryChainer) Error

func (qc *QueryChainer) Error() error

Error - error

func (*QueryChainer) Filters

func (qc *QueryChainer) Filters(v interface{}, filterTypes ...FilterType) *QueryChainer

Filters - using `xim`

func (*QueryChainer) GreaterThan

func (qc *QueryChainer) GreaterThan(v interface{}) *QueryChainer

GreaterThan - `>`

func (*QueryChainer) GreaterThanOrEqual

func (qc *QueryChainer) GreaterThanOrEqual(v interface{}) *QueryChainer

GreaterThanOrEqual - `>=`

func (*QueryChainer) In

func (qc *QueryChainer) In(v interface{}) *QueryChainer

In - `in`

func (*QueryChainer) LessThan

func (qc *QueryChainer) LessThan(v interface{}) *QueryChainer

LessThan - `<`

func (*QueryChainer) LessThanOrEqual

func (qc *QueryChainer) LessThanOrEqual(v interface{}) *QueryChainer

LessThanOrEqual - `<=`

func (*QueryChainer) NotEqual

func (qc *QueryChainer) NotEqual(v interface{}) *QueryChainer

NotEqual - `!=`

func (*QueryChainer) NotIn

func (qc *QueryChainer) NotIn(v interface{}) *QueryChainer

NotIn - `not-in`

func (*QueryChainer) StartAfter

func (qc *QueryChainer) StartAfter(v ...interface{}) *QueryChainer

StartAt - start after

func (*QueryChainer) StartAt

func (qc *QueryChainer) StartAt(v ...interface{}) *QueryChainer

StartAt - start at

type RollbackFunc

type RollbackFunc func(context.Context) error

RollbackFunc - rollback function

type SessionRepository

type SessionRepository interface {
	// Single
	Get(ctx context.Context, id string, opts ...GetOption) (*model.Session, error)
	GetWithDoc(ctx context.Context, doc *firestore.DocumentRef, opts ...GetOption) (*model.Session, error)
	Insert(ctx context.Context, subject *model.Session) (_ string, err error)
	Update(ctx context.Context, subject *model.Session) (err error)
	StrictUpdate(ctx context.Context, id string, param *SessionUpdateParam, opts ...firestore.Precondition) error
	Delete(ctx context.Context, subject *model.Session, opts ...DeleteOption) (err error)
	DeleteByID(ctx context.Context, id string, opts ...DeleteOption) (err error)
	// Multiple
	GetMulti(ctx context.Context, ids []string, opts ...GetOption) ([]*model.Session, error)
	InsertMulti(ctx context.Context, subjects []*model.Session) (_ []string, er error)
	UpdateMulti(ctx context.Context, subjects []*model.Session) (er error)
	DeleteMulti(ctx context.Context, subjects []*model.Session, opts ...DeleteOption) (er error)
	DeleteMultiByIDs(ctx context.Context, ids []string, opts ...DeleteOption) (er error)
	// Single(Transaction)
	GetWithTx(tx *firestore.Transaction, id string, opts ...GetOption) (*model.Session, error)
	GetWithDocWithTx(tx *firestore.Transaction, doc *firestore.DocumentRef, opts ...GetOption) (*model.Session, error)
	InsertWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Session) (_ string, err error)
	UpdateWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Session) (err error)
	StrictUpdateWithTx(tx *firestore.Transaction, id string, param *SessionUpdateParam, opts ...firestore.Precondition) error
	DeleteWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.Session, opts ...DeleteOption) (err error)
	DeleteByIDWithTx(ctx context.Context, tx *firestore.Transaction, id string, opts ...DeleteOption) (err error)
	// Multiple(Transaction)
	GetMultiWithTx(tx *firestore.Transaction, ids []string, opts ...GetOption) ([]*model.Session, error)
	InsertMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Session) (_ []string, er error)
	UpdateMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Session) (er error)
	DeleteMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.Session, opts ...DeleteOption) (er error)
	DeleteMultiByIDsWithTx(ctx context.Context, tx *firestore.Transaction, ids []string, opts ...DeleteOption) (er error)
	// Search
	Search(ctx context.Context, param *SessionSearchParam, q *firestore.Query) ([]*model.Session, error)
	SearchWithTx(tx *firestore.Transaction, param *SessionSearchParam, q *firestore.Query) ([]*model.Session, error)
	// misc
	GetCollection() *firestore.CollectionRef
	GetCollectionName() string
	GetDocRef(id string) *firestore.DocumentRef
	RunInTransaction() func(ctx context.Context, f func(context.Context, *firestore.Transaction) error, opts ...firestore.TransactionOption) (err error)
}

SessionRepository - Repository of Session

func NewSessionRepository

func NewSessionRepository(firestoreClient *firestore.Client, middleware ...SessionRepositoryMiddleware) SessionRepository

NewSessionRepository - constructor

type SessionRepositoryMiddleware

type SessionRepositoryMiddleware interface {
	BeforeInsert(ctx context.Context, subject *model.Session) (bool, error)
	BeforeUpdate(ctx context.Context, old, subject *model.Session) (bool, error)
	BeforeDelete(ctx context.Context, subject *model.Session, opts ...DeleteOption) (bool, error)
	BeforeDeleteByID(ctx context.Context, ids []string, opts ...DeleteOption) (bool, error)
}

SessionRepositoryMiddleware - middleware of SessionRepository

type SessionSearchParam

type SessionSearchParam struct {
	UserID    *QueryChainer
	CreatedAt *QueryChainer
	CreatedBy *QueryChainer
	DeletedAt *QueryChainer
	DeletedBy *QueryChainer
	UpdatedAt *QueryChainer
	UpdatedBy *QueryChainer
	Version   *QueryChainer

	IncludeSoftDeleted bool
	CursorLimit        int
}

SessionSearchParam - params for search

type SessionUpdateParam

type SessionUpdateParam struct {
	UserID    interface{}
	CreatedAt interface{}
	CreatedBy interface{}
	DeletedAt interface{}
	DeletedBy interface{}
	UpdatedAt interface{}
	UpdatedBy interface{}
	Version   interface{}
}

SessionUpdateParam - params for strict updates

type Unique

type Unique struct {
	ID         string `firestore:"-"`
	Collection string
	Data       string
	Value      string
}

Unique - Collections for unique constraints

type UniqueMiddlewareKey

type UniqueMiddlewareKey struct{}

type UniqueRepositoryMiddleware

type UniqueRepositoryMiddleware interface {
	WrapError(ctx context.Context, err error, uniques []*Unique) error
}

UniqueRepositoryMiddleware - middleware

type UserRepository

type UserRepository interface {
	// Single
	Get(ctx context.Context, id string, opts ...GetOption) (*model.User, error)
	GetWithDoc(ctx context.Context, doc *firestore.DocumentRef, opts ...GetOption) (*model.User, error)
	Insert(ctx context.Context, subject *model.User) (_ string, err error)
	Update(ctx context.Context, subject *model.User) (err error)
	StrictUpdate(ctx context.Context, id string, param *UserUpdateParam, opts ...firestore.Precondition) error
	Delete(ctx context.Context, subject *model.User, opts ...DeleteOption) (err error)
	DeleteByID(ctx context.Context, id string, opts ...DeleteOption) (err error)
	// Multiple
	GetMulti(ctx context.Context, ids []string, opts ...GetOption) ([]*model.User, error)
	InsertMulti(ctx context.Context, subjects []*model.User) (_ []string, er error)
	UpdateMulti(ctx context.Context, subjects []*model.User) (er error)
	DeleteMulti(ctx context.Context, subjects []*model.User, opts ...DeleteOption) (er error)
	DeleteMultiByIDs(ctx context.Context, ids []string, opts ...DeleteOption) (er error)
	// Single(Transaction)
	GetWithTx(tx *firestore.Transaction, id string, opts ...GetOption) (*model.User, error)
	GetWithDocWithTx(tx *firestore.Transaction, doc *firestore.DocumentRef, opts ...GetOption) (*model.User, error)
	InsertWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.User) (_ string, err error)
	UpdateWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.User) (err error)
	StrictUpdateWithTx(tx *firestore.Transaction, id string, param *UserUpdateParam, opts ...firestore.Precondition) error
	DeleteWithTx(ctx context.Context, tx *firestore.Transaction, subject *model.User, opts ...DeleteOption) (err error)
	DeleteByIDWithTx(ctx context.Context, tx *firestore.Transaction, id string, opts ...DeleteOption) (err error)
	// Multiple(Transaction)
	GetMultiWithTx(tx *firestore.Transaction, ids []string, opts ...GetOption) ([]*model.User, error)
	InsertMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.User) (_ []string, er error)
	UpdateMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.User) (er error)
	DeleteMultiWithTx(ctx context.Context, tx *firestore.Transaction, subjects []*model.User, opts ...DeleteOption) (er error)
	DeleteMultiByIDsWithTx(ctx context.Context, tx *firestore.Transaction, ids []string, opts ...DeleteOption) (er error)
	// Search
	Search(ctx context.Context, param *UserSearchParam, q *firestore.Query) ([]*model.User, error)
	SearchWithTx(tx *firestore.Transaction, param *UserSearchParam, q *firestore.Query) ([]*model.User, error)
	// misc
	GetCollection() *firestore.CollectionRef
	GetCollectionName() string
	GetDocRef(id string) *firestore.DocumentRef
	RunInTransaction() func(ctx context.Context, f func(context.Context, *firestore.Transaction) error, opts ...firestore.TransactionOption) (err error)
}

UserRepository - Repository of User

func NewUserRepository

func NewUserRepository(firestoreClient *firestore.Client, middleware ...UserRepositoryMiddleware) UserRepository

NewUserRepository - constructor

type UserRepositoryMiddleware

type UserRepositoryMiddleware interface {
	BeforeInsert(ctx context.Context, subject *model.User) (bool, error)
	BeforeUpdate(ctx context.Context, old, subject *model.User) (bool, error)
	BeforeDelete(ctx context.Context, subject *model.User, opts ...DeleteOption) (bool, error)
	BeforeDeleteByID(ctx context.Context, ids []string, opts ...DeleteOption) (bool, error)
}

UserRepositoryMiddleware - middleware of UserRepository

type UserSearchParam

type UserSearchParam struct {
	Name                       *QueryChainer
	PrimaryEmail               *QueryChainer
	Domain                     *QueryChainer
	IsAdmin                    *QueryChainer
	LINEWorksState             *QueryChainer
	LINEWorksAccessToken       *QueryChainer
	LINEWorksRefreshToken      *QueryChainer
	GoogleCalendarEmail        *QueryChainer
	GoogleCalendarAccessToken  *QueryChainer
	GoogleCalendarRefreshToken *QueryChainer
	GoogleCalendarTokenType    *QueryChainer
	GoogleCalendarExpiry       *QueryChainer
	CreatedAt                  *QueryChainer
	CreatedBy                  *QueryChainer
	DeletedAt                  *QueryChainer
	DeletedBy                  *QueryChainer
	UpdatedAt                  *QueryChainer
	UpdatedBy                  *QueryChainer
	Version                    *QueryChainer

	IncludeSoftDeleted bool
	CursorLimit        int
}

UserSearchParam - params for search

type UserUpdateParam

type UserUpdateParam struct {
	Name                       interface{}
	Domain                     interface{}
	IsAdmin                    interface{}
	LINEWorksState             interface{}
	LINEWorksAccessToken       interface{}
	LINEWorksRefreshToken      interface{}
	GoogleCalendarEmail        interface{}
	GoogleCalendarAccessToken  interface{}
	GoogleCalendarRefreshToken interface{}
	GoogleCalendarTokenType    interface{}
	GoogleCalendarExpiry       interface{}
	CreatedAt                  interface{}
	CreatedBy                  interface{}
	DeletedAt                  interface{}
	DeletedBy                  interface{}
	UpdatedAt                  interface{}
	UpdatedBy                  interface{}
	Version                    interface{}
}

UserUpdateParam - params for strict updates

Notes

Bugs

  • there may be potential bugs

  • there may be potential bugs

  • there may be potential bugs

  • there may be potential bugs

Directories

Path Synopsis
mock
mock_organization_gen
Package mock_repository is a generated GoMock package.
Package mock_repository is a generated GoMock package.
mock_organization_user_gen
Package mock_repository is a generated GoMock package.
Package mock_repository is a generated GoMock package.
mock_session_gen
Package mock_repository is a generated GoMock package.
Package mock_repository is a generated GoMock package.
mock_user_gen
Package mock_repository is a generated GoMock package.
Package mock_repository is a generated GoMock package.

Jump to

Keyboard shortcuts

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