all repos

onasty @ b3a528af9e74a124dbb79687ebb116ce8a8c8e8c

a one-time notes service

onasty/cmd/seed/main.go (view raw)

Smirnov Oleksandr Smirnov Oleksandr
ss2316544@gmail.com
refactor: logger set default interface (#131)..., 12 months ago
1
package main
2
3
import (
4
	"context"
5
	"fmt"
6
	"log/slog"
7
	"os"
8
9
	"github.com/olexsmir/onasty/internal/config"
10
	"github.com/olexsmir/onasty/internal/hasher"
11
	"github.com/olexsmir/onasty/internal/logger"
12
	"github.com/olexsmir/onasty/internal/store/psqlutil"
13
)
14
15
func main() {
16
	if err := run(context.Background()); err != nil {
17
		fmt.Fprintf(os.Stderr, "error: %v\n", err)
18
		os.Exit(1)
19
	}
20
}
21
22
func run(ctx context.Context) error {
23
	cfg := config.NewConfig()
24
25
	if err := logger.SetDefault(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine); err != nil {
26
		return err
27
	}
28
29
	psql, err := psqlutil.Connect(ctx, cfg.PostgresDSN)
30
	if err != nil {
31
		return err
32
	}
33
34
	userHasher := hasher.NewSHA256Hasher(cfg.PasswordSalt)
35
	noteHasher := hasher.NewSHA256Hasher(cfg.NotePasswordSalt)
36
37
	if err := seedUsers(ctx, userHasher, psql); err != nil {
38
		return fmt.Errorf("failed to seed users: %w", err)
39
	}
40
41
	slog.Info("Users seeded successfully")
42
43
	if err := seedNotes(ctx, noteHasher, psql); err != nil {
44
		return fmt.Errorf("failed to seed notes: %w", err)
45
	}
46
47
	slog.Info("Notes seeded successfully")
48
49
	return nil
50
}