aboutsummaryrefslogtreecommitdiff
path: root/routes/routes.go
blob: 873c6c9f1a2cc7628d72c6dd393f22d40f7b6bec (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package routes

import (
	"embed"
	"html/template"
	"net/http"

	"git.sr.ht/~gabrielgio/midr/controller"
	"git.sr.ht/~gabrielgio/midr/db"
	"git.sr.ht/~gabrielgio/midr/worker"
	"github.com/gin-gonic/gin"
)

func HandleRequests(f embed.FS) {

	models := db.EntryModel{DB: db.DB}
	worker := worker.NewWorkder()

	env := &controller.Env{
		Entries: models,
		Worker:  worker,
	}

	env.StartScheduler()

	r := gin.Default()

	templ := template.Must(template.New("").ParseFS(f, "templates/*.tmpl"))
	r.SetHTMLTemplate(templ)
	r.StaticFS("/p", http.FS(f))

	r.GET("/", env.GetEntries)
	r.GET("/entries/", env.GetEntries)
	r.GET("entries/createEntry", env.GetEntry)
	r.POST("entries/", env.CreateEntry)
	r.GET("entries/:id", env.GetEntry)
	r.POST("entries/:id", env.UpdateEntry)
	r.DELETE("entries/:id", env.DeleteEntry)
	r.GET("jobs/", env.GetJobs)
	r.Run(":8000")
}