otfe/app.go

58 lines
1.4 KiB
Go

package main
import (
"fmt"
"log"
"net/http"
c "git.1248.nz/1248/Otfe/controllers"
a "git.1248.nz/1248/Otfe/misc/auth"
"git.1248.nz/1248/Otfe/misc/helpers"
"github.com/husobee/vestigo"
)
func main() {
fmt.Println("Starting")
log.Fatal(http.ListenAndServe(":8080", router()))
}
func router() *vestigo.Router {
router := vestigo.NewRouter()
var static c.Static
router.Get("/", a.User(static.Home))
router.Get("/public/*", http.FileServer(
http.Dir(helpers.GetAssets())).ServeHTTP)
//User routes
var user c.User
router.Get("/user", c.User{}.Index)
router.Get("/user/:username", a.Perm(user.Show, user.ShowSelf,
"user.show"))
router.Get("/user/new", user.New)
router.Post("/user/new", user.Create)
router.Get("/user/:username/edit", user.Edit)
router.Post("/user/:username/edit", user.Update)
router.Post("/user/:username/delete", user.Delete)
router.Get("/register", user.New)
//Session routes
var session c.Session
router.Get("/login", session.New)
router.Post("/login", session.Create)
router.Post("/logout", session.Delete)
//Post routes
router.Get("/post", c.Post{}.Index)
router.Get("/user/:id", c.Post{}.Show)
router.Get("/post/new", c.Post{}.New)
router.Post("/post/new", c.Post{}.Create)
router.Get("/post/:id/edit", c.Post{}.Edit)
router.Post("/post/:id/edit", c.Post{}.Update)
router.Post("/post/:id/delete", c.Post{}.Delete)
return router
}