package main import ( "context" "email-notification/config" "email-notification/route" "log" "net/http" "os" "github.com/joho/godotenv" ) func corsMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") // Ganti * dengan origin spesifik jika perlu w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, FETCH") w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization") // Untuk preflight request if r.Method == "OPTIONS" { w.WriteHeader(http.StatusOK) return } next.ServeHTTP(w, r) }) } func main() { log.Println("Email Notification Service") err := godotenv.Load() if err != nil { log.Fatal("Error loading .env file") } db := config.NewDatabase().WithContext(context.Background()) mux := http.NewServeMux() handlerWithCORS := corsMiddleware(mux) route.Route(db, mux) port := os.Getenv("PORT") http.ListenAndServe(":"+port, handlerWithCORS) }