service

package
v0.20.1 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthCallback added in v0.18.0

type AuthCallback struct {
	Code string `json:"code" validate:"required"`
}

AuthCallback is auth callback data.

type GetAgenciesRequest added in v0.14.0

type GetAgenciesRequest struct {
	Sort  string `validate:"oneof=name -name member -member subscriber -subscriber" mod:"default=name,trim,lcase"`
	Page  int    `validate:"required,gte=1" mod:"default=1"`
	Limit int    `validate:"required,gte=-1" mod:"default=20"`
}

GetAgenciesRequest is get agencies request model.

type GetTierListsRequest added in v0.18.0

type GetTierListsRequest struct {
	Query  string `validate:"omitempty,gte=3" mod:"trim,lcase"`
	UserID int64  `validate:"omitempty,gt=0"`
	Sort   string `validate:"oneof=title -title updated_at -updated_at" mod:"default=-updated_at,trim,lcase"`
	Page   int    `validate:"required,gte=1" mod:"default=1"`
	Limit  int    `validate:"required,gte=-1" mod:"default=20"`
}

GetTierListsRequest is get tier lists request model.

type GetVtuberBloodTypeCountRequest added in v0.14.0

type GetVtuberBloodTypeCountRequest struct {
	Top int `validate:"required,gte=-1" mod:"default=5"`
}

GetVtuberBloodTypeCountRequest is get vtuber blood type count request.

type GetVtuberDesignerCountRequest added in v0.14.0

type GetVtuberDesignerCountRequest struct {
	Top int `validate:"required,gte=-1" mod:"default=10"`
}

GetVtuberDesignerCountRequest is get vtuber designer count request.

type GetVtuberSubscriberCountRequest added in v0.14.0

type GetVtuberSubscriberCountRequest struct {
	Interval int `validate:"required,gte=10000" mod:"default=100000"`
	Max      int `validate:"required,lte=5000000" mod:"default=5000000"`
}

GetVtuberSubscriberCountRequest is get vtuber subscriber count request.

type GetVtuberVideoCountRequest added in v0.14.0

type GetVtuberVideoCountRequest struct {
	Top int `validate:"required,gte=-1" mod:"default=10"`
}

GetVtuberVideoCountRequest is get vtuber video count request.

type GetVtuberVideoDurationRequest added in v0.14.0

type GetVtuberVideoDurationRequest struct {
	Top int `validate:"required,gte=-1" mod:"default=10"`
}

GetVtuberVideoDurationRequest is get vtuber video duration request.

type GetVtubersRequest added in v0.5.0

type GetVtubersRequest struct {
	Mode               entity.SearchMode    `validate:"oneof=all simple" mod:"default=all,trim,lcase"`
	Names              string               `validate:"omitempty,gte=3" mod:"trim,lcase"`
	Name               string               `validate:"omitempty,gte=3" mod:"trim,lcase"`
	OriginalName       string               `validate:"omitempty,gte=3" mod:"trim,lcase"`
	Nickname           string               `validate:"omitempty,gte=3" mod:"trim,lcase"`
	ExcludeActive      bool                 ``
	ExcludeRetired     bool                 ``
	StartDebutMonth    int                  `validate:"omitempty,gte=1"`
	EndDebutMonth      int                  `validate:"omitempty,gte=1"`
	StartDebutYear     int                  `validate:"omitempty,gte=1"`
	EndDebutYear       int                  `validate:"omitempty,gte=1"`
	StartRetiredMonth  int                  `validate:"omitempty,gte=1"`
	EndRetiredMonth    int                  `validate:"omitempty,gte=1"`
	StartRetiredYear   int                  `validate:"omitempty,gte=1"`
	EndRetiredYear     int                  `validate:"omitempty,gte=1"`
	Has2D              *bool                ``
	Has3D              *bool                ``
	CharacterDesigner  string               `mod:"trim"`
	Character2DModeler string               `mod:"trim"`
	Character3DModeler string               `mod:"trim"`
	InAgency           *bool                ``
	Agency             string               `mod:"trim"`
	AgencyID           int64                `validate:"omitempty,gte=1"`
	ChannelTypes       []entity.ChannelType `validate:"dive,gte=1" mod:"dive,trim"`
	BirthdayDay        int                  `validate:"omitempty,gte=1"`
	StartBirthdayMonth int                  `validate:"omitempty,gte=1"`
	EndBirthdayMonth   int                  `validate:"omitempty,gte=1"`
	BloodTypes         []string             `validate:"dive,gte=1" mod:"dive,trim"`
	Genders            []string             `validate:"dive,gte=1" mod:"dive,trim"`
	Zodiacs            []string             `validate:"dive,gte=1" mod:"dive,trim"`
	StartSubscriber    int                  `validate:"omitempty,gte=1"`
	EndSubscriber      int                  `validate:"omitempty,gte=1"`
	StartVideoCount    int                  `validate:"omitempty,gte=1"`
	EndVideoCount      int                  `validate:"omitempty,gte=1"`
	Sort               string               `` /* 161-byte string literal not displayed */
	Page               int                  `validate:"required,gte=1" mod:"default=1"`
	Limit              int                  `validate:"required,gte=-1" mod:"default=20"`
}

