internal/server/server.go (view raw)
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 |
package server import ( "fmt" "net/http" "os" "strconv" "time" _ "github.com/joho/godotenv/autoload" "argus-core/internal/auth" "argus-core/internal/database" ) type Server struct { port int db database.Service auth auth.Service } func NewServer() *http.Server { port, _ := strconv.Atoi(os.Getenv("PORT")) // Initialize database service db := database.New() // Initialize auth service authService := auth.NewService(db, auth.Config{ JWTSecret: os.Getenv("JWT_SECRET"), TokenDuration: 24 * time.Hour, }) NewServer := &Server{ port: port, db: db, auth: authService, } // Declare Server config server := &http.Server{ Addr: fmt.Sprintf(":%d", NewServer.port), Handler: NewServer.RegisterRoutes(), IdleTimeout: time.Minute, ReadTimeout: 10 * time.Second, WriteTimeout: 30 * time.Second, } return server } |