summaryrefslogtreecommitdiff
path: root/cmd/api/main.go
blob: 633f339db14213f16687efa640bc13a61f542eaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import (
	"log/slog"
	"net/http"
	"os"

	"github.com/boozec/rahanna/internal/api/database"
	"github.com/boozec/rahanna/internal/api/handlers"
	"github.com/boozec/rahanna/internal/api/middleware"
	"github.com/gorilla/mux"
	"github.com/rs/cors"
)

func main() {
	database.InitDb(os.Getenv("DATABASE_URL"))

	r := mux.NewRouter()
	r.HandleFunc("/auth/register", handlers.RegisterUser).Methods(http.MethodPost)
	r.HandleFunc("/auth/login", handlers.LoginUser).Methods(http.MethodPost)
	r.Handle("/play", middleware.AuthMiddleware(http.HandlerFunc(handlers.NewPlay))).Methods(http.MethodPost)
	r.Handle("/enter-game", middleware.AuthMiddleware(http.HandlerFunc(handlers.EnterGame))).Methods(http.MethodPost)

	slog.Info("Serving on :8080")
	handler := cors.AllowAll().Handler(r)
	if err := http.ListenAndServe(":8080", handler); err != nil {
		panic(err)
	}
}