36 }
37 err = DB.SetupJoinTable(&Product{}, "Users", &ProductUser{})
38 if err != nil {
39 log.Fatal(err) 40 }
41 return DB
42}
32
33 err = DB.SetupJoinTable(&User{}, "FollowedProducts", &ProductUser{})
34 if err != nil {
35 log.Fatal(err) 36 }
37 err = DB.SetupJoinTable(&Product{}, "Users", &ProductUser{})
38 if err != nil {
27 }
28 err = DB.AutoMigrate(&User{}, &Product{}, &Post{}, &Comment{}, &ProductUser{}, &Message{})
29 if err != nil {
30 log.Fatal(err) 31 }
32
33 err = DB.SetupJoinTable(&User{}, "FollowedProducts", &ProductUser{})
23 DB, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
24
25 if err != nil {
26 log.Fatal(err) 27 }
28 err = DB.AutoMigrate(&User{}, &Product{}, &Post{}, &Comment{}, &ProductUser{}, &Message{})
29 if err != nil {
54 var Pu ProductUsersInfo
55 err := rows.Scan(&Pu.ID, &Pu.Name, &Pu.Role, &Pu.Pfp)
56 if err != nil {
57 log.Fatal(err) 58 }
59 Users = append(Users, Pu)
60 }
Packages exposing functions that can stop program execution by exiting are hard to reuse. Program exits in functions other than main() or init() are not encouraged.
func nonMainFunc() {
safelyExit := true // somehow arrive at this value
if safelyExit {
os.Exit(0)
}
}
func main() {
nonMainFunc()
}
func nonMainFunc() bool {
safelyExit := true // somehow arrive at this value
}
func main() {
safelyExit := nonMainFunc()
if safelyExit {
os.Exit(0)
}
}