payment gateway for rpn cn
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

151 lignes
3.1KB

  1. package main
  2. import (
  3. "database/sql"
  4. "log"
  5. "net/http"
  6. "text/template"
  7. _ "github.com/go-sql-driver/mysql"
  8. )
  9. type Employee struct {
  10. Id int
  11. Name string
  12. City string
  13. }
  14. func dbConn() (db *sql.DB) {
  15. dbDriver := Config.DB.Driver
  16. dbUser := Config.DB.User
  17. dbPass := Config.DB.Pass
  18. dbName := Config.DB.Schema
  19. db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@/"+dbName)
  20. if err != nil {
  21. panic(err.Error())
  22. }
  23. return db
  24. }
  25. var tmpl = template.Must(template.ParseGlob("form/*"))
  26. func Index(w http.ResponseWriter, r *http.Request) {
  27. db := dbConn()
  28. selDB, err := db.Query("SELECT * FROM Employee ORDER BY id DESC")
  29. if err != nil {
  30. panic(err.Error())
  31. }
  32. emp := Employee{}
  33. res := []Employee{}
  34. for selDB.Next() {
  35. var id int
  36. var name, city string
  37. err = selDB.Scan(&id, &name, &city)
  38. if err != nil {
  39. panic(err.Error())
  40. }
  41. emp.Id = id
  42. emp.Name = name
  43. emp.City = city
  44. res = append(res, emp)
  45. }
  46. tmpl.ExecuteTemplate(w, "Index", res)
  47. defer db.Close()
  48. }
  49. func Show(w http.ResponseWriter, r *http.Request) {
  50. db := dbConn()
  51. nId := r.URL.Query().Get("id")
  52. selDB, err := db.Query("SELECT * FROM Employee WHERE id=?", nId)
  53. if err != nil {
  54. panic(err.Error())
  55. }
  56. emp := Employee{}
  57. for selDB.Next() {
  58. var id int
  59. var name, city string
  60. err = selDB.Scan(&id, &name, &city)
  61. if err != nil {
  62. panic(err.Error())
  63. }
  64. emp.Id = id
  65. emp.Name = name
  66. emp.City = city
  67. }
  68. tmpl.ExecuteTemplate(w, "Show", emp)
  69. defer db.Close()
  70. }
  71. func New(w http.ResponseWriter, r *http.Request) {
  72. tmpl.ExecuteTemplate(w, "New", nil)
  73. }
  74. func Edit(w http.ResponseWriter, r *http.Request) {
  75. db := dbConn()
  76. nId := r.URL.Query().Get("id")
  77. selDB, err := db.Query("SELECT * FROM Employee WHERE id=?", nId)
  78. if err != nil {
  79. panic(err.Error())
  80. }
  81. emp := Employee{}
  82. for selDB.Next() {
  83. var id int
  84. var name, city string
  85. err = selDB.Scan(&id, &name, &city)
  86. if err != nil {
  87. panic(err.Error())
  88. }
  89. emp.Id = id
  90. emp.Name = name
  91. emp.City = city
  92. }
  93. tmpl.ExecuteTemplate(w, "Edit", emp)
  94. defer db.Close()
  95. }
  96. func Insert(w http.ResponseWriter, r *http.Request) {
  97. db := dbConn()
  98. if r.Method == "POST" {
  99. name := r.FormValue("name")
  100. city := r.FormValue("city")
  101. insForm, err := db.Prepare("INSERT INTO Employee(name, city) VALUES(?,?)")
  102. if err != nil {
  103. panic(err.Error())
  104. }
  105. insForm.Exec(name, city)
  106. log.Println("INSERT: Name: " + name + " | City: " + city)
  107. }
  108. defer db.Close()
  109. http.Redirect(w, r, "/", 301)
  110. }
  111. func Update(w http.ResponseWriter, r *http.Request) {
  112. db := dbConn()
  113. if r.Method == "POST" {
  114. name := r.FormValue("name")
  115. city := r.FormValue("city")
  116. id := r.FormValue("uid")
  117. insForm, err := db.Prepare("UPDATE Employee SET name=?, city=? WHERE id=?")
  118. if err != nil {
  119. panic(err.Error())
  120. }
  121. insForm.Exec(name, city, id)
  122. log.Println("UPDATE: Name: " + name + " | City: " + city)
  123. }
  124. defer db.Close()
  125. http.Redirect(w, r, "/", 301)
  126. }
  127. func Delete(w http.ResponseWriter, r *http.Request) {
  128. db := dbConn()
  129. emp := r.URL.Query().Get("id")
  130. delForm, err := db.Prepare("DELETE FROM Employee WHERE id=?")
  131. if err != nil {
  132. panic(err.Error())
  133. }
  134. delForm.Exec(emp)
  135. log.Println("DELETE")
  136. defer db.Close()
  137. http.Redirect(w, r, "/", 301)
  138. }