refactor(API): ✨ Relspect integration
This commit is contained in:
55
pkg/storage/seed.go
Normal file
55
pkg/storage/seed.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.warky.dev/wdevs/whatshooked/pkg/models"
|
||||
resolvespec_common "github.com/bitechdev/ResolveSpec/pkg/spectypes"
|
||||
"github.com/google/uuid"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
// SeedData creates initial data for the application
|
||||
func SeedData(ctx context.Context) error {
|
||||
if DB == nil {
|
||||
return fmt.Errorf("database not initialized")
|
||||
}
|
||||
|
||||
// Check if admin user already exists
|
||||
userRepo := NewUserRepository(DB)
|
||||
_, err := userRepo.GetByUsername(ctx, "admin")
|
||||
if err == nil {
|
||||
// Admin user already exists
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create default admin user
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte("admin123"), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to hash password: %w", err)
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
adminUser := &models.ModelPublicUser{
|
||||
ID: resolvespec_common.NewSqlString(uuid.New().String()),
|
||||
Username: resolvespec_common.NewSqlString("admin"),
|
||||
Email: resolvespec_common.NewSqlString("admin@whatshooked.local"),
|
||||
Password: resolvespec_common.NewSqlString(string(hashedPassword)),
|
||||
FullName: resolvespec_common.NewSqlString("System Administrator"),
|
||||
Role: resolvespec_common.NewSqlString("admin"),
|
||||
Active: true,
|
||||
CreatedAt: resolvespec_common.NewSqlTime(now),
|
||||
UpdatedAt: resolvespec_common.NewSqlTime(now),
|
||||
}
|
||||
|
||||
if err := userRepo.Create(ctx, adminUser); err != nil {
|
||||
return fmt.Errorf("failed to create admin user: %w", err)
|
||||
}
|
||||
|
||||
fmt.Println("✓ Created default admin user (username: admin, password: admin123)")
|
||||
fmt.Println("⚠ Please change the default password after first login!")
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user