Implement lib to generate fake data for testing
This commit is contained in:
parent
e96fff646f
commit
02d2cc6629
4 changed files with 111 additions and 0 deletions
103
controllers/debug.go
Normal file
103
controllers/debug.go
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math/rand/v2"
|
||||||
|
|
||||||
|
"git.readonly.ch/bouzoure/pop-camarades/helpers"
|
||||||
|
"git.readonly.ch/bouzoure/pop-camarades/models"
|
||||||
|
"github.com/brianvoe/gofakeit/v7"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func DebugFakeMembers(c *fiber.Ctx) error {
|
||||||
|
number, _ := c.ParamsInt("number")
|
||||||
|
|
||||||
|
db, err := helpers.GetDatabase()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var sections []models.Section
|
||||||
|
result := db.Find(§ions, "contains_members = ?", true)
|
||||||
|
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
if result.RowsAffected < 1 {
|
||||||
|
return fiber.NewError(400, "cannot create members because no sections")
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < number; i++ {
|
||||||
|
section := sections[rand.IntN(len(sections))]
|
||||||
|
address := gofakeit.Address()
|
||||||
|
address2 := fmt.Sprintf("C/O %s", gofakeit.Name())
|
||||||
|
|
||||||
|
person := models.Person{
|
||||||
|
IsMember: true,
|
||||||
|
FirstName: gofakeit.FirstName(),
|
||||||
|
LastName: gofakeit.LastName(),
|
||||||
|
Email: gofakeit.Email(),
|
||||||
|
Phone: gofakeit.Phone(),
|
||||||
|
Mobile: gofakeit.Phone(),
|
||||||
|
Address1: address.Street,
|
||||||
|
Address2: address2,
|
||||||
|
PostalCode: address.Zip[:4],
|
||||||
|
City: address.City,
|
||||||
|
SectionID: section.ID,
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&person)
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.SendString(fmt.Sprintf(
|
||||||
|
"Created %d member(s)", number,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
func DebugFakeContacts(c *fiber.Ctx) error {
|
||||||
|
number, _ := c.ParamsInt("number")
|
||||||
|
|
||||||
|
db, err := helpers.GetDatabase()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var sections []models.Section
|
||||||
|
result := db.Find(§ions, "contains_contacts = ?", true)
|
||||||
|
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
if result.RowsAffected < 1 {
|
||||||
|
return fiber.NewError(400, "cannot create contacts because no sections")
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < number; i++ {
|
||||||
|
section := sections[rand.IntN(len(sections))]
|
||||||
|
address := gofakeit.Address()
|
||||||
|
address2 := fmt.Sprintf("C/O %s", gofakeit.Name())
|
||||||
|
|
||||||
|
person := models.Person{
|
||||||
|
IsContact: true,
|
||||||
|
FirstName: gofakeit.FirstName(),
|
||||||
|
LastName: gofakeit.LastName(),
|
||||||
|
Email: gofakeit.Email(),
|
||||||
|
Phone: gofakeit.Phone(),
|
||||||
|
Mobile: gofakeit.Phone(),
|
||||||
|
Address1: address.Street,
|
||||||
|
Address2: address2,
|
||||||
|
PostalCode: address.Zip[:4],
|
||||||
|
City: address.City,
|
||||||
|
SectionID: section.ID,
|
||||||
|
}
|
||||||
|
|
||||||
|
db.Create(&person)
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.SendString(fmt.Sprintf(
|
||||||
|
"Created %d contact(s)", number,
|
||||||
|
))
|
||||||
|
}
|
||||||
1
go.mod
1
go.mod
|
|
@ -22,6 +22,7 @@ require (
|
||||||
github.com/andybalholm/brotli v1.1.1 // indirect
|
github.com/andybalholm/brotli v1.1.1 // indirect
|
||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
github.com/boombuler/barcode v1.0.2 // indirect
|
github.com/boombuler/barcode v1.0.2 // indirect
|
||||||
|
github.com/brianvoe/gofakeit/v7 v7.1.2 // indirect
|
||||||
github.com/cespare/xxhash v1.1.0 // indirect
|
github.com/cespare/xxhash v1.1.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/charmbracelet/lipgloss v0.10.0 // indirect
|
github.com/charmbracelet/lipgloss v0.10.0 // indirect
|
||||||
|
|
|
||||||
2
go.sum
2
go.sum
|
|
@ -10,6 +10,8 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ
|
||||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||||
github.com/boombuler/barcode v1.0.2 h1:79yrbttoZrLGkL/oOI8hBrUKucwOL0oOjUgEguGMcJ4=
|
github.com/boombuler/barcode v1.0.2 h1:79yrbttoZrLGkL/oOI8hBrUKucwOL0oOjUgEguGMcJ4=
|
||||||
github.com/boombuler/barcode v1.0.2/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
github.com/boombuler/barcode v1.0.2/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||||
|
github.com/brianvoe/gofakeit/v7 v7.1.2 h1:vSKaVScNhWVpf1rlyEKSvO8zKZfuDtGqoIHT//iNNb8=
|
||||||
|
github.com/brianvoe/gofakeit/v7 v7.1.2/go.mod h1:QXuPeBw164PJCzCUZVmgpgHJ3Llj49jSLVkKPMtxtxA=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
|
|
|
||||||
5
main.go
5
main.go
|
|
@ -205,6 +205,11 @@ func main() {
|
||||||
app.Post("/admin/roles/:id<int;min(0)>/edit", controllers.RoleEdit)
|
app.Post("/admin/roles/:id<int;min(0)>/edit", controllers.RoleEdit)
|
||||||
app.Post("/admin/roles/:id<int;min(0)>/delete", controllers.RoleDelete)
|
app.Post("/admin/roles/:id<int;min(0)>/delete", controllers.RoleDelete)
|
||||||
|
|
||||||
|
if config.Debug {
|
||||||
|
app.Get("/debug/fake-members/:number<int;min(1)>", controllers.DebugFakeMembers)
|
||||||
|
app.Get("/debug/fake-contacts/:number<int;min(1)>", controllers.DebugFakeContacts)
|
||||||
|
}
|
||||||
|
|
||||||
log.Info(
|
log.Info(
|
||||||
"starting web server",
|
"starting web server",
|
||||||
"address", config.App.ListenAddress,
|
"address", config.App.ListenAddress,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue