aboutsummaryrefslogtreecommitdiff
path: root/router/router.go
blob: 7845b4168e711d9a4b88586d88c39e7e8e3dd777 (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
package router

import (
	"paperchan.club/controllers"
	"github.com/gofiber/fiber/v2"
	"github.com/gofiber/fiber/v2/middleware/limiter"
	"time"
	"strings"
)

func SetRoutes(app *fiber.App) {
	app.Get("/", controllers.ThreadList)
	app.Get("/thread/:id", controllers.Thread)
	app.Post("/api/post", rateLimiter, controllers.Publish)
	app.Delete("/api/post", controllers.Delete)
}

var rateLimiter = limiter.New(limiter.Config{
	Max: 5,
	Expiration: 10*time.Minute,
	KeyGenerator: func(c *fiber.Ctx) string {
		return c.IP()+" "+strings.Join(c.IPs()," ")
	},
})