service

package
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminService

type AdminService interface {
	Authenticate(ctx context.Context, loginParam param.LoginParam) (*entity.User, error)
	Auth(ctx context.Context, loginParam param.LoginParam) (*dto.AuthTokenDTO, error)
	ClearToken(ctx context.Context) error
	SendResetPasswordCode(ctx context.Context, resetParam param.ResetPasswordParam) error
	RefreshToken(ctx context.Context, refreshToken string) (*dto.AuthTokenDTO, error)
	GetEnvironments(ctx context.Context) *dto.EnvironmentDTO
	GetLogFiles(ctx context.Context, lines int64) (string, error)
}

type AttachmentService

type AttachmentService interface {
	Page(ctx context.Context, queryParam *param.AttachmentQuery) ([]*entity.Attachment, int64, error)
	GetAttachment(ctx context.Context, attachmentID int32) (*entity.Attachment, error)
	Upload(ctx context.Context, fileHeader *multipart.FileHeader) (*dto.AttachmentDTO, error)
	Delete(ctx context.Context, attachmentID int32) (*entity.Attachment, error)
	DeleteBatch(ctx context.Context, ids []int32) ([]*entity.Attachment, error)
	Update(ctx context.Context, id int32, updateParam *param.AttachmentUpdate) (*entity.Attachment, error)
	GetAllMediaTypes(ctx context.Context) ([]string, error)
	GetAllTypes(ctx context.Context) ([]consts.AttachmentType, error)
	ConvertToDTO(ctx context.Context, attachment *entity.Attachment) (*dto.AttachmentDTO, error)
	ConvertToDTOs(ctx context.Context, attachments []*entity.Attachment) ([]*dto.AttachmentDTO, error)
}

type AuthenticateService

type AuthenticateService interface {
	PostAuthenticate(ctx context.Context, post *entity.Post, password string) (bool, error)
	CategoryAuthenticate(ctx context.Context, categoryID int32, password string) (bool, error)
}

type BackupService

type BackupService interface {
	// GetBackup  Get backup data by backup file name.
	GetBackup(ctx context.Context, filename string, backupType BackupType) (*dto.BackupDTO, error)
	// BackupWholeSite Zips work directory
	BackupWholeSite(ctx context.Context, toBackupItems []string) (*dto.BackupDTO, error)
	// ListFiles list all files under path
	ListFiles(ctx context.Context, path string, backupType BackupType) ([]*dto.BackupDTO, error)
	// GetBackupFilePath get filepath and check if the file exist
	GetBackupFilePath(ctx context.Context, path string, filename string) (string, error)
	// DeleteFile delete file
	DeleteFile(ctx context.Context, path string, filename string) error
	// ExportData export database data to json file
	ExportData(ctx context.Context) (*dto.BackupDTO, error)
	// ImportMarkdown import markdown file as post
	ImportMarkdown(ctx context.Context, fileHeader *multipart.FileHeader) error
	// ExportMarkdown export posts to markdown files
	ExportMarkdown(ctx context.Context, needFrontMatter bool) (*dto.BackupDTO, error)
	ListToBackupItems(ctx context.Context) ([]string, error)
}

type BackupType

type BackupType string
const (
	WholeSite BackupType = "/api/admin/backups/work-dir"
	JSONData  BackupType = "/api/admin/backups/data"
	Markdown  BackupType = "/api/admin/backups/markdown/export"
)

type BaseCommentService

