Selaa lähdekoodia

🚧 add acticle

visuddhinanda 4 vuotta sitten
vanhempi
sitoutus
f9733f78f0
2 muutettua tiedostoa jossa 167 lisäystä ja 0 poistoa
  1. 14 0
      api/main.go
  2. 153 0
      api/mint/article.go

+ 14 - 0
api/main.go

@@ -28,6 +28,7 @@ func main() {
 	rt.PATCH("/demo/user/:id",mint.PatchDemo(db))
 	rt.DELETE("/demo/user/:id",mint.DeleteDemo(db))
 
+	//课程
 	//根据id查询课程 
 	rt.GET("/api/course/:cid",mint.GetCourse(db))
 	//输入标题查询符合条件的课程 title% 
@@ -41,6 +42,7 @@ func main() {
 	//修改课程表里的课的数量
 	rt.POST("/api/course/lessonnum/:cid/:num",mint.PostLessonNumInCousrse(db))
 
+	//课
 	//根据id查询课程
 	rt.GET("/api/lesson/:lid",mint.GetLesson(db))
 	//输入标题查询符合条件的课程 title% 
@@ -52,5 +54,17 @@ func main() {
 	//删除
 	rt.DELETE("/api/lesson/:lid",mint.DeleteLesson(db)) 
 
+	//文章
+	//根据id查询
+	rt.GET("/api/article/:aid",mint.GetArticle(db))
+	//输入标题查询符合条件的 title% 
+	rt.GET("/api/article/title/:title",mint.GetArticleByTitle(db))
+	//新建课
+	rt.PUT("/api/article",mint.PutArticle(db))
+	//修改
+	rt.POST("/api/article",mint.PostAritcle(db))//改
+	//删除
+	rt.DELETE("/api/article/:aid",mint.DeleteArticle(db))
+
 	rt.Run()
 }

+ 153 - 0
api/mint/article.go

@@ -0,0 +1,153 @@
+package mint
+
+import (
+	"net/http"
+	"strconv"
+	"fmt"
+	"github.com/gin-gonic/gin"
+	"github.com/go-pg/pg/v10"
+	"time"
+)
+/*
+    id SERIAL PRIMARY KEY,
+    uuid         VARCHAR (36) ,
+    title        VARCHAR (32) NOT NULL,
+    subtitle     VARCHAR (32),
+    summary      VARCHAR (255),
+    content      TEXT,
+    owner_id     INTEGER  NOT NULL,
+    owner        VARCHAR (36),
+    setting      JSON,
+    status       INTEGER   NOT NULL DEFAULT (10),
+	version     INTEGER NOT NULL DEFAULT (1),
+    deleted_at  TIMESTAMP,
+    created_at  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    updated_at  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
+
+*/
+type Article struct {
+	Id     int `form:"id" json:"id" binding:"required"`
+	Title string `form:"title" json:"title" binding:"required"`
+	Subtitle string `form:"subtitle" json:"subtitle" binding:"required"`
+	Summary string `form:"summary" json:"summary" binding:"required"`
+	Content string `form:"content" json:"content" binding:"required"`
+	OwnerId int
+	Setting string `form:"setting" json:"setting" binding:"required"`
+	Status int `form:"status" json:"status" binding:"required"`
+	Version int
+    DeletedAt time.Time
+    CreatedAt time.Time
+    UpdatedAt time.Time
+}
+//查询
+func GetArticle(db *pg.DB) gin.HandlerFunc {
+	return func(c *gin.Context) {
+		lid,err := strconv.ParseInt(c.Param("aid"),10,64)
+		if err != nil {
+			panic(err)
+		}
+		fmt.Println("get lesson")
+		// TODO 在这里进行db操作
+		// Select user by primary key.
+		article := &Article{Id: int(lid)}
+		err = db.Model(article).WherePK().Select()
+		if err != nil {
+			panic(err)
+		}
+		
+		c.JSON(http.StatusOK, gin.H{
+			"message": "article-"+article.Title,
+		})
+	}
+}
+
+//查询
+func GetArticleByTitle(db *pg.DB) gin.HandlerFunc {
+	return func(c *gin.Context) {
+		title:= c.Param("ltitle")
+
+		// TODO 在这里进行db操作
+		// Select user by primary key.
+		var articles []Article
+		err := db.Model(&articles).Column("id","title","subtitle").Where("title like ?",title+"%").Select()
+		if err != nil {
+			panic(err)
+		}
+		
+		c.JSON(http.StatusOK, gin.H{
+			"message": articles,
+		})
+	}
+}
+
+//新建-
+//PUT http://127.0.0.1:8080/api/lesson?title=lesson-one&course_id=1&status=10
+func PutArticle(db *pg.DB) gin.HandlerFunc{
+	return func(c *gin.Context){
+	
+		title := c.Query("title")
+		status1,err := strconv.ParseInt(c.Query("status"),10,64)
+		if err != nil {
+			panic(err)
+		}
+
+		newArticle := &Article{
+			Title:   title,
+			Status: int(status1),
+			OwnerId:1,
+		}
+		_, err = db.Model(newArticle).Insert()
+		if err != nil {
+			panic(err)
+		}
+
+		//修改完毕
+		c.JSON(http.StatusOK,gin.H{
+			"message":"",
+		})
+	}
+}
+
+
+//改
+func PostAritcle(db *pg.DB) gin.HandlerFunc{
+	return func(c *gin.Context){
+		var form Lesson
+
+		if err := c.ShouldBindJSON(&form); err != nil {
+			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
+			return
+		}
+
+		_,err := db.Model(&form).Column("title","subtitle","summary","status","content").WherePK().Update()
+		if err != nil {
+			panic(err)
+		}
+		c.JSON(http.StatusOK,gin.H{
+			"message":"update ok",
+		})
+	}
+}
+
+
+//删
+func DeleteArticle(db *pg.DB) gin.HandlerFunc{
+	return func(c *gin.Context){
+		id,err := strconv.ParseInt(c.Param("aid"),10,64)
+		if err != nil {
+			panic(err)
+		}
+		article := &Article{
+			Id:int(id),
+		}
+		//删之前获取 course_id
+		_, err = db.Model(article).WherePK().Delete()
+		if err != nil {
+			panic(err)
+		}
+		
+		c.JSON(http.StatusOK,gin.H{
+			"message":"delete "+c.Param("lid"),
+		})
+	}
+}