Diff between 0265e80cb218bd1203f053e65ac48427a521e26b and 803b67d1ef6bdf7840fef3452e848a18c91c37fa

Changed Files

File Additions Deletions Status
internal/database/connect.go +1 -2 modified
internal/database/queries.go +33 -0 added
main.go +14 -5 modified
templates/index.tmpl +3 -1 modified

Full Patch

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 @@
 <html>
-  <img src="{{ .kuva}}" />
+  	{{range .Articles}}
+		{{ .Otsikko }}<br />
+	{{end}}
 </html>
\ No newline at end of file