Better tracing

Not done yet, still need to add them to just about every other function
This commit is contained in:
Melody Becker 2024-11-06 16:57:44 +01:00
parent 83f47d17be
commit 529d106351
13 changed files with 148 additions and 22 deletions

View file

@ -12,6 +12,7 @@ import (
"github.com/rs/zerolog/log"
"gitlab.com/mstarongitlab/linstrom/config"
"gitlab.com/mstarongitlab/linstrom/storage/cache"
"gitlab.com/mstarongitlab/linstrom/util"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
@ -29,6 +30,7 @@ type Storage struct {
}
func NewStorage(dbUrl string, cache *cache.Cache) (*Storage, error) {
defer util.Untrace(util.Trace(&log.Logger))
db, err := gorm.Open(postgres.Open(dbUrl), &gorm.Config{
Logger: newGormLogger(log.Logger),
})
@ -46,6 +48,7 @@ func NewStorage(dbUrl string, cache *cache.Cache) (*Storage, error) {
OutboundJob{},
AccessToken{},
Emote{},
UserInfoField{},
)
if err != nil {
return nil, fmt.Errorf("failed to apply migrations: %w", err)
@ -56,6 +59,11 @@ func NewStorage(dbUrl string, cache *cache.Cache) (*Storage, error) {
if err = s.insertDefaultRoles(); err != nil {
return nil, fmt.Errorf("default roles insertion failed: %w", err)
}
if err = s.insertPlaceholderFile(); err != nil {
return nil, fmt.Errorf("placeholder file insertion failed: %w", err)
}
if err = s.insertSelfFromConfig(); err != nil {
return nil, fmt.Errorf("self insertion failed: %w", err)
}
@ -64,6 +72,7 @@ func NewStorage(dbUrl string, cache *cache.Cache) (*Storage, error) {
}
func (s *Storage) insertSelfFromConfig() error {
defer util.Untrace(util.Trace(&log.Logger))
const ServerActorId = "self"
var err error
@ -80,7 +89,7 @@ func (s *Storage) insertSelfFromConfig() error {
IsSelf: true,
Name: config.GlobalConfig.Self.ServerDisplayName,
ServerType: REMOTE_SERVER_LINSTROM,
// Icon: "", // TODO: Set to server icon media
Icon: "placeholder", // TODO: Set to server icon media
}).FirstOrCreate(&serverData).Error
if err != nil {
return err
@ -107,9 +116,6 @@ func (s *Storage) insertSelfFromConfig() error {
IsBot: true,
// Followers: []string{},
// Follows: []string{},
// Icon: "", // TODO: Replace with reference to server icon
// Background: "", // TODO: Replace with reference to background media
// Banner: "", // TODO: Replace with reference to banner media
Indexable: false,
RestrictedFollow: false,
IdentifiesAs: []Being{},
@ -120,6 +126,9 @@ func (s *Storage) insertSelfFromConfig() error {
Attrs(Account{
PublicKey: serverActorPublicKey,
PrivateKey: serverActorPrivateKey,
Icon: "placeholder",
Background: nil,
Banner: nil,
}).
FirstOrCreate(&serverActor).Error
if err != nil {
@ -129,6 +138,7 @@ func (s *Storage) insertSelfFromConfig() error {
}
func (s *Storage) insertDefaultRoles() error {
defer util.Untrace(util.Trace(&log.Logger))
for _, role := range allDefaultRoles {
log.Debug().Str("role-name", role.Name).Msg("Inserting default role")
if err := s.db.FirstOrCreate(role).Error; err != nil {
@ -137,3 +147,16 @@ func (s *Storage) insertDefaultRoles() error {
}
return nil
}
func (s *Storage) insertPlaceholderFile() error {
defer util.Untrace(util.Trace(&log.Logger))
return s.db.Model(&MediaMetadata{}).Assign(&MediaMetadata{
ID: "placeholder",
Type: "image/webp",
Name: "placeholderFile",
Blurred: false,
Remote: false,
Location: "/placeholder-file",
AltText: "Greyscale image of a pidgeon, captioned with the text \"Duck\"",
}).FirstOrCreate(&MediaMetadata{}).Error
}