// @api get /admin/api/posts 获取文章列表 // @apiQuery page int 页码,从0开始 // @apiQuery size int 显示尺寸 // @apiQuery state int 状态 // @apiGroup admin // // @apiSuccess ok 200 // @apiParam count int 符合条件的所有记录数量,不包含page和size条件 // @apiParam posts array 当前页的记录数量 func adminGetPosts(w http.ResponseWriter, r *http.Request) { var page, size, state int var ok bool if state, ok = util.QueryInt(w, r, "state", models.CommentStateAll); !ok { return } sql := db.SQL().Table("#posts") if state != models.PostStateAll { sql.And("{state}=?", state) } count, err := sql.Count(true) if err != nil { logs.Error("adminGetPosts:", err) util.RenderJSON(w, http.StatusInternalServerError, nil, nil) return } if page, ok = util.QueryInt(w, r, "page", 0); !ok { return } if size, ok = util.QueryInt(w, r, "size", opt.PageSize); !ok { return } sql.Limit(size, page*size) maps, err := sql.SelectMapString(true, "*") if err != nil { logs.Error("adminGetPosts:", err) util.RenderJSON(w, http.StatusInternalServerError, nil, nil) return } util.RenderJSON(w, http.StatusOK, map[string]interface{}{"count": count, "posts": maps}, nil) }
// @api get /api/posts/{id}/comments // @apiQuery page int 页码 // @apiGroup front // // @apiSuccess 200 OK // @apiParam comments array 当前页的评论 func frontGetPostComments(w http.ResponseWriter, r *http.Request) { id, ok := util.ParamID(w, r, "id") if !ok { return } p := &models.Post{ID: id} if err := db.Select(p); err != nil { logs.Error("frontGetPostComments:", err) util.RenderJSON(w, http.StatusInternalServerError, nil, nil) return } if p.State != models.PostStatePublished { util.RenderJSON(w, http.StatusNotFound, nil, nil) return } sql := db.Where("{postID}=?", id). And("{state}=?", models.CommentStateApproved). Table("#comments") var page int if page, ok = util.QueryInt(w, r, "page", 0); !ok { return } sql.Limit(opt.PageSize, page*opt.PageSize) maps, err := sql.SelectMap(true, "*") if err != nil { logs.Error("frontGetComments:", err) util.RenderJSON(w, http.StatusInternalServerError, nil, nil) return } util.RenderJSON(w, http.StatusOK, map[string]interface{}{"comments": maps}, nil) }