More progress. Fixed storage bug. Need to get media stuff going
This commit is contained in:
Melody Becker 2024-11-05 16:29:01 +01:00
parent 1bb6cd8a70
commit 83f47d17be
11 changed files with 209 additions and 27 deletions

View file

@ -53,8 +53,11 @@ func NewStorage(dbUrl string, cache *cache.Cache) (*Storage, error) {
s := &Storage{db, cache}
if err = s.insertDefaultRoles(); err != nil {
return nil, fmt.Errorf("default roles insertion failed: %w", err)
}
if err = s.insertSelfFromConfig(); err != nil {
return nil, err
return nil, fmt.Errorf("self insertion failed: %w", err)
}
return s, nil
@ -68,12 +71,15 @@ func (s *Storage) insertSelfFromConfig() error {
// Insert server info
serverData := RemoteServer{}
err = s.db.Where("id = 1").
// Set once on creation
Attrs(RemoteServer{
Domain: config.GlobalConfig.General.GetFullDomain(),
}).
// Set every time
Assign(RemoteServer{
IsSelf: true,
Name: config.GlobalConfig.Self.ServerDisplayName,
IsSelf: true,
Name: config.GlobalConfig.Self.ServerDisplayName,
ServerType: REMOTE_SERVER_LINSTROM,
// Icon: "", // TODO: Set to server icon media
}).FirstOrCreate(&serverData).Error
if err != nil {
@ -91,6 +97,7 @@ func (s *Storage) insertSelfFromConfig() error {
err = s.db.Where(Account{ID: ServerActorId}).
// Values to always (re)set after launch
Assign(Account{
Username: "self",
DisplayName: config.GlobalConfig.Self.ServerActorDisplayName,
// Server: serverData,
ServerId: serverData.ID,
@ -107,7 +114,7 @@ func (s *Storage) insertSelfFromConfig() error {
RestrictedFollow: false,
IdentifiesAs: []Being{},
Gender: []string{},
Roles: []string{}, // TODO: Add server actor role once created
Roles: []string{"ServerActor"}, // TODO: Add server actor role once created
}).
// Values that'll only be set on first creation
Attrs(Account{
@ -120,3 +127,13 @@ func (s *Storage) insertSelfFromConfig() error {
}
return nil
}
func (s *Storage) insertDefaultRoles() error {
for _, role := range allDefaultRoles {
log.Debug().Str("role-name", role.Name).Msg("Inserting default role")
if err := s.db.FirstOrCreate(role).Error; err != nil {
return err
}
}
return nil
}