type BaseCommentService interface {
	CreateBy(ctx context.Context, commentParam *param.Comment) (*entity.Comment, error)
	Page(ctx context.Context, commentQuery param.CommentQuery, commentType consts.CommentType) ([]*entity.Comment, int64, error)
	GetByID(ctx context.Context, commentID int32) (*entity.Comment, error)
	LGetByIDs(ctx context.Context, commentIDs []int32) ([]*entity.Comment, error)
	GetByContentID(ctx context.Context, contentID int32, contentType consts.CommentType, sort *param.Sort) ([]*entity.Comment, error)
	Create(ctx context.Context, comment *entity.Comment) (*entity.Comment, error)
	UpdateStatus(ctx context.Context, commentID int32, commentStatus consts.CommentStatus) (*entity.Comment, error)
	UpdateStatusBatch(ctx context.Context, commentIDs []int32, commentStatus consts.CommentStatus) ([]*entity.Comment, error)
	Delete(ctx context.Context, commentID int32) error
	DeleteBatch(ctx context.Context, commentIDs []int32) error
	Update(ctx context.Context, comment *entity.Comment) (*entity.Comment, error)
	BuildAvatarURL(ctx context.Context, gravatarMD5 string, gravatarSource, gravatarDefault *string) (string, error)
	ConvertParam(commentParam *param.Comment) *entity.Comment
	CountByContentID(ctx context.Context, contentID int32, commentType consts.CommentType, status consts.CommentStatus) (int64, error)
	CountByStatusAndContentIDs(ctx context.Context, status consts.CommentStatus, contentIDs []int32) (map[int32]int64, error)
	CountChildren(ctx context.Context, parentCommentIDs []int32) (map[int32]int64, error)
	GetChildren(ctx context.Context, parentCommentID int32, contentID int32, commentType consts.CommentType) ([]*entity.Comment, error)
	IncreaseLike(ctx context.Context, commentID int32) error
}

type BaseMFAService

type BaseMFAService interface {
	UseMFA(mfaType consts.MFAType) bool
	GenerateMFAQRCode(ctx context.Context, content string) (string, error)
}

type BasePostService

type BasePostService interface {
	GetByStatus(ctx context.Context, status []consts.PostStatus, postType consts.PostType, sort *param.Sort) ([]*entity.Post, error)
	GetByPostID(ctx context.Context, postID int32) (*entity.Post, error)
	GetByPostIDs(ctx context.Context, postIDs []int32) (map[int32]*entity.Post, error)
	GetBySlug(ctx context.Context, slug string) (*entity.Post, error)
	GenerateSummary(ctx context.Context, htmlContent string) string
	BuildFullPath(ctx context.Context, post *entity.Post) (string, error)
	Delete(ctx context.Context, postID int32) error
	DeleteBatch(ctx context.Context, postIDs []int32) error
	UpdateDraftContent(ctx context.Context, postID int32, content, originalContent string) (*entity.Post, error)
	UpdateStatus(ctx context.Context, postID int32, status consts.PostStatus) (*entity.Post, error)
	UpdateStatusBatch(ctx context.Context, status consts.PostStatus, postIDs []int32) ([]*entity.Post, error)
	CreateOrUpdate(ctx context.Context, post *entity.Post, categoryIDs, tagIDs []int32, metas []param.Meta) (*entity.Post, error)
	IncreaseVisit(ctx context.Context, postID int32)
}

type CategoryService

type CategoryService interface {
	GetByID(ctx context.Context, id int32) (*entity.Category, error)
	GetBySlug(ctx context.Context, slug string) (*entity.Category, error)
	GetByName(ctx context.Context, name string) (*entity.Category, error)
	ListCategoryWithPostCountDTO(ctx context.Context, sort *param.Sort) ([]*dto.CategoryWithPostCount, error)
	ListAll(ctx context.Context, sort *param.Sort) ([]*entity.Category, error)
	ConvertToCategoryDTO(ctx context.Context, e *entity.Category) (*dto.CategoryDTO, error)
	ConvertToCategoryDTOs(ctx context.Context, categories []*entity.Category) ([]*dto.CategoryDTO, error)
	ListAsTree(ctx context.Context, sort *param.Sort, fillPassword bool) ([]*vo.CategoryVO, error)
	Create(ctx context.Context, categoryParam *param.Category) (*entity.Category, error)
	Update(ctx context.Context, categoryParam *param.Category) (*entity.Category, error)
	UpdateBatch(ctx context.Context, categoryParams []*param.Category) ([]*entity.Category, error)
	Delete(ctx context.Context, categoryID int32) error
	ListByIDs(ctx context.Context, categoryIDs []int32) ([]*entity.Category, error)
	IsCategoriesEncrypt(ctx context.Context, categoryIDs ...int32) (bool, error)
	Count(ctx context.Context) (int64, error)
	GetChildCategory(ctx context.Context, parentCategoryID int32) ([]*entity.Category, error)
}

