Add go:generate command and new field to user
Some checks are pending
/ test (push) Waiting to run

This commit is contained in:
Melody Becker 2025-03-31 08:08:01 +02:00
parent 8ba5e98c50
commit 582988add2
No known key found for this signature in database
4 changed files with 50 additions and 35 deletions

View file

@ -28,6 +28,7 @@ func newLoginProcessToken(db *gorm.DB, opts ...gen.DOOption) loginProcessToken {
_loginProcessToken.ALL = field.NewAsterisk(tableName) _loginProcessToken.ALL = field.NewAsterisk(tableName)
_loginProcessToken.UserId = field.NewString(tableName, "user_id") _loginProcessToken.UserId = field.NewString(tableName, "user_id")
_loginProcessToken.Token = field.NewString(tableName, "token") _loginProcessToken.Token = field.NewString(tableName, "token")
_loginProcessToken.ExpiresAt = field.NewTime(tableName, "expires_at")
_loginProcessToken.User = loginProcessTokenBelongsToUser{ _loginProcessToken.User = loginProcessTokenBelongsToUser{
db: db.Session(&gorm.Session{}), db: db.Session(&gorm.Session{}),
@ -177,10 +178,11 @@ func newLoginProcessToken(db *gorm.DB, opts ...gen.DOOption) loginProcessToken {
type loginProcessToken struct { type loginProcessToken struct {
loginProcessTokenDo loginProcessTokenDo
ALL field.Asterisk ALL field.Asterisk
UserId field.String UserId field.String
Token field.String Token field.String
User loginProcessTokenBelongsToUser ExpiresAt field.Time
User loginProcessTokenBelongsToUser
fieldMap map[string]field.Expr fieldMap map[string]field.Expr
} }
@ -199,6 +201,7 @@ func (l *loginProcessToken) updateTableName(table string) *loginProcessToken {
l.ALL = field.NewAsterisk(table) l.ALL = field.NewAsterisk(table)
l.UserId = field.NewString(table, "user_id") l.UserId = field.NewString(table, "user_id")
l.Token = field.NewString(table, "token") l.Token = field.NewString(table, "token")
l.ExpiresAt = field.NewTime(table, "expires_at")
l.fillFieldMap() l.fillFieldMap()
@ -215,9 +218,10 @@ func (l *loginProcessToken) GetFieldByName(fieldName string) (field.OrderExpr, b
} }
func (l *loginProcessToken) fillFieldMap() { func (l *loginProcessToken) fillFieldMap() {
l.fieldMap = make(map[string]field.Expr, 3) l.fieldMap = make(map[string]field.Expr, 4)
l.fieldMap["user_id"] = l.UserId l.fieldMap["user_id"] = l.UserId
l.fieldMap["token"] = l.Token l.fieldMap["token"] = l.Token
l.fieldMap["expires_at"] = l.ExpiresAt
} }

View file

@ -36,14 +36,16 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) user {
_user.Description = field.NewString(tableName, "description") _user.Description = field.NewString(tableName, "description")
_user.IsBot = field.NewBool(tableName, "is_bot") _user.IsBot = field.NewBool(tableName, "is_bot")
_user.IconId = field.NewString(tableName, "icon_id") _user.IconId = field.NewString(tableName, "icon_id")
_user.BackgroundId = field.NewString(tableName, "background_id") _user.BackgroundId = field.NewField(tableName, "background_id")
_user.BannerId = field.NewString(tableName, "banner_id") _user.BannerId = field.NewField(tableName, "banner_id")
_user.Indexable = field.NewBool(tableName, "indexable") _user.Indexable = field.NewBool(tableName, "indexable")
_user.PublicKey = field.NewBytes(tableName, "public_key") _user.PublicKey = field.NewBytes(tableName, "public_key")
_user.RestrictedFollow = field.NewBool(tableName, "restricted_follow") _user.RestrictedFollow = field.NewBool(tableName, "restricted_follow")
_user.Location = field.NewString(tableName, "location") _user.Location = field.NewField(tableName, "location")
_user.Birthday = field.NewTime(tableName, "birthday") _user.Birthday = field.NewField(tableName, "birthday")
_user.Verified = field.NewBool(tableName, "verified") _user.Verified = field.NewBool(tableName, "verified")
_user.PasskeyId = field.NewBytes(tableName, "passkey_id")
_user.FinishedRegistration = field.NewBool(tableName, "finished_registration")
_user.RemoteInfo = userHasOneRemoteInfo{ _user.RemoteInfo = userHasOneRemoteInfo{
db: db.Session(&gorm.Session{}), db: db.Session(&gorm.Session{}),
@ -310,26 +312,28 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) user {
type user struct { type user struct {
userDo userDo
ALL field.Asterisk ALL field.Asterisk
ID field.String ID field.String
Username field.String Username field.String
CreatedAt field.Time CreatedAt field.Time
UpdatedAt field.Time UpdatedAt field.Time
DeletedAt field.Field DeletedAt field.Field
ServerId field.Uint ServerId field.Uint
DisplayName field.String DisplayName field.String
Description field.String Description field.String
IsBot field.Bool IsBot field.Bool
IconId field.String IconId field.String
BackgroundId field.String BackgroundId field.Field
BannerId field.String BannerId field.Field
Indexable field.Bool Indexable field.Bool
PublicKey field.Bytes PublicKey field.Bytes
RestrictedFollow field.Bool RestrictedFollow field.Bool
Location field.String Location field.Field
Birthday field.Time Birthday field.Field
Verified field.Bool Verified field.Bool
RemoteInfo userHasOneRemoteInfo PasskeyId field.Bytes
FinishedRegistration field.Bool
RemoteInfo userHasOneRemoteInfo
InfoFields userHasManyInfoFields InfoFields userHasManyInfoFields
@ -376,14 +380,16 @@ func (u *user) updateTableName(table string) *user {
u.Description = field.NewString(table, "description") u.Description = field.NewString(table, "description")
u.IsBot = field.NewBool(table, "is_bot") u.IsBot = field.NewBool(table, "is_bot")
u.IconId = field.NewString(table, "icon_id") u.IconId = field.NewString(table, "icon_id")
u.BackgroundId = field.NewString(table, "background_id") u.BackgroundId = field.NewField(table, "background_id")
u.BannerId = field.NewString(table, "banner_id") u.BannerId = field.NewField(table, "banner_id")
u.Indexable = field.NewBool(table, "indexable") u.Indexable = field.NewBool(table, "indexable")
u.PublicKey = field.NewBytes(table, "public_key") u.PublicKey = field.NewBytes(table, "public_key")
u.RestrictedFollow = field.NewBool(table, "restricted_follow") u.RestrictedFollow = field.NewBool(table, "restricted_follow")
u.Location = field.NewString(table, "location") u.Location = field.NewField(table, "location")
u.Birthday = field.NewTime(table, "birthday") u.Birthday = field.NewField(table, "birthday")
u.Verified = field.NewBool(table, "verified") u.Verified = field.NewBool(table, "verified")
u.PasskeyId = field.NewBytes(table, "passkey_id")
u.FinishedRegistration = field.NewBool(table, "finished_registration")
u.fillFieldMap() u.fillFieldMap()
@ -400,7 +406,7 @@ func (u *user) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
} }
func (u *user) fillFieldMap() { func (u *user) fillFieldMap() {
u.fieldMap = make(map[string]field.Expr, 29) u.fieldMap = make(map[string]field.Expr, 31)
u.fieldMap["id"] = u.ID u.fieldMap["id"] = u.ID
u.fieldMap["username"] = u.Username u.fieldMap["username"] = u.Username
u.fieldMap["created_at"] = u.CreatedAt u.fieldMap["created_at"] = u.CreatedAt
@ -419,6 +425,8 @@ func (u *user) fillFieldMap() {
u.fieldMap["location"] = u.Location u.fieldMap["location"] = u.Location
u.fieldMap["birthday"] = u.Birthday u.fieldMap["birthday"] = u.Birthday
u.fieldMap["verified"] = u.Verified u.fieldMap["verified"] = u.Verified
u.fieldMap["passkey_id"] = u.PasskeyId
u.fieldMap["finished_registration"] = u.FinishedRegistration
} }

View file

@ -70,7 +70,8 @@ type User struct {
// 64 byte unique id for passkeys, because UUIDs are 128 bytes and passkey spec says 64 bytes max // 64 byte unique id for passkeys, because UUIDs are 128 bytes and passkey spec says 64 bytes max
// In theory, could also slash Id in half, but that would be a lot more calculations than the // In theory, could also slash Id in half, but that would be a lot more calculations than the
// saved space is worth // saved space is worth
PasskeyId []byte PasskeyId []byte
FinishedRegistration bool // Whether this account has completed registration yet
// ---- "Remote" linked values // ---- "Remote" linked values
InfoFields []UserInfoField InfoFields []UserInfoField

View file

@ -1 +1,3 @@
package storage package storage
//go:generate go run ../cmd/NewRoleHelperGenerator/main.go -input ./models/Role.go -output role_generated.go -mod storage