blob: 323d2ac80bce83b37a5c6258ef238293d3635d18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package seeder
import (
"context"
"log"
"github.com/go-faker/faker/v4"
"github.com/go-faker/faker/v4/pkg/options"
"github.com/volatiletech/sqlboiler/v4/boil"
"gitlab.com/alexkavon/newsstand/src/db"
"gitlab.com/alexkavon/newsstand/src/models"
"gitlab.com/alexkavon/newsstand/src/user"
)
type Seeder struct {
dbconn *db.Db
}
func beginSeed(dbconn *db.Db, insertFunc func(context.Context, boil.ContextExecutor, boil.Columns) error) error {
return insertFunc(context.Background(), dbconn.ToSqlDb(), boil.Infer())
}
func NewSeeder(dbconn *db.Db) *Seeder {
options.SetGenerateUniqueValues(true)
return &Seeder{dbconn}
}
func (s *Seeder) SeedUsers(num int) error {
user.InitHooks()
for i := 1; i <= num; i++ {
u := &models.User{}
u.Username = faker.Username()
u.Secret = faker.Password()
log.Printf("seeding user=%s", u.Username)
// err := beginSeed(s.dbconn, u.Insert)
err := u.Insert(context.Background(), s.dbconn.ToSqlDb(), boil.Infer())
if err != nil {
return err
}
}
return nil
}
func (s *Seeder) SeedPosts(num int) error {
// query users, pick random, generate num posts
return nil
}
|