|
@@ -30,6 +30,12 @@ import ( |
|
|
_ "image/jpeg" |
|
|
_ "image/jpeg" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
type Config struct { |
|
|
|
|
|
DBName string |
|
|
|
|
|
DBUsername string |
|
|
|
|
|
DBPassword string |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
type Address struct { |
|
|
type Address struct { |
|
|
Id int `json:"id"` |
|
|
Id int `json:"id"` |
|
|
Full string `json:"full"` |
|
|
Full string `json:"full"` |
|
@@ -67,6 +73,12 @@ type User struct { |
|
|
Password string `json:"password,omitempty"` |
|
|
Password string `json:"password,omitempty"` |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
type License struct { |
|
|
|
|
|
Id int `json:"id"` |
|
|
|
|
|
Type string `json:"type"` |
|
|
|
|
|
Num string `json:"num"` |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
type UserClaims struct { |
|
|
type UserClaims struct { |
|
|
Id int `json:"id"` |
|
|
Id int `json:"id"` |
|
|
Role string `json:"role"` |
|
|
Role string `json:"role"` |
|
@@ -2296,22 +2308,31 @@ func serve() { |
|
|
log.Fatal(http.ListenAndServe(address, nil)) |
|
|
log.Fatal(http.ListenAndServe(address, nil)) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func dbSeed() { |
|
|
|
|
|
db, err := sql.Open("mysql", |
|
|
|
|
|
fmt.Sprintf("%s:%s@tcp(127.0.0.1:3306)/%s", |
|
|
|
|
|
os.Getenv("DBUser"), |
|
|
|
|
|
os.Getenv("DBPass"), |
|
|
|
|
|
os.Getenv("DBName"), |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
func dbReset(db *sql.DB) { |
|
|
|
|
|
b, err := os.ReadFile("migrations/reset.sql") |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
log.Fatal(err) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
err = db.Ping() |
|
|
|
|
|
|
|
|
_, err = db.Exec(string(b)) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
fmt.Println("Bad database configuration: %v\n", err) |
|
|
|
|
|
panic(err) |
|
|
|
|
|
// maybe os.Exit(1) instead |
|
|
|
|
|
|
|
|
log.Fatal(err) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b, err = os.ReadFile("migrations/0_29092022_setup_tables.sql") |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
log.Fatal(err) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_, err = db.Exec(string(b)) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
log.Fatal(err) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func seedAddresses(db *sql.DB) []Address { |
|
|
addresses := make([]Address, 10) |
|
|
addresses := make([]Address, 10) |
|
|
|
|
|
|
|
|
for i, a := range addresses { |
|
|
for i, a := range addresses { |
|
|
a.Street = gofakeit.Street() |
|
|
a.Street = gofakeit.Street() |
|
|
a.City = gofakeit.City() |
|
|
a.City = gofakeit.City() |
|
@@ -2323,9 +2344,14 @@ func dbSeed() { |
|
|
addresses[i].Id = id |
|
|
addresses[i].Id = id |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return addresses |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func seedBranches(db *sql.DB, addresses []Address) []Branch { |
|
|
branches := make([]Branch, 4) |
|
|
branches := make([]Branch, 4) |
|
|
|
|
|
|
|
|
for i := range branches { |
|
|
for i := range branches { |
|
|
branches[i].Name = gofakeit.Street() |
|
|
|
|
|
|
|
|
branches[i].Name = gofakeit.Company() |
|
|
branches[i].Type = "NMLS" |
|
|
branches[i].Type = "NMLS" |
|
|
branches[i].Letterhead = gofakeit.ImagePng(400, 200) |
|
|
branches[i].Letterhead = gofakeit.ImagePng(400, 200) |
|
|
branches[i].Num = gofakeit.HexUint8() |
|
|
branches[i].Num = gofakeit.HexUint8() |
|
@@ -2336,7 +2362,12 @@ func dbSeed() { |
|
|
branches[i].Id = id |
|
|
branches[i].Id = id |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return branches |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func seedUsers(db *sql.DB, addresses []Address, branches []Branch) []User { |
|
|
users := make([]User, 10) |
|
|
users := make([]User, 10) |
|
|
|
|
|
|
|
|
for i := range users { |
|
|
for i := range users { |
|
|
p := gofakeit.Person() |
|
|
p := gofakeit.Person() |
|
|
users[i].FirstName = p.FirstName |
|
|
users[i].FirstName = p.FirstName |
|
@@ -2371,6 +2402,30 @@ func dbSeed() { |
|
|
if err != nil {log.Println(err); break} |
|
|
if err != nil {log.Println(err); break} |
|
|
users[i].Id = u.Id |
|
|
users[i].Id = u.Id |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return users |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func seedLicenses(db *sql.DB, users []User) []Branch { |
|
|
|
|
|
licenses := make([]License, len(users) |
|
|
|
|
|
|
|
|
|
|
|
for i := range licenses { |
|
|
|
|
|
licenses[i].UserId = users[i].Id |
|
|
|
|
|
licenses[i].Type = []string{"NMLS", "FSRA"}[gofakeit.Number(0, 1)] |
|
|
|
|
|
licenses[i].Num = gofakeit.UUID() |
|
|
|
|
|
// id, err := insertLicense(db, licenses[i]) |
|
|
|
|
|
if err != nil {log.Println(err); break} |
|
|
|
|
|
licenses[i].Id = id |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return licenses |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func dbSeed(db *sql.DB) { |
|
|
|
|
|
addresses := seedAddresses(db) |
|
|
|
|
|
branches := seedBranches(db, addresses) |
|
|
|
|
|
users := seedUsers(db, addresses, branches) |
|
|
|
|
|
license := seedLicenses(db, users) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func dev(args []string) { |
|
|
func dev(args []string) { |
|
@@ -2378,6 +2433,20 @@ func dev(args []string) { |
|
|
os.Setenv("DBUser", "tester") |
|
|
os.Setenv("DBUser", "tester") |
|
|
os.Setenv("DBPass", "test123") |
|
|
os.Setenv("DBPass", "test123") |
|
|
|
|
|
|
|
|
|
|
|
db, err := sql.Open("mysql", |
|
|
|
|
|
fmt.Sprintf("%s:%s@tcp(127.0.0.1:3306)/%s?multiStatements=true", |
|
|
|
|
|
os.Getenv("DBUser"), |
|
|
|
|
|
os.Getenv("DBPass"), |
|
|
|
|
|
os.Getenv("DBName"), |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
err = db.Ping() |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
log.Println("Bad database configuration: %v", err) |
|
|
|
|
|
panic(err) |
|
|
|
|
|
// maybe os.Exit(1) instead |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if len(args) == 0 { |
|
|
if len(args) == 0 { |
|
|
serve() |
|
|
serve() |
|
|
return |
|
|
return |
|
@@ -2385,7 +2454,9 @@ func dev(args []string) { |
|
|
|
|
|
|
|
|
switch args[0] { |
|
|
switch args[0] { |
|
|
case "seed": |
|
|
case "seed": |
|
|
dbSeed() |
|
|
|
|
|
|
|
|
dbSeed(db) |
|
|
|
|
|
case "reset": |
|
|
|
|
|
dbReset(db) |
|
|
default: |
|
|
default: |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|