Files
dash/backend/dash_backend.go
Martin Pander 8addda35ea V2
2023-12-09 19:34:45 +01:00

60 lines
1.8 KiB
Go

package main
import (
"log"
"net/http"
"os"
"strconv"
"github.com/gorilla/handlers"
dashapi "github.com/moustachioed/dash/backend/dashapi"
database "github.com/moustachioed/dash/backend/database"
mapping "github.com/moustachioed/dash/backend/mapping"
service "github.com/moustachioed/dash/backend/service"
)
func main() {
dbHost := os.Getenv("DB_HOST")
dbName := os.Getenv("DB_NAME")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")
dbPort := os.Getenv("DB_PORT")
// Convert dbPort to uint16
dbPortUint16, err := strconv.ParseUint(dbPort, 10, 16)
if err != nil {
log.Fatal(err)
}
db, err := database.NewPgDatabase(dbHost, dbUser, dbPassword, dbName, uint16(dbPortUint16))
if err != nil {
log.Fatal(err)
}
mapper := mapping.NewMapperImpl()
JournalApiService := service.NewJournalApiService(db, mapper)
JournalApiController := dashapi.NewJournalApiController(JournalApiService)
PlanApiService := service.NewPlanApiService(db, mapper)
PlanApiController := dashapi.NewPlanApiController(PlanApiService)
TrackingApiService := service.NewTrackingApiService(db, mapper)
TrackingApiController := dashapi.NewTrackingApiController(TrackingApiService)
InboxApiService := service.NewInboxApiService(db, mapper)
InboxApiController := dashapi.NewInboxApiController(InboxApiService)
cors := handlers.CORS(
handlers.AllowedMethods([]string{"GET", "POST", "DELETE"}),
handlers.AllowedHeaders([]string{"Accept", "Accept-Language", "Content-Type", "Content-Language", "Origin"}),
handlers.AllowedOrigins([]string{"*"}),
)
router := dashapi.NewRouter(JournalApiController, PlanApiController, TrackingApiController, InboxApiController)
// router.Methods("GET", "POST", "DELETE", "OPTIONS")
log.Printf("Starting server.")
log.Fatal(http.ListenAndServe("0.0.0.0:8080", cors(router)))
}