38 lines
888 B
Go
38 lines
888 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"git.keircn.com/keiran/termbox/internal/db"
|
|
"git.keircn.com/keiran/termbox/internal/handlers"
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/labstack/echo/v4/middleware"
|
|
)
|
|
|
|
func main() {
|
|
db.InitDB()
|
|
defer db.Close()
|
|
|
|
handlers.InitEmailService()
|
|
|
|
e := echo.New()
|
|
|
|
e.Use(middleware.Logger())
|
|
e.Use(middleware.Recover())
|
|
e.Use(middleware.CORS())
|
|
|
|
e.GET("/", handlers.HandleRoot)
|
|
e.POST("/auth/register", handlers.HandleRegister)
|
|
e.POST("/auth/verify", handlers.HandleVerifyCode)
|
|
e.POST("/auth/login", handlers.HandleLogin)
|
|
|
|
protected := e.Group("/termail")
|
|
protected.Use(handlers.AuthMiddleware)
|
|
protected.POST("/send", handlers.HandleSendTermail)
|
|
protected.GET("/inbox", handlers.HandleGetInbox)
|
|
protected.POST("/:id/read", handlers.HandleMarkTermailRead)
|
|
protected.DELETE("/:id", handlers.HandleDeleteTermail)
|
|
|
|
log.Fatal(e.Start(":8080"))
|
|
}
|