-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
57 lines (39 loc) · 1.53 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
46
47
48
49
50
51
52
53
54
55
56
57
package main
import (
"cloud-proj/health-check/config"
"cloud-proj/health-check/database"
"cloud-proj/health-check/logs" // Ensure this is updated for zerolog.
"cloud-proj/health-check/middleware"
"cloud-proj/health-check/routes"
"cloud-proj/health-check/utils"
"os"
"time"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func main() {
// Setup zerolog global logger to use console writer for human-friendly output.
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339})
// Assuming CreateLogger now returns a *zerolog.Logger tailored for your application's needs.
logger := logs.CreateLogger()
config.LoadEnv()
database.InitDB()
// No need for logger.Sync() as in zap, zerolog does not buffer by default.
logger.Info().Msg("Hello from Zerolog!")
utils.InitPubSubClient()
router := gin.Default()
// If middleware and routes need the logger, consider passing it as an argument or using a context.
router.Use(middleware.CheckMethodAndPath)
router.GET("/healthz", routes.RouteHealthz(database.DB))
authenticatedAndVerified := router.Group("/")
authenticatedAndVerified.Use(middleware.BasicAuth(), middleware.UserVerificationMiddleware())
{
authenticatedAndVerified.GET("/v2/user/self", routes.GetUserRoute)
authenticatedAndVerified.PUT("/v2/user/self", routes.UpdateUserRoute)
}
router.POST("/v2/user", routes.CreateUserRoute)
router.NoRoute(middleware.HandleNoRoute)
router.GET("/v2/user/verify", routes.VerifyUserRoute)
router.Run(":8080")
}