Blob: main.go
Blob id: c7caedf60f000c6710ee5f22e0e8a03b5ddcff0e
Size: 2.1 KB
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | package main import ( "uutissivusto/internal/auth" "uutissivusto/internal/database" "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" ) func main() { db, err := database.Connect() if err != nil { panic(err.Error()) } defer db.Close() router := gin.New() router.Use(gin.Logger()) router.Use(gin.Recovery()) router.Static("/static", "web/static/") router.LoadHTMLGlob("web/templates/*") // for auth middleware store := cookie.NewStore([]byte("salaisuus")) router.Use(sessions.Sessions("auth", store)) router.GET("/", func(c *gin.Context) { articles, err := database.GetArticles(db) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } categories, err := database.GetCategories(db) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.HTML(200, "index.html", gin.H{ "Articles": articles, "Categories": categories, }) }) router.GET("/:category", func(c *gin.Context) { category := c.Param("category") articles, err := database.GetCategoryArticles(db, category) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } categories, err := database.GetCategories(db) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.HTML(200, "index.html", gin.H{ "Articles": articles, "Categories": categories, }) }) router.GET("/artikkeli/:uri", func(c *gin.Context) { articleUri := c.Param("uri") article, err := database.GetArticle(db, articleUri) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } categories, err := database.GetCategories(db) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.HTML(200, "article.html", gin.H{ "Article": article, "Categories": categories, }) }) router.GET("/kirjaudu", auth.Login) router.POST("/kirjaudu", auth.LoginPost) router.GET("/logout", auth.Logout) authorized := router.Group("/admin") authorized.Use(auth.AuthRequired) authorized.GET("/luo", func(c *gin.Context) { c.JSON(200, gin.H{"msg": "mirri"}) }) router.Run(":8080") } |