badgeservice

package
v0.2.49 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeFirstPost      = "first_post"
	CodeFirstComment   = "first_comment"
	CodeFirstLikeGiven = "first_like_given"
	CodeFirstFollower  = "first_follower"
	CodeWriter10       = "writer_10"
	CodeCommenter50    = "commenter_50"
	CodeLiked10        = "liked_10"
	CodePopular100     = "popular_100"
	CodeSocial10       = "social_10"
	CodeEarlyMember    = "early_member"
	CodeContributor    = "contributor"
	CodeModerator      = "moderator"
	CodeSponsor        = "sponsor"
	CodeKing           = "king"
	CodeRobot          = "robot"
)
View Source
const (
	LevelBronze  = "bronze"
	LevelSilver  = "silver"
	LevelGold    = "gold"
	LevelSpecial = "special"
)

Variables

This section is empty.

Functions

func CheckAndGrant

func CheckAndGrant(userID uint64, trigger Trigger)

func Grant

func Grant(userID uint64, code string, source string, reason string, grantedBy uint64) (bool, error)

func InvalidateDefinitions

func InvalidateDefinitions()

Types

type AdminBadge

type AdminBadge struct {
	Badge
	IsSystem  bool `json:"isSystem"`
	CanDelete bool `json:"canDelete"`
}

func AllForAdmin

func AllForAdmin() []AdminBadge

type Badge

type Badge struct {
	Code        string `json:"code"`
	Type        string `json:"type"`
	GrantMode   string `json:"grantMode"`
	Name        string `json:"name"`
	Description string `json:"description"`
	IconType    string `json:"iconType"`
	IconKey     string `json:"iconKey"`
	IconURL     string `json:"iconUrl"`
	Color       string `json:"color"`
	Level       string `json:"level"`
	IsEnabled   bool   `json:"isEnabled"`
	IsWearable  bool   `json:"isWearable"`
	SortOrder   int    `json:"sortOrder"`
}

func ManualGrantBadgesForAdmin

func ManualGrantBadgesForAdmin() []Badge

func ResolveByCodes

func ResolveByCodes(codes []string) []Badge

func ResolveOne

func ResolveOne(code string) Badge

type Trigger

type Trigger string
const (
	TriggerSignUp  Trigger = "sign_up"
	TriggerPost    Trigger = "post"
	TriggerComment Trigger = "comment"
	TriggerLike    Trigger = "like"
	TriggerFollow  Trigger = "follow"
)

type UserBadge

type UserBadge struct {
	Badge
	Source    string `json:"source"`
	Reason    string `json:"reason"`
	GrantedAt string `json:"grantedAt"`
}

func GetUserBadges

func GetUserBadges(userID uint64) []UserBadge

func GetWearableUserBadges added in v0.2.43

func GetWearableUserBadges(userID uint64) []UserBadge

func GetWornBadge added in v0.2.43

func GetWornBadge(userID uint64, badgeCode string) *UserBadge

func WearableBadgesFromList added in v0.2.43

func WearableBadgesFromList(items []UserBadge) []UserBadge

func WornBadgeFromList added in v0.2.43

func WornBadgeFromList(items []UserBadge, badgeCode string) *UserBadge

Jump to

Keyboard shortcuts

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