Documentation
¶
Index ¶
- Variables
- func EventTypeNames() []string
- type APIKey
- type Admin
- type Artist
- type Artwork
- type ArtworkWithEvent
- func (a *ArtworkWithEvent) CountArtworks(ctx context.Context, r18 shared.R18Type) (int64, error)
- func (a *ArtworkWithEvent) CreateArtwork(ctx context.Context, artwork *entity.Artwork) (*objectuuid.ObjectUUID, error)
- func (a *ArtworkWithEvent) DeleteArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
- func (a *ArtworkWithEvent) GetArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artwork, error)
- func (a *ArtworkWithEvent) GetArtworkByURL(ctx context.Context, url string) (*entity.Artwork, error)
- func (a *ArtworkWithEvent) GetArtworksByIDs(ctx context.Context, ids []objectuuid.ObjectUUID) ([]*entity.Artwork, error)
- func (a *ArtworkWithEvent) QueryArtworks(ctx context.Context, que query.ArtworksDB) ([]*entity.Artwork, error)
- func (a *ArtworkWithEvent) ReorderArtworkPicturesByID(ctx context.Context, id objectuuid.ObjectUUID) error
- func (a *ArtworkWithEvent) UpdateArtworkByMap(ctx context.Context, id objectuuid.ObjectUUID, patch map[string]any) error
- func (a *ArtworkWithEvent) UpdateArtworkPictures(ctx context.Context, id objectuuid.ObjectUUID, pictures []*entity.Picture) error
- func (a *ArtworkWithEvent) UpdateArtworkTags(ctx context.Context, id objectuuid.ObjectUUID, tags []*entity.Tag) error
- type ArtworkWithRecorder
- func (a *ArtworkWithRecorder) CountArtworks(ctx context.Context, r18 shared.R18Type) (int64, error)
- func (a *ArtworkWithRecorder) CreateArtwork(ctx context.Context, artwork *entity.Artwork) (*objectuuid.ObjectUUID, error)
- func (a *ArtworkWithRecorder) DeleteArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
- func (a *ArtworkWithRecorder) GetArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artwork, error)
- func (a *ArtworkWithRecorder) GetArtworkByURL(ctx context.Context, url string) (*entity.Artwork, error)
- func (a *ArtworkWithRecorder) GetArtworksByIDs(ctx context.Context, ids []objectuuid.ObjectUUID) ([]*entity.Artwork, error)
- func (a *ArtworkWithRecorder) QueryArtworks(ctx context.Context, que query.ArtworksDB) ([]*entity.Artwork, error)
- func (a *ArtworkWithRecorder) ReorderArtworkPicturesByID(ctx context.Context, id objectuuid.ObjectUUID) error
- func (a *ArtworkWithRecorder) UpdateArtworkByMap(ctx context.Context, id objectuuid.ObjectUUID, patch map[string]any) error
- func (a *ArtworkWithRecorder) UpdateArtworkPictures(ctx context.Context, id objectuuid.ObjectUUID, pictures []*entity.Picture) error
- func (a *ArtworkWithRecorder) UpdateArtworkTags(ctx context.Context, id objectuuid.ObjectUUID, tags []*entity.Tag) error
- type CachedArtwork
- type DeletedRecord
- type EventBus
- type EventType
- type Picture
- type Repositories
- type Tag
- type Transactional
- type Ugoira
- type WithArtworkEventImpl
- func (r *WithArtworkEventImpl) APIKey() APIKey
- func (r *WithArtworkEventImpl) Admin() Admin
- func (r *WithArtworkEventImpl) Artist() Artist
- func (r *WithArtworkEventImpl) Artwork() Artwork
- func (r *WithArtworkEventImpl) CachedArtwork() CachedArtwork
- func (r *WithArtworkEventImpl) DeletedRecord() DeletedRecord
- func (r *WithArtworkEventImpl) Picture() Picture
- func (r *WithArtworkEventImpl) Tag() Tag
- func (r *WithArtworkEventImpl) Transaction(ctx context.Context, fn func(repos Repositories) error) error
- func (r *WithArtworkEventImpl) Ugoira() Ugoira
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidEventType = fmt.Errorf("not a valid EventType, try [%s]", strings.Join(_EventTypeNames, ", "))
Functions ¶
func EventTypeNames ¶
func EventTypeNames() []string
EventTypeNames returns a list of possible string values of EventType.
Types ¶
type APIKey ¶
type APIKey interface {
CreateApiKey(ctx context.Context, apikey *entity.ApiKey) (*objectuuid.ObjectUUID, error)
GetApiKeyByKey(ctx context.Context, key string) (*entity.ApiKey, error)
IncreaseApiKeyUsed(ctx context.Context, key string) error
AddApiKeyQuota(ctx context.Context, key string, quota int) error
DeleteApiKey(ctx context.Context, key string) error
}
type Admin ¶
type Admin interface {
GetAdminByTelegramID(ctx context.Context, tgid int64) (*entity.Admin, error)
CreateAdmin(ctx context.Context, admin *entity.Admin) (*objectuuid.ObjectUUID, error)
DeleteAdminByTelegramID(ctx context.Context, tgid int64) error
ListAdmins(ctx context.Context) ([]entity.Admin, error)
UpdateAdminPermissions(ctx context.Context, id objectuuid.ObjectUUID, permissions []shared.Permission) error
}
type Artist ¶
type Artist interface {
GetArtistByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artist, error)
GetArtistByUID(ctx context.Context, uid string, sourceType shared.SourceType) (*entity.Artist, error)
UpdateArtist(ctx context.Context, patch *entity.Artist) error
CreateArtist(ctx context.Context, artist *entity.Artist) (*objectuuid.ObjectUUID, error)
}
type Artwork ¶
type Artwork interface {
GetArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artwork, error)
GetArtworkByURL(ctx context.Context, url string) (*entity.Artwork, error)
CreateArtwork(ctx context.Context, artwork *entity.Artwork) (*objectuuid.ObjectUUID, error)
UpdateArtworkByMap(ctx context.Context, id objectuuid.ObjectUUID, patch map[string]any) error
UpdateArtworkTags(ctx context.Context, id objectuuid.ObjectUUID, tags []*entity.Tag) error
UpdateArtworkPictures(ctx context.Context, id objectuuid.ObjectUUID, pictures []*entity.Picture) error
ReorderArtworkPicturesByID(ctx context.Context, id objectuuid.ObjectUUID) error
DeleteArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
QueryArtworks(ctx context.Context, que query.ArtworksDB) ([]*entity.Artwork, error)
GetArtworksByIDs(ctx context.Context, ids []objectuuid.ObjectUUID) ([]*entity.Artwork, error)
CountArtworks(ctx context.Context, r18 shared.R18Type) (int64, error)
}
type ArtworkWithEvent ¶
type ArtworkWithEvent struct {
// contains filtered or unexported fields
}
func NewArtworkWithEvent ¶
func NewArtworkWithEvent(inner Artwork, eventBus EventBus[*dto.ArtworkEventItem]) *ArtworkWithEvent
func (*ArtworkWithEvent) CountArtworks ¶
CountArtworks implements Artwork.
func (*ArtworkWithEvent) CreateArtwork ¶
func (a *ArtworkWithEvent) CreateArtwork(ctx context.Context, artwork *entity.Artwork) (*objectuuid.ObjectUUID, error)
CreateArtwork implements Artwork.
func (*ArtworkWithEvent) DeleteArtworkByID ¶
func (a *ArtworkWithEvent) DeleteArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
DeleteArtworkByID implements Artwork.
func (*ArtworkWithEvent) GetArtworkByID ¶
func (a *ArtworkWithEvent) GetArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artwork, error)
GetArtworkByID implements Artwork.
func (*ArtworkWithEvent) GetArtworkByURL ¶
func (a *ArtworkWithEvent) GetArtworkByURL(ctx context.Context, url string) (*entity.Artwork, error)
GetArtworkByURL implements Artwork.
func (*ArtworkWithEvent) GetArtworksByIDs ¶
func (a *ArtworkWithEvent) GetArtworksByIDs(ctx context.Context, ids []objectuuid.ObjectUUID) ([]*entity.Artwork, error)
GetArtworksByIDs implements Artwork.
func (*ArtworkWithEvent) QueryArtworks ¶
func (a *ArtworkWithEvent) QueryArtworks(ctx context.Context, que query.ArtworksDB) ([]*entity.Artwork, error)
QueryArtworks implements Artwork.
func (*ArtworkWithEvent) ReorderArtworkPicturesByID ¶
func (a *ArtworkWithEvent) ReorderArtworkPicturesByID(ctx context.Context, id objectuuid.ObjectUUID) error
ReorderArtworkPicturesByID implements Artwork.
func (*ArtworkWithEvent) UpdateArtworkByMap ¶
func (a *ArtworkWithEvent) UpdateArtworkByMap(ctx context.Context, id objectuuid.ObjectUUID, patch map[string]any) error
UpdateArtworkByMap implements Artwork.
func (*ArtworkWithEvent) UpdateArtworkPictures ¶
func (a *ArtworkWithEvent) UpdateArtworkPictures(ctx context.Context, id objectuuid.ObjectUUID, pictures []*entity.Picture) error
UpdateArtworkPictures implements Artwork.
func (*ArtworkWithEvent) UpdateArtworkTags ¶
func (a *ArtworkWithEvent) UpdateArtworkTags(ctx context.Context, id objectuuid.ObjectUUID, tags []*entity.Tag) error
UpdateArtworkTags implements Artwork.
type ArtworkWithRecorder ¶
type ArtworkWithRecorder struct {
// contains filtered or unexported fields
}
using in transaction, record events but not publish immediately
func (*ArtworkWithRecorder) CountArtworks ¶
CountArtworks implements Artwork.
func (*ArtworkWithRecorder) CreateArtwork ¶
func (a *ArtworkWithRecorder) CreateArtwork(ctx context.Context, artwork *entity.Artwork) (*objectuuid.ObjectUUID, error)
func (*ArtworkWithRecorder) DeleteArtworkByID ¶
func (a *ArtworkWithRecorder) DeleteArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
func (*ArtworkWithRecorder) GetArtworkByID ¶
func (a *ArtworkWithRecorder) GetArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Artwork, error)
func (*ArtworkWithRecorder) GetArtworkByURL ¶
func (*ArtworkWithRecorder) GetArtworksByIDs ¶
func (a *ArtworkWithRecorder) GetArtworksByIDs(ctx context.Context, ids []objectuuid.ObjectUUID) ([]*entity.Artwork, error)
func (*ArtworkWithRecorder) QueryArtworks ¶
func (a *ArtworkWithRecorder) QueryArtworks(ctx context.Context, que query.ArtworksDB) ([]*entity.Artwork, error)
func (*ArtworkWithRecorder) ReorderArtworkPicturesByID ¶
func (a *ArtworkWithRecorder) ReorderArtworkPicturesByID(ctx context.Context, id objectuuid.ObjectUUID) error
func (*ArtworkWithRecorder) UpdateArtworkByMap ¶
func (a *ArtworkWithRecorder) UpdateArtworkByMap(ctx context.Context, id objectuuid.ObjectUUID, patch map[string]any) error
func (*ArtworkWithRecorder) UpdateArtworkPictures ¶
func (a *ArtworkWithRecorder) UpdateArtworkPictures(ctx context.Context, id objectuuid.ObjectUUID, pictures []*entity.Picture) error
func (*ArtworkWithRecorder) UpdateArtworkTags ¶
func (a *ArtworkWithRecorder) UpdateArtworkTags(ctx context.Context, id objectuuid.ObjectUUID, tags []*entity.Tag) error
type CachedArtwork ¶
type CachedArtwork interface {
CreateCachedArtwork(ctx context.Context, cachedArt *entity.CachedArtwork) (*entity.CachedArtwork, error)
ResetPostingCachedArtworkStatus(ctx context.Context) error
DeleteCachedArtworkByID(ctx context.Context, id objectuuid.ObjectUUID) error
GetCachedArtworkByURL(ctx context.Context, url string) (*entity.CachedArtwork, error)
SaveCachedArtwork(ctx context.Context, artwork *entity.CachedArtwork) (*entity.CachedArtwork, error)
}
type DeletedRecord ¶
type DeletedRecord interface {
CheckDeletedByURL(ctx context.Context, url string) bool
CreateDeletedRecord(ctx context.Context, record *entity.DeletedRecord) error
// 删除不存在的记录不应返回错误.
DeleteDeletedByURL(ctx context.Context, url string) error
GetDeletedByURL(ctx context.Context, url string) (*entity.DeletedRecord, error)
}
type EventType ¶
type EventType string // topic of the event
EventType
ENUM( artwork_create artwork_update artwork_delete )
const ( // EventTypeArtworkCreate is a EventType of type artwork_create. EventTypeArtworkCreate EventType = "artwork_create" // EventTypeArtworkUpdate is a EventType of type artwork_update. EventTypeArtworkUpdate EventType = "artwork_update" // EventTypeArtworkDelete is a EventType of type artwork_delete. EventTypeArtworkDelete EventType = "artwork_delete" )
func EventTypeValues ¶
func EventTypeValues() []EventType
EventTypeValues returns a list of the values for EventType
func ParseEventType ¶
ParseEventType attempts to convert a string to a EventType.
type Picture ¶
type Picture interface {
GetPictureByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Picture, error)
DeletePictureByID(ctx context.Context, id objectuuid.ObjectUUID) error
UpdatePictureTelegramInfoByID(ctx context.Context, id objectuuid.ObjectUUID, tgInfo *shared.TelegramInfo) (*entity.Picture, error)
QueryPicturesByPhash(ctx context.Context, que query.PicturesPhash) ([]*entity.Picture, error)
RandomPictures(ctx context.Context, limit int) ([]*entity.Picture, error)
SavePicture(ctx context.Context, pic *entity.Picture) error
}
type Repositories ¶
type Repositories interface {
Admin() Admin
APIKey() APIKey
Artist() Artist
Artwork() Artwork
Tag() Tag
Picture() Picture
Ugoira() Ugoira
DeletedRecord() DeletedRecord
CachedArtwork() CachedArtwork
Transactional
}
type Tag ¶
type Tag interface {
GetTagByName(ctx context.Context, name string) (*entity.Tag, error)
GetTagByNameWithAlias(ctx context.Context, name string) (*entity.Tag, error)
GetAliasTagByName(ctx context.Context, name string) (*entity.TagAlias, error)
GetTagByID(ctx context.Context, id objectuuid.ObjectUUID) (*entity.Tag, error)
CreateTag(ctx context.Context, tag *entity.Tag) (*entity.Tag, error)
RandomTags(ctx context.Context, limit int) ([]*entity.Tag, error)
// MigrateTagAlias 将 aliasTagID 迁移到 targetTagID,并返回受影响的 artwork ID 列表
MigrateTagAlias(ctx context.Context, aliasTagID, targetTagID objectuuid.ObjectUUID) ([]objectuuid.ObjectUUID, error)
UpdateTagAlias(ctx context.Context, id objectuuid.ObjectUUID, alias []*entity.TagAlias) error
}
type Transactional ¶
type Transactional interface {
Transaction(ctx context.Context, fn func(repos Repositories) error) error
}
type Ugoira ¶
type Ugoira interface {
UpdateUgoiraTelegramInfoByID(ctx context.Context, id objectuuid.ObjectUUID, tgInfo *shared.TelegramInfo) (*entity.UgoiraMeta, error)
}
type WithArtworkEventImpl ¶
type WithArtworkEventImpl struct {
Tx Transactional
AdminRepo Admin
ApiKeyRepo APIKey
ArtistRepo Artist
ArtworkRepo Artwork
TagRepo Tag
PictureRepo Picture
UgoiraRepo Ugoira
DeletedRepo DeletedRecord
CachedRepo CachedArtwork
ArtworkBus EventBus[*dto.ArtworkEventItem]
}
func NewWithArtworkEventImpl ¶
func NewWithArtworkEventImpl(tx Transactional, admin Admin, apiKey APIKey, artist Artist, artwork Artwork, tag Tag, picture Picture, ugoira Ugoira, deleted DeletedRecord, cached CachedArtwork, bus EventBus[*dto.ArtworkEventItem]) *WithArtworkEventImpl
func (*WithArtworkEventImpl) APIKey ¶
func (r *WithArtworkEventImpl) APIKey() APIKey
APIKey implements Repositories.
func (*WithArtworkEventImpl) Admin ¶
func (r *WithArtworkEventImpl) Admin() Admin
Admin implements Repositories.
func (*WithArtworkEventImpl) Artist ¶
func (r *WithArtworkEventImpl) Artist() Artist
Artist implements Repositories.
func (*WithArtworkEventImpl) Artwork ¶
func (r *WithArtworkEventImpl) Artwork() Artwork
Artwork implements Repositories.
func (*WithArtworkEventImpl) CachedArtwork ¶
func (r *WithArtworkEventImpl) CachedArtwork() CachedArtwork
CachedArtwork implements Repositories.
func (*WithArtworkEventImpl) DeletedRecord ¶
func (r *WithArtworkEventImpl) DeletedRecord() DeletedRecord
DeletedRecord implements Repositories.
func (*WithArtworkEventImpl) Picture ¶
func (r *WithArtworkEventImpl) Picture() Picture
Picture implements Repositories.
func (*WithArtworkEventImpl) Tag ¶
func (r *WithArtworkEventImpl) Tag() Tag
Tag implements Repositories.
func (*WithArtworkEventImpl) Transaction ¶
func (r *WithArtworkEventImpl) Transaction(ctx context.Context, fn func(repos Repositories) error) error
func (*WithArtworkEventImpl) Ugoira ¶
func (r *WithArtworkEventImpl) Ugoira() Ugoira