magmise/api/main.go

30 lines
715 B
Go
Raw Permalink Normal View History

2022-09-09 06:10:34 +00:00
package main
import (
"magmise/controllers"
"magmise/models"
"net/http"
2022-09-10 13:22:07 +00:00
"os"
2022-09-09 06:10:34 +00:00
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
2022-09-10 13:22:07 +00:00
"github.com/gorilla/csrf"
2022-09-09 06:10:34 +00:00
)
func main() {
2022-09-10 13:21:20 +00:00
models.Store()
2022-09-09 06:10:34 +00:00
models.Init()
var user controllers.User
2022-09-21 01:24:25 +00:00
var container controllers.Container
2022-09-09 06:10:34 +00:00
r := chi.NewRouter()
r.Use(middleware.Logger)
r.Handle("/*", http.FileServer(http.Dir("/api/www")))
2022-09-21 01:24:25 +00:00
r.Get("/api/user/{username}", user.Get)
r.Post("/api/user/{username}", user.Create)
r.Post("/api/login", controllers.Login)
r.Post("/api/logout", controllers.Logout)
r.HandleFunc("/api/container/{name}/logs", container.Logs)
2022-09-10 13:22:07 +00:00
CSRF := csrf.Protect([]byte(os.Getenv("CSRFKEY")))
http.ListenAndServe(":8080", CSRF(r))
2022-09-09 06:10:34 +00:00
}