
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7337 - Massive replacement of changing `code.gitea.io/gitea` to `forgejo.org`. - Resolves forgejo/discussions#258 Co-authored-by: Gusted <postmaster@gusted.xyz> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7354 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org> Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
41 lines
910 B
Go
41 lines
910 B
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package user
|
|
|
|
import (
|
|
"context"
|
|
|
|
"forgejo.org/models/db"
|
|
)
|
|
|
|
// Badge represents a user badge
|
|
type Badge struct {
|
|
ID int64 `xorm:"pk autoincr"`
|
|
Description string
|
|
ImageURL string
|
|
}
|
|
|
|
// UserBadge represents a user badge
|
|
type UserBadge struct { //nolint:revive
|
|
ID int64 `xorm:"pk autoincr"`
|
|
BadgeID int64
|
|
UserID int64 `xorm:"INDEX"`
|
|
}
|
|
|
|
func init() {
|
|
db.RegisterModel(new(Badge))
|
|
db.RegisterModel(new(UserBadge))
|
|
}
|
|
|
|
// GetUserBadges returns the user's badges.
|
|
func GetUserBadges(ctx context.Context, u *User) ([]*Badge, int64, error) {
|
|
sess := db.GetEngine(ctx).
|
|
Select("`badge`.*").
|
|
Join("INNER", "user_badge", "`user_badge`.badge_id=badge.id").
|
|
Where("user_badge.user_id=?", u.ID)
|
|
|
|
badges := make([]*Badge, 0, 8)
|
|
count, err := sess.FindAndCount(&badges)
|
|
return badges, count, err
|
|
}
|