badgeservice

package
v0.2.76 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2026 License: MIT Imports: 10 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 GetWornBadges added in v0.2.53

func GetWornBadges(selected map[uint64]string) map[uint64]*UserBadge

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