GetVtubersRequest is get vtubers request model.

type JWTClaim added in v0.18.0

type JWTClaim struct {
	UserID      int64  `json:"user_id"`
	Username    string `json:"username"`
	IsAdmin     bool   `json:"is_admin"`
	AccessUUID  string `json:"-"`
	RefreshUUID string `json:"-"`
}

JWTClaim is jwt claim.

type Service

type Service interface {
	HandleAuthCallback(ctx context.Context, data AuthCallback) (*Token, int, error)
	ValidateToken(ctx context.Context, uuid string, userID int64) (int, error)
	InvalidateToken(ctx context.Context, uuid string) (int, error)
	RefreshToken(ctx context.Context, data JWTClaim) (string, int, error)

	GetProfile(ctx context.Context, userID int64) (*User, int, error)

	GetTierLists(ctx context.Context, params GetTierListsRequest) ([]TierList, *pagination, int, error)
	GetTierListByID(ctx context.Context, id string) (*TierList, int, error)
	UpsertTierListByID(ctx context.Context, data TierList) (*TierList, int, error)
	DeleteTierListByID(ctx context.Context, id string, userID int64) (int, error)

	GetVtubers(ctx context.Context, params GetVtubersRequest) ([]vtuber, *pagination, int, error)
	GetVtuberByID(ctx context.Context, id int64) (*vtuber, int, error)
	GetVtuberImages(ctx context.Context, shuffle bool, limit int) ([]vtuberImage, int, error)
	GetVtuberFamilyTrees(ctx context.Context) (*vtuberFamilyTree, int, error)
	GetVtuberAgencyTrees(ctx context.Context) (*vtuberAgencyTree, int, error)
	GetVtuberCharacterDesigners(ctx context.Context) ([]string, int, error)
	GetVtuberCharacter2DModelers(ctx context.Context) ([]string, int, error)
	GetVtuberCharacter3DModelers(ctx context.Context) ([]string, int, error)
	GetVtuberCount(ctx context.Context) (int, int, error)
	GetVtuberAverageActiveTime(ctx context.Context) (float64, int, error)
	GetVtuberStatusCount(ctx context.Context) (*vtuberStatusCount, int, error)
	GetVtuberDebutRetireCountMonthly(ctx context.Context) ([]vtuberDebutRetireCount, int, error)
	GetVtuberDebutRetireCountYearly(ctx context.Context) ([]vtuberDebutRetireCount, int, error)
	GetVtuberModelCount(ctx context.Context) (*vtuberModelCount, int, error)
	GetVtuberInAgencyCount(ctx context.Context) (*vtuberInAgencyCount, int, error)
	GetVtuberSubscriberCount(ctx context.Context, params GetVtuberSubscriberCountRequest) ([]vtuberSubscriberCount, int, error)
	GetVtuberDesignerCount(ctx context.Context, params GetVtuberDesignerCountRequest) ([]vtuberDesignerCount, int, error)
	GetVtuber2DModelerCount(ctx context.Context, params GetVtuberDesignerCountRequest) ([]vtuberDesignerCount, int, error)
	GetVtuber3DModelerCount(ctx context.Context, params GetVtuberDesignerCountRequest) ([]vtuberDesignerCount, int, error)
	GetVtuberAverageVideoCount(ctx context.Context) (float64, int, error)
	GetVtuberAverageVideoDuration(ctx context.Context) (float64, int, error)
	GetVtuberVideoCountByDate(ctx context.Context, hourly, daily bool) ([]vtuberVideoCountByDate, int, error)
	GetVtuberVideoCount(ctx context.Context, params GetVtuberVideoCountRequest) ([]vtuberVideoCount, int, error)
	GetVtuberVideoDuration(ctx context.Context, params GetVtuberVideoDurationRequest) ([]vtuberVideoDuration, int, error)
	GetVtuberBirthdayCount(ctx context.Context) ([]vtuberBirthdayCount, int, error)
	GetVtuberAverageHeight(ctx context.Context) (float64, int, error)
	GetVtuberAverageWeight(ctx context.Context) (float64, int, error)
	GetVtuberBloodTypeCount(ctx context.Context, params GetVtuberBloodTypeCountRequest) ([]vtuberBloodTypeCount, int, error)
	GetVtuberChannelTypeCount(ctx context.Context) ([]vtuberChannelTypeCount, int, error)
	GetVtuberGenderCount(ctx context.Context) ([]vtuberGenderCount, int, error)
	GetVtuberZodiacCount(ctx context.Context) ([]vtuberZodiacCount, int, error)

	GetAgencies(ctx context.Context, params GetAgenciesRequest) ([]agency, *pagination, int, error)
	GetAgencyByID(ctx context.Context, id int64) (*agency, int, error)
	GetAgencyCount(ctx context.Context) (int, int, error)

	GetWikiaImage(ctx context.Context, path string) ([]byte, int, error)

	DeleteVtuberByID(ctx context.Context, id int64) (int, error)
	ParseVtuberByID(ctx context.Context, id int64) (int, error)
	GetVtuberOverriddenFieldByID(ctx context.Context, id int64) (*VtuberOverriddenField, int, error)
	UpdateVtuberOverriddenFieldByID(ctx context.Context, data VtuberOverriddenField) (int, error)

	ConsumeMessage(ctx context.Context, msg entity.Message) error

	QueueMissingAgency(ctx context.Context, limit int) (int, int, error)
	QueueMissingVtuber(ctx context.Context, limit int) (int, int, error)
	QueueOldAgency(ctx context.Context, limit int) (int, int, error)
	QueueOldActiveVtuber(ctx context.Context, limit int) (int, int, error)
	QueueOldRetiredVtuber(ctx context.Context, limit int) (int, int, error)
}

