46 lines
1.4 KiB
Go
Executable File
46 lines
1.4 KiB
Go
Executable File
package main
|
|
|
|
import (
|
|
"actatempus_backend/internal/application/repository"
|
|
"actatempus_backend/internal/application/services"
|
|
"actatempus_backend/internal/infrastructure/config"
|
|
"actatempus_backend/internal/infrastructure/data"
|
|
"actatempus_backend/internal/interfaces/http"
|
|
"fmt"
|
|
"log"
|
|
)
|
|
|
|
func main() {
|
|
// Lese die Konfiguration ein
|
|
cfg, err := config.LoadConfig(".")
|
|
if err != nil {
|
|
log.Fatalf("could not load config: %v", err)
|
|
}
|
|
|
|
database, err := data.NewPrismaDatabase()
|
|
|
|
if err != nil {
|
|
log.Fatalf("could not initialize database: %v", err)
|
|
}
|
|
|
|
// Initialize repositories
|
|
userRepo := repository.NewUserRepository(database.Users())
|
|
projectRepo := repository.NewProjectRepository(database.Projects())
|
|
projectTaskRepo := repository.NewProjectTaskRepository(database.ProjectTasks())
|
|
timeEntryRepo := repository.NewTimeEntryRepository(database.TimeEntries())
|
|
|
|
// Initialize services
|
|
userService := services.NewUserService(userRepo)
|
|
projectService := services.NewProjectService(projectRepo)
|
|
projectTaskService := services.NewProjectTaskService(projectTaskRepo)
|
|
timeEntryService := services.NewTimeEntryService(timeEntryRepo)
|
|
|
|
// Initialize and start the server
|
|
server := http.NewServer(cfg, userService, projectService, projectTaskService, timeEntryService)
|
|
|
|
fmt.Println("Starting ActaTempus server on port 8080...")
|
|
if err := server.Start(); err != nil {
|
|
log.Fatalf("server failed to start: %v", err)
|
|
}
|
|
}
|