From 803b67d1ef6bdf7840fef3452e848a18c91c37fa Mon Sep 17 00:00:00 2001 From: Luka Hietala Date: Mon, 17 Nov 2025 13:30:57 +0200 Subject: [PATCH] =?UTF-8?q?listaa=20artikkelin=20dbst=C3=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/database/connect.go | 3 +-- internal/database/queries.go | 33 +++++++++++++++++++++++++++++++++ main.go | 19 ++++++++++++++----- templates/index.tmpl | 4 +++- 4 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 internal/database/queries.go diff --git a/internal/database/connect.go b/internal/database/connect.go index bd7b279..2ced491 100644 --- a/internal/database/connect.go +++ b/internal/database/connect.go @@ -7,11 +7,10 @@ import ( ) func Connect() (*sql.DB, error) { - db, err := sql.Open("mysql", "root:@/tyoharjoittelu") + db, err := sql.Open("mysql", "root:@/uutissivusto") if err != nil { return nil, err } - defer db.Close() err = db.Ping() if err != nil { diff --git a/internal/database/queries.go b/internal/database/queries.go new file mode 100644 index 0000000..3f1abb9 --- /dev/null +++ b/internal/database/queries.go @@ -0,0 +1,33 @@ +package database + +import ( + "database/sql" + + _ "github.com/go-sql-driver/mysql" +) + +type Article struct { + Id int + Otsikko string + Teksti string + Kuva string + Kategoria string +} + +func GetArticles(db *sql.DB) ([]Article, error) { + rows, err := db.Query("SELECT * FROM uutinen") + if err != nil { + return nil, err + } + articles := []Article{} + + for rows.Next() { + article := Article{} + if err := rows.Scan(&article.Id, &article.Otsikko, &article.Teksti, &article.Kuva, &article.Kategoria); err != nil { + return nil, err + } + articles = append(articles, article) + } + + return articles, nil +} diff --git a/main.go b/main.go index 2f93c15..3533897 100644 --- a/main.go +++ b/main.go @@ -1,25 +1,34 @@ package main import ( - "net/http" "uutissivusto/internal/database" "github.com/gin-gonic/gin" ) func main() { - _, err := database.Connect() + db, err := database.Connect() if err != nil { panic(err.Error()) } + defer db.Close() router := gin.Default() router.LoadHTMLGlob("templates/*") - router.GET("/kisu", func(c *gin.Context) { - c.HTML(http.StatusOK, "index.tmpl", gin.H{ - "kuva": "https://cataas.com/cat/fQCYUQNMnhPBN4jb?position=center", + + router.GET("/", func(c *gin.Context) { + articles, err := database.GetArticles(db) + if err != nil { + c.JSON(500, gin.H{"error": err.Error()}) + return + } + + c.HTML(200, "index.tmpl", gin.H{ + "Articles": articles, }) }) + router.Run() + } diff --git a/templates/index.tmpl b/templates/index.tmpl index 7a77291..80435be 100644 --- a/templates/index.tmpl +++ b/templates/index.tmpl @@ -1,3 +1,5 @@ - + {{range .Articles}} + {{ .Otsikko }}
+ {{end}} \ No newline at end of file -- 2.47.3