like.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package mint
  2. import (
  3. "net/http"
  4. "strconv"
  5. "time"
  6. "github.com/gin-gonic/gin"
  7. "github.com/go-pg/pg/v10"
  8. )
  9. type Like struct {
  10. Id int `form:"id" json:"id" binding:"required"`
  11. LikeType string `form:"like_type" json:"like_type"`
  12. ResourceId string `form:"resource_id" json:"resource_id"`
  13. ResourceType string `form:"resource_type" json:"resource_type"`
  14. UserId int `form:"user_id" json:"user_id"`
  15. Emoji string `form:"emoji" json:"emoji"`
  16. CreatedAt time.Time
  17. }
  18. //查询display a list of all Likes
  19. func LikesIndex(db *pg.DB) gin.HandlerFunc {
  20. return func(c *gin.Context) {
  21. //按照标题搜索
  22. resource_id := c.Query("resource_id")
  23. resource_type := c.Query("resource_type")
  24. // TODO 在这里进行db操作
  25. // Select user by primary key.
  26. var likes []Like
  27. err := db.Model(&likes).Column("id", "resource_id", "resource_type", "like_type", "user_id", "emoji").Where("resource_id = ?", resource_id).Where("resource_type = ?", resource_type).Select()
  28. if err != nil {
  29. panic(err)
  30. }
  31. c.JSON(http.StatusOK, gin.H{
  32. "message": likes,
  33. })
  34. }
  35. }
  36. //新建create a new Likes
  37. func LikesCreate(db *pg.DB) gin.HandlerFunc {
  38. return func(c *gin.Context) {
  39. var form Channel
  40. if err := c.ShouldBindJSON(&form); err != nil {
  41. c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
  42. return
  43. }
  44. _, err := db.Model(&form).Insert()
  45. if err != nil {
  46. panic(err)
  47. }
  48. c.JSON(http.StatusOK, gin.H{
  49. "status": "sucess",
  50. "data": form,
  51. })
  52. }
  53. }
  54. //删
  55. //delete a specific Likes
  56. func LikesDestroy(db *pg.DB) gin.HandlerFunc {
  57. return func(c *gin.Context) {
  58. id, err := strconv.Atoi(c.Param("id"))
  59. if err != nil {
  60. panic(err)
  61. }
  62. like := &Like{
  63. Id: id,
  64. }
  65. _, err = db.Model(like).WherePK().Delete()
  66. if err != nil {
  67. panic(err)
  68. }
  69. c.JSON(http.StatusOK, gin.H{
  70. "message": c.Param("id"),
  71. })
  72. }
  73. }