type ClientOptionService

type ClientOptionService interface {
	OptionService
}

type EmailService

type EmailService interface {
	SendTextEmail(ctx context.Context, to, subject, content string) error
	SendTemplateEmail(ctx context.Context, to, subject string, content string) error
	TestConnection() error
}

type ExportImport added in v1.0.5

type ExportImport interface {
	CreateByMarkdown(ctx context.Context, filename string, reader io.Reader) (*entity.Post, error)
	ExportMarkdown(ctx context.Context, needFrontMatter bool) (string, error)
}

type InstallService

type InstallService interface {
	InstallBlog(ctx context.Context, installParam param.Install) error
}

type JournalCommentService

type JournalCommentService interface {
	BaseCommentService
	CountByStatusAndJournalID(ctx context.Context, status consts.CommentStatus, journalIDs []int32) (map[int32]int64, error)
	UpdateBy(ctx context.Context, commentID int32, commentParam *param.Comment) (*entity.Comment, error)
	CountByStatus(ctx context.Context, status consts.CommentStatus) (int64, error)
}

type JournalService

type JournalService interface {
	Page(ctx context.Context, page param.Page, sort *param.Sort) ([]*entity.Journal, int64, error)
	ListJournal(ctx context.Context, journalQuery param.JournalQuery) ([]*entity.Journal, int64, error)
	ConvertToDTO(journal *entity.Journal) *dto.Journal
	ConvertToWithCommentDTOList(ctx context.Context, journals []*entity.Journal) ([]*dto.JournalWithComment, error)
	Create(ctx context.Context, journalParam *param.Journal) (*entity.Journal, error)
	Update(ctx context.Context, journalID int32, journalParam *param.Journal) (*entity.Journal, error)
	Delete(ctx context.Context, journalID int32) error
	GetByJournalIDs(ctx context.Context, journalIDs []int32) (map[int32]*entity.Journal, error)
	Count(ctx context.Context) (int64, error)
	IncreaseLike(ctx context.Context, journalID int32) error
}

type LinkService

type LinkService interface {
	List(ctx context.Context, sort *param.Sort) ([]*entity.Link, error)
	GetByID(ctx context.Context, id int32) (*entity.Link, error)
	Create(ctx context.Context, linkParam *param.Link) (*entity.Link, error)
	Update(ctx context.Context, id int32, linkParam *param.Link) (*entity.Link, error)
	Delete(ctx context.Context, id int32) error
	ConvertToDTO(ctx context.Context, link *entity.Link) *dto.Link
	ConvertToDTOs(ctx context.Context, links []*entity.Link) []*dto.Link
	ConvertToLinkTeamVO(ctx context.Context, links []*entity.Link) []*vo.LinkTeamVO
	ListTeams(ctx context.Context) ([]string, error)
	Count(ctx context.Context) (int64, error)
}

type LogService

