-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
45 lines (37 loc) · 1.19 KB
/
main.go
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
package main
import (
"fmt"
"log"
"github.com/mohidex/identity-service/auth"
"github.com/mohidex/identity-service/config"
"github.com/mohidex/identity-service/db"
"github.com/mohidex/identity-service/metricsutil"
"github.com/mohidex/identity-service/models"
"github.com/mohidex/identity-service/server"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
func main() {
conf := config.NewConfig()
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Africa/Lagos",
conf.DBHost, conf.DBUser, conf.DBPassword, conf.DBName, conf.DBPort)
gormDB, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
if err != nil {
panic(err)
} else {
fmt.Println("Successfully connected to the database")
}
if err = gormDB.AutoMigrate(&models.User{}); err != nil {
log.Fatal("Failed to auto-migrate:", err)
}
pgDB := db.NewPgDB(gormDB)
jwtAuth := auth.NewJWTAuthenticator(conf.JWTPrivateKey, conf.JWTTTL)
metricsUtil := metricsutil.NewPrometheusMetrics()
r := server.NewServer(pgDB, jwtAuth, metricsUtil)
if err := r.Start(":5000"); err != nil {
panic("Failed to start server: " + err.Error())
}
}