Files
auth_service_go/main.go
T

56 lines
1.3 KiB
Go

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,
)
}
}