type LogService interface {
	PageLog(ctx context.Context, page param.Page, sort *param.Sort) ([]*entity.Log, int64, error)
	ConvertToDTO(log *entity.Log) *dto.Log
	Clear(ctx context.Context) error
}
type MenuService interface {
	List(ctx context.Context, sort *param.Sort) ([]*entity.Menu, error)
	ListByTeam(ctx context.Context, team string, sort *param.Sort) ([]*entity.Menu, error)
	ListAsTree(ctx context.Context, sort *param.Sort) ([]*vo.Menu, error)
	ListAsTreeByTeam(ctx context.Context, team string, sort *param.Sort) ([]*vo.Menu, error)
	GetByID(ctx context.Context, id int32) (*entity.Menu, error)
	Create(ctx context.Context, menuParam *param.Menu) (*entity.Menu, error)
	CreateBatch(ctx context.Context, menuParams []*param.Menu) ([]*entity.Menu, error)
	Update(ctx context.Context, id int32, menuParam *param.Menu) (*entity.Menu, error)
	UpdateBatch(ctx context.Context, menuParams []*param.Menu) ([]*entity.Menu, error)
	Delete(ctx context.Context, id int32) error
	DeleteBatch(ctx context.Context, ids []int32) error
	ConvertToDTO(ctx context.Context, menu *entity.Menu) *dto.Menu
	ConvertToDTOs(ctx context.Context, menus []*entity.Menu) []*dto.Menu
	ListTeams(ctx context.Context) ([]string, error)
	GetMenuCount(ctx context.Context) (int64, error)
}

type MetaService

type MetaService interface {
	GetPostsMeta(ctx context.Context, postIDs []int32) (map[int32][]*entity.Meta, error)
	GetPostMeta(ctx context.Context, postID int32) ([]*entity.Meta, error)
	ConvertToMetaDTO(meta *entity.Meta) *dto.Meta
	ConvertToMetaDTOs(metas []*entity.Meta) []*dto.Meta
}

type OneTimeTokenService

type OneTimeTokenService interface {
	Get(oneTimeToken string) (string, bool)
	Create(value string) string
}

type OptionService

type OptionService interface {
	GetOrByDefaultWithErr(ctx context.Context, p property.Property, defaultValue interface{}) (interface{}, error)
	GetOrByDefault(ctx context.Context, p property.Property) interface{}
	GetBlogBaseURL(ctx context.Context) (string, error)
	IsEnabledAbsolutePath(ctx context.Context) (bool, error)
	GetPathSuffix(ctx context.Context) (string, error)
	GetArchivePrefix(ctx context.Context) (string, error)
	Save(ctx context.Context, optionMap map[string]string) error
	ListAllOption(ctx context.Context) ([]*dto.Option, error)
	GetLinksPrefix(ctx context.Context) (string, error)
	GetPhotoPrefix(ctx context.Context) (string, error)
	GetJournalPrefix(ctx context.Context) (string, error)
	GetActivatedThemeID(ctx context.Context) (string, error)
	GetPostPermalinkType(ctx context.Context) (consts.PostPermalinkType, error)
	GetSheetPermalinkType(ctx context.Context) (consts.SheetPermaLinkType, error)
	GetIndexPageSize(ctx context.Context) int
	GetPostSort(ctx context.Context) param.Sort
	GetPostSummaryLength(ctx context.Context) int
	GetCategoryPrefix(ctx context.Context) (string, error)
	GetTagPrefix(ctx context.Context) (string, error)
	GetLinkPrefix(ctx context.Context) (string, error)
	GetSheetPrefix(ctx context.Context) (string, error)
	GetAttachmentType(ctx context.Context) consts.AttachmentType
	GetAdminURLPath(ctx context.Context) (string, error)
}

type PhotoService

type PhotoService interface {
	List(ctx context.Context, sort *param.Sort) ([]*entity.Photo, error)
	Page(ctx context.Context, page param.Page, sort *param.Sort) ([]*entity.Photo, int64, error)
	GetByID(ctx context.Context, id int32) (*entity.Photo, error)
	Create(ctx context.Context, photoParam *param.Photo) (*entity.Photo, error)
	CreateBatch(ctx context.Context, photosParam []*param.Photo) ([]*entity.Photo, error)
	Update(ctx context.Context, id int32, photoParam *param.Photo) (*entity.Photo, error)
	Delete(ctx context.Context, id int32) error
	ConvertToDTO(ctx context.Context, photo *entity.Photo) *dto.Photo
	ConvertToDTOs(ctx context.Context, photos []*entity.Photo) []*dto.Photo
	ListTeams(ctx context.Context) ([]string, error)
	ListByTeam(ctx context.Context, team string, sort *param.Sort) ([]*entity.Photo, error)
	IncreaseLike(ctx context.Context, id int32) error
	GetPhotoCount(ctx context.Context) (int64, error)
}

