summaryrefslogtreecommitdiff
path: root/cmd/api/main.go
blob: 1ce83c921709148fd3823ce4d867ee9a2bb00b24 (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
30
31
32
package main

import (
	"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/boozec/rahanna/internal/logger"
	"github.com/gorilla/mux"
	"github.com/rs/cors"
)

func main() {
	database.InitDb(os.Getenv("DATABASE_URL"))
	log := logger.InitLogger("rahanna.log")

	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("/play", middleware.AuthMiddleware(http.HandlerFunc(handlers.AllPlay))).Methods(http.MethodGet)
	r.Handle("/play/{id}", middleware.AuthMiddleware(http.HandlerFunc(handlers.GetGameId))).Methods(http.MethodGet)
	r.Handle("/enter-game", middleware.AuthMiddleware(http.HandlerFunc(handlers.EnterGame))).Methods(http.MethodPost)

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