Service contains functions for service.

type TierList added in v0.18.0

type TierList struct {
	ID          string       `json:"id" mod:"trim"`
	Title       string       `json:"title" validate:"required,gte=3,lte=50" mod:"trim"`
	Description string       `json:"description" validate:"lte=1000" mod:"trim"`
	Tiers       []tier       `json:"tiers" validate:"required,dive" mod:"dive"`
	Options     []tierVtuber `json:"options" validate:"dive" mod:"dive"`
	User        User         `json:"user"`
	UpdatedAt   time.Time    `json:"updated_at"`
}

TierList is tier list model.

type Token added in v0.18.0

type Token struct {
	AccessToken  string `json:"access_token"`
	RefreshToken string `json:"refresh_token"`
}

Token is access & refresh token.

type User added in v0.18.0

type User struct {
	ID       int64  `json:"id"`
	Username string `json:"username"`
}

User is user model.

type VtuberOverriddenField added in v0.20.0

type VtuberOverriddenField struct {
	ID             int64                  `json:"-" validate:"required,gte=1"`
	DebutDate      overriddenDate         `json:"debut_date"`
	RetirementDate overriddenDate         `json:"retirement_date"`
	Agencies       overriddenAgencies     `json:"agencies"`
	Affiliations   overriddenAffiliations `json:"affiliations"`
	Channels       overriddenChannels     `json:"channels"`
}

VtuberOverriddenField is vtuber overridden field model.

Jump to

Keyboard shortcuts

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