demo.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package mint
  2. import (
  3. "net/http"
  4. "strconv"
  5. "fmt"
  6. "github.com/gin-gonic/gin"
  7. "github.com/go-pg/pg/v10"
  8. )
  9. type Login struct {
  10. User string `form:"user" json:"user" binding:"required"`
  11. Password string `form:"password" json:"password" binding:"required"`
  12. }
  13. type User struct{
  14. Id int64
  15. Name string
  16. Emails []string
  17. }
  18. func LoginDemo(_db *pg.DB) gin.HandlerFunc {
  19. return func(c *gin.Context) {
  20. // TODO 在这里进行db操作
  21. var form Login
  22. if err := c.ShouldBindJSON(&form); err != nil {
  23. c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
  24. return
  25. }
  26. if form.User != "manu" || form.Password != "123" {
  27. c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
  28. return
  29. }
  30. c.JSON(http.StatusOK, gin.H{
  31. "message": "pong",
  32. })
  33. }
  34. }
  35. //查询
  36. func GetDemo(db *pg.DB) gin.HandlerFunc {
  37. return func(c *gin.Context) {
  38. userid,err := strconv.ParseInt(c.Param("id"),10,64)
  39. if err != nil {
  40. panic(err)
  41. }
  42. fmt.Println("get demo")
  43. // TODO 在这里进行db操作
  44. // Select user by primary key.
  45. user := &User{Id: userid}
  46. err = db.Model(user).WherePK().Select()
  47. if err != nil {
  48. panic(err)
  49. }
  50. c.JSON(http.StatusOK, gin.H{
  51. "message": "user-"+user.Name,
  52. })
  53. }
  54. }
  55. func PostDemo(db *pg.DB) gin.HandlerFunc{
  56. return func(c *gin.Context){
  57. name := c.DefaultQuery("name","guest")
  58. password := c.Query("password")
  59. c.JSON(http.StatusOK,gin.H{
  60. "message": "name="+name+" password="+password,
  61. })
  62. }
  63. }
  64. //增加
  65. func PutDemo(db *pg.DB) gin.HandlerFunc{
  66. return func(c *gin.Context){
  67. name := c.Query("name")
  68. email := c.Query("emails")
  69. user1 := &User{
  70. Name: name,
  71. Emails: []string{email},
  72. }
  73. _, err := db.Model(user1).Insert()
  74. if err != nil {
  75. panic(err)
  76. }
  77. c.JSON(http.StatusOK,gin.H{
  78. "message":"new-Ok- hello "+name,
  79. })
  80. }
  81. }
  82. //改
  83. func PatchDemo(db *pg.DB) gin.HandlerFunc{
  84. return func(c *gin.Context){
  85. userid,err := strconv.ParseInt(c.Param("id"),10,64)
  86. if err != nil {
  87. panic(err)
  88. }
  89. email := c.Query("emails")
  90. user1 := &User{
  91. Id: userid,
  92. Emails: []string{email},
  93. }
  94. //_, err = db.Model(user1).WherePK().Update()
  95. _, err = db.Model(user1).Set("emails = ?emails").Where("id = ?id").Update()
  96. if err != nil {
  97. panic(err)
  98. }
  99. c.JSON(http.StatusOK,gin.H{
  100. "message":"-patch="+email,
  101. })
  102. }
  103. }
  104. //删
  105. func DeleteDemo(db *pg.DB) gin.HandlerFunc{
  106. return func(c *gin.Context){
  107. userid,err := strconv.ParseInt(c.Param("id"),10,64)
  108. if err != nil {
  109. panic(err)
  110. }
  111. user1 := &User{
  112. Id: userid,
  113. }
  114. _, err = db.Model(user1).Where("id = ?", userid).Delete()
  115. if err != nil {
  116. panic(err)
  117. }
  118. c.JSON(http.StatusOK,gin.H{
  119. "message":"delete "+c.Param("id"),
  120. })
  121. }
  122. }