type PostCategoryService

type PostCategoryService interface {
	ListByCategoryID(ctx context.Context, categoryID int32, status consts.PostStatus) ([]*entity.Post, error)
	ListByPostIDs(ctx context.Context, postIDs []int32) ([]*entity.PostCategory, error)
	ListCategoryMapByPostID(ctx context.Context, postIDs []int32) (map[int32][]*entity.Category, error)
	ListCategoryByPostID(ctx context.Context, postID int32) ([]*entity.Category, error)
}

type PostCommentService

type PostCommentService interface {
	BaseCommentService
	CreateBy(ctx context.Context, commentParam *param.Comment) (*entity.Comment, error)
	CountByStatus(ctx context.Context, status consts.CommentStatus) (int64, error)
	UpdateBy(ctx context.Context, commentID int32, commentParam *param.Comment) (*entity.Comment, error)
}

type PostService

type PostService interface {
	BasePostService
	Page(ctx context.Context, postQuery param.PostQuery) ([]*entity.Post, int64, error)
	IncreaseLike(ctx context.Context, postID int32) error
	GetPrevPosts(ctx context.Context, post *entity.Post, size int) ([]*entity.Post, error)
	GetNextPosts(ctx context.Context, post *entity.Post, size int) ([]*entity.Post, error)
	Create(ctx context.Context, postParam *param.Post) (*entity.Post, error)
	Update(ctx context.Context, postID int32, postParam *param.Post) (*entity.Post, error)
	CountByStatus(ctx context.Context, status consts.PostStatus) (int64, error)
	CountVisit(ctx context.Context) (int64, error)
	Preview(ctx context.Context, postID int32) (string, error)
	CountLike(ctx context.Context) (int64, error)
}

type PostTagService

type PostTagService interface {
	PagePost(ctx context.Context, postQuery param.PostQuery) ([]*entity.Post, int64, error)
	ListTagMapByPostID(ctx context.Context, postIDs []int32) (map[int32][]*entity.Tag, error)
	ListTagByPostID(ctx context.Context, postID int32) ([]*entity.Tag, error)
	ListAllTagWithPostCount(ctx context.Context, sort *param.Sort) ([]*dto.TagWithPostCount, error)
	ListPostByTagID(ctx context.Context, tagID int32, status consts.PostStatus) ([]*entity.Post, error)
}

type SheetCommentService

type SheetCommentService interface {
	BaseCommentService
	CountByStatus(ctx context.Context, status consts.CommentStatus) (int64, error)
}

type SheetService

type SheetService interface {
	BasePostService
	Page(ctx context.Context, page param.Page, sort *param.Sort) ([]*entity.Post, int64, error)
	Create(ctx context.Context, sheetParam *param.Sheet) (*entity.Post, error)
	Update(ctx context.Context, sheetID int32, sheetParam *param.Sheet) (*entity.Post, error)
	Preview(ctx context.Context, sheetID int32) (string, error)
	CountVisit(ctx context.Context) (int64, error)
	CountLike(ctx context.Context) (int64, error)
	ListIndependentSheets(ctx context.Context) ([]*dto.IndependentSheet, error)
}

type StatisticService

type StatisticService interface {
	Statistic(ctx context.Context) (*dto.Statistic, error)
	StatisticWithUser(ctx context.Context) (*dto.StatisticWithUser, error)
}

type TagService

