ShortDragon/internal/web/router.go
2021-03-08 01:17:13 +01:00

36 lines
693 B
Go

package web
import (
"net"
"net/http"
"os"
"github.com/gin-gonic/gin"
"github.com/spf13/viper"
)
// InitRouter starts the router
func InitRouter() {
router := gin.Default()
router.POST("/e/", encode)
router.GET("/r/:short", redirect)
router.GET("/d/:short", decode)
router.GET("/i/:short", info)
router.GET("/f/:short", getFile)
if viper.GetBool("UseSocket") {
listener, err := net.Listen("unix", viper.GetString("BindSocket"))
if err != nil {
return
}
os.Chmod(viper.GetString("BindSocket"), 0775)
defer listener.Close()
defer os.Remove(viper.GetString("BindSocket"))
http.Serve(listener, router)
} else {
router.Run(viper.GetString("BindAddress"))
}
}