/
db_controllers.go
64 lines (51 loc) · 1.08 KB
/
db_controllers.go
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
package controllers
import (
"database/sql"
"github.com/gin-gonic/gin"
"net/http"
"werf_guide_app/internal/services"
_ "github.com/go-sql-driver/mysql"
)
func RememberController(c *gin.Context) {
dbType, dbPath := services.GetDBCredentials()
db, err := sql.Open(dbType, dbPath)
if err != nil {
panic(err)
}
answer := c.Query("answer")
name := c.Query("name")
_, err = db.Exec("INSERT INTO talkers (answer, name) VALUES (?, ?)",
answer, name)
if err != nil {
panic(err)
}
c.String(http.StatusOK, "Got it.\n")
defer db.Close()
}
func SayController(c *gin.Context) {
dbType, dbPath := services.GetDBCredentials()
db, err := sql.Open(dbType, dbPath)
if err != nil {
panic(err)
}
result, err := db.Query("SELECT * FROM talkers")
if err != nil {
panic(err)
}
count := 0
for result.Next() {
count++
var id int
var answer string
var name string
err = result.Scan(&id, &answer, &name)
if err != nil {
panic(err)
}
c.String(http.StatusOK, answer+", "+name+"!\n")
break
}
if count == 0 {
c.String(http.StatusOK, "I have nothing to say.\n")
}
}