Documentation
¶
Index ¶
- Variables
- func EntError(err error, msg string) error
- func New(cfg Config) repositories.Repositories
- type BaseRepository
- func (b *BaseRepository[E, EE, EQ, QF]) All(ctx context.Context) ([]*E, error)
- func (b *BaseRepository[E, EE, EQ, QF]) ByID(ctx context.Context, id int) (*E, error)
- func (b *BaseRepository[E, EE, EQ, QF]) Count(ctx context.Context, filters ...QF) (int, error)
- func (b *BaseRepository[E, EE, EQ, QF]) Create(ctx context.Context, data *E) (*E, error)
- func (b *BaseRepository[E, EE, EQ, QF]) DeleteByID(ctx context.Context, id int) error
- func (b *BaseRepository[E, EE, EQ, QF]) Find(ctx context.Context, filters ...QF) ([]*E, error)
- func (b *BaseRepository[E, EE, EQ, QF]) Paginate(ctx context.Context, filters ...QF) (*entities.Paginate[E], error)
- func (b *BaseRepository[E, EE, EQ, QF]) Update(ctx context.Context, data *E) (*E, error)
- type CommentRepository
- type Config
- type EntityQuery
- type EntityType
- type FileRepository
- type PermissionRepository
- type PostRepository
- type QueryFilter
- type Repository
- type RoleRepository
- type SettingRepository
- type TopicRepository
- type UserRepository
- func (u *UserRepository) ByProvider(ctx context.Context, providerName, providerId string) (*entities.User, error)
- func (u *UserRepository) ByUsername(ctx context.Context, username string) (*entities.User, error)
- func (u *UserRepository) ByUsernameOrEmail(ctx context.Context, username, email string) ([]*entities.User, error)
- func (ur *UserRepository) CreateIfNotExistsByProvider(ctx context.Context, userData *entities.User) (*entities.User, error)
- func (ur *UserRepository) Setting(ctx context.Context, id int, userData *entities.SettingMutation) (*entities.User, error)
Constants ¶
This section is empty.
Variables ¶
View Source
var Client *ent.Client
Functions ¶
func New ¶
func New(cfg Config) repositories.Repositories
Types ¶
type BaseRepository ¶
type BaseRepository[E entities.Entity, EE EntityType, EQ EntityQuery[EE], QF QueryFilter] struct { Name string Client *ent.Client ConvertFn func(entEntity *EE) *E ByIDFn func(ctx context.Context, client *ent.Client, id int) (*EE, error) DeleteByIDFn func(ctx context.Context, client *ent.Client, id int) error CreateFn func(ctx context.Context, client *ent.Client, data *E) (*EE, error) UpdateFn func(ctx context.Context, client *ent.Client, data *E) (*EE, error) FindFn func(ctx context.Context, query EQ, filters ...QF) ([]*EE, error) QueryFilterFn func(client *ent.Client, filters ...QF) EQ }
func (*BaseRepository[E, EE, EQ, QF]) All ¶
func (b *BaseRepository[E, EE, EQ, QF]) All(ctx context.Context) ([]*E, error)
func (*BaseRepository[E, EE, EQ, QF]) ByID ¶
func (b *BaseRepository[E, EE, EQ, QF]) ByID(ctx context.Context, id int) (*E, error)
func (*BaseRepository[E, EE, EQ, QF]) Count ¶
func (b *BaseRepository[E, EE, EQ, QF]) Count(ctx context.Context, filters ...QF) (int, error)
func (*BaseRepository[E, EE, EQ, QF]) Create ¶
func (b *BaseRepository[E, EE, EQ, QF]) Create(ctx context.Context, data *E) (*E, error)
func (*BaseRepository[E, EE, EQ, QF]) DeleteByID ¶
func (b *BaseRepository[E, EE, EQ, QF]) DeleteByID(ctx context.Context, id int) error
func (*BaseRepository[E, EE, EQ, QF]) Find ¶
func (b *BaseRepository[E, EE, EQ, QF]) Find(ctx context.Context, filters ...QF) ([]*E, error)
type CommentRepository ¶
type CommentRepository struct { *BaseRepository[e.Comment, ent.Comment, *ent.CommentQuery, *e.CommentFilter] }
func CreateCommentRepository ¶
func CreateCommentRepository(client *ent.Client) *CommentRepository
func (*CommentRepository) FindWithPost ¶
func (c *CommentRepository) FindWithPost(ctx context.Context, filters ...*e.CommentFilter) ([]*e.Comment, error)
func (*CommentRepository) PaginateWithPost ¶
func (c *CommentRepository) PaginateWithPost(ctx context.Context, filters ...*e.CommentFilter) (*e.Paginate[e.Comment], error)
type EntityQuery ¶
type EntityQuery[EE EntityType] interface { *ent.CommentQuery | *ent.FileQuery | *ent.PermissionQuery | *ent.PostQuery | *ent.RoleQuery | *ent.SettingQuery | *ent.TopicQuery | *ent.UserQuery Count(context.Context) (int, error) All(context.Context) ([]*EE, error) }
type EntityType ¶
type FileRepository ¶
type FileRepository = BaseRepository[e.File, ent.File, *ent.FileQuery, *e.FileFilter]
func CreateFileRepository ¶
func CreateFileRepository(client *ent.Client) *FileRepository
type PermissionRepository ¶
type PermissionRepository = BaseRepository[e.Permission, ent.Permission, *ent.PermissionQuery, *e.PermissionFilter]
func CreatePermissionRepository ¶
func CreatePermissionRepository(client *ent.Client) *PermissionRepository
type PostRepository ¶
type PostRepository struct { *BaseRepository[e.Post, ent.Post, *ent.PostQuery, *e.PostFilter] }
func CreatePostRepository ¶
func CreatePostRepository(client *ent.Client) *PostRepository
func (*PostRepository) Approve ¶
func (p *PostRepository) Approve(ctx context.Context, id int) (err error)
func (*PostRepository) IncreaseViewCount ¶
func (*PostRepository) PublishedPostByID ¶
type QueryFilter ¶
type Repository ¶
type RoleRepository ¶
type RoleRepository struct { *BaseRepository[e.Role, ent.Role, *ent.RoleQuery, *e.RoleFilter] }
func CreateRoleRepository ¶
func CreateRoleRepository(client *ent.Client) *RoleRepository
func (*RoleRepository) SetPermissions ¶
func (p *RoleRepository) SetPermissions(ctx context.Context, id int, permissions []*e.PermissionValue) error
type SettingRepository ¶
type SettingRepository struct {
*Repository
}
func (*SettingRepository) All ¶
func (ur *SettingRepository) All(ctx context.Context) []*config.SettingItem
type TopicRepository ¶
type TopicRepository struct { *BaseRepository[e.Topic, ent.Topic, *ent.TopicQuery, *e.TopicFilter] }
func CreateTopicRepository ¶
func CreateTopicRepository(client *ent.Client) *TopicRepository
type UserRepository ¶
type UserRepository struct { *BaseRepository[e.User, ent.User, *ent.UserQuery, *e.UserFilter] }
func CreateUserRepository ¶
func CreateUserRepository(client *ent.Client) *UserRepository
func (*UserRepository) ByProvider ¶
func (*UserRepository) ByUsername ¶
func (*UserRepository) ByUsernameOrEmail ¶
func (*UserRepository) CreateIfNotExistsByProvider ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.