type TagService interface {
	ListAll(ctx context.Context, sort *param.Sort) ([]*entity.Tag, error)
	ListByIDs(ctx context.Context, tagIDs []int32) ([]*entity.Tag, error)
	GetByID(ctx context.Context, id int32) (*entity.Tag, error)
	GetBySlug(ctx context.Context, slug string) (*entity.Tag, error)
	GetByName(ctx context.Context, name string) (*entity.Tag, error)
	ConvertToDTO(ctx context.Context, tag *entity.Tag) (*dto.Tag, error)
	ConvertToDTOs(ctx context.Context, tags []*entity.Tag) ([]*dto.Tag, error)
	Create(ctx context.Context, tagParam *param.Tag) (*entity.Tag, error)
	Update(ctx context.Context, id int32, tagParam *param.Tag) (*entity.Tag, error)
	Delete(ctx context.Context, id int32) error
	CountAllTag(ctx context.Context) (int64, error)
}

type ThemeService

type ThemeService interface {
	GetThemeByID(ctx context.Context, themeID string) (*dto.ThemeProperty, error)
	GetActivateTheme(ctx context.Context) (*dto.ThemeProperty, error)
	ListAllTheme(ctx context.Context) ([]*dto.ThemeProperty, error)
	ListThemeFiles(ctx context.Context, themeID string) ([]*dto.ThemeFile, error)
	GetThemeFileContent(ctx context.Context, themeID, absPath string) (string, error)
	UpdateThemeFile(ctx context.Context, themeID, absPath, content string) error
	ListCustomTemplates(ctx context.Context, themeID, prefix string) ([]string, error)
	ActivateTheme(ctx context.Context, themeID string) (*dto.ThemeProperty, error)
	GetThemeConfig(ctx context.Context, themeID string) ([]*dto.ThemeConfigGroup, error)
	GetThemeSettingMap(ctx context.Context, themeID string) (map[string]interface{}, error)
	GetThemeGroupSettingMap(ctx context.Context, themeID, group string) (map[string]interface{}, error)
	SaveThemeSettings(ctx context.Context, themeID string, settings map[string]interface{}) error
	DeleteThemeSettings(ctx context.Context, themeID string) error
	DeleteTheme(ctx context.Context, themeID string, deleteSettings bool) error
	UploadTheme(ctx context.Context, file *multipart.FileHeader) (*dto.ThemeProperty, error)
	UpdateThemeByUpload(ctx context.Context, themeID string, file *multipart.FileHeader) (*dto.ThemeProperty, error)
	ReloadTheme(ctx context.Context) error
	TemplateExist(ctx context.Context, template string) (bool, error)
	Render(ctx context.Context, name string) (string, error)
	Fetch(ctx context.Context, themeURL string) (*dto.ThemeProperty, error)
}

type TwoFactorTOTPMFAService

type TwoFactorTOTPMFAService interface {
	BaseMFAService
	GenerateTFACode(tfaKey string) (string, error)
	ValidateTFACode(tfaKey, tfaCode string) bool
	GenerateOTPKey(ctx context.Context, keyID string) (key, optURL string, err error)
}

type UserService

type UserService interface {
	GetAllUser(ctx context.Context) ([]*entity.User, error)
	GetByEmail(ctx context.Context, email string) (*entity.User, error)
	ConvertToDTO(ctx context.Context, user *entity.User) *dto.User
	GetByUsername(ctx context.Context, username string) (*entity.User, error)
	MustNotExpire(ctx context.Context, expireTime *time.Time) error
	PasswordMatch(ctx context.Context, hashedPassword, plainPassword string) bool
	GetByID(ctx context.Context, id int32) (*entity.User, error)
	CreateByParam(ctx context.Context, userParam param.User) (*entity.User, error)
	Update(ctx context.Context, userParam *param.User) (*entity.User, error)
	UpdatePassword(ctx context.Context, oldPassword string, newPassword string) error
	UpdateMFA(ctx context.Context, mfaKey string, mfaType consts.MFAType, mfaCode string) error
	EncryptPassword(ctx context.Context, plainPassword string) string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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