package main import ( "auth_service/api/auth" "auth_service/api/users" "auth_service/database" "log" "net/http" "os" "github.com/joho/godotenv" ) func main() { err := godotenv.Load("auth_service.config") if err != nil { log.Fatal("Error loading .env file") } database.Init() database.Migrate() if os.Getenv("USERS_FILE") != "" { allusers := database.GetUsersFromFile(os.Getenv("USERS_FILE")) for i := range allusers { database.CreateUser(&allusers[i]) } } http.HandleFunc("/api/token", auth.Token) http.HandleFunc("/api/token/verify", auth.VerifyToken) http.HandleFunc("/api/access", auth.VerifyToken) if os.Getenv("ENABLE_SELF_REGISTER") == "true" { http.HandleFunc("/api/register", users.RegisterUser) } http.HandleFunc("/api/users", users.GetAllUsers) http.HandleFunc("/api/users/user", users.GetUser) http.HandleFunc("/api/users/password", users.ChangePassword) http.HandleFunc("/api/users/change", users.ChangeUser) http.HandleFunc("/api/users/del", users.DelUser) http.HandleFunc("/api/users/add", users.AddUser) if os.Getenv("ENABLE_TLS") == "true" { http.ListenAndServeTLS( os.Getenv("SERVER_ADDRESS")+":"+os.Getenv("SERVER_PORT"), os.Getenv("CERT_FILE"), os.Getenv("KEY_FILE"), nil, ) } else { http.ListenAndServe( os.Getenv("SERVER_ADDRESS")+":"+os.Getenv("SERVER_PORT"), nil, ) } }