本文整理匯總了Golang中github.com/caixw/typing/util.RenderJSON函數的典型用法代碼示例。如果您正苦於以下問題:Golang RenderJSON函數的具體用法?Golang RenderJSON怎麽用?Golang RenderJSON使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了RenderJSON函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: adminGetPosts
// @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)
}
示例2: adminPutCurrentTheme
// @api put /admin/api/themes/current 更改當前的主題
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam value string 新值
//
// @apiSuccess 200 OK
func adminPutCurrentTheme(w http.ResponseWriter, r *http.Request) {
v := &struct {
Value string `json:"value"`
}{}
if !util.ReadJSON(w, r, v) {
return
}
if len(v.Value) == 0 {
util.RenderJSON(w, http.StatusBadRequest, &util.ErrorResult{Message: "必須指定一個值!"}, nil)
return
}
if err := app.SetOption("theme", v.Value, false); err != nil {
logs.Error("adminPutTheme:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
if err := front.Switch(v.Value); err != nil {
logs.Error("adminPutTheme:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
lastUpdated()
util.RenderJSON(w, http.StatusNoContent, nil, nil)
}
示例3: adminSetPostState
func adminSetPostState(w http.ResponseWriter, r *http.Request, state int) {
id, ok := util.ParamID(w, r, "id")
if !ok {
return
}
p := &models.Post{ID: id}
if err := db.Select(p); err != nil {
logs.Error("adminSetPostState:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
// 不可能存在狀態值為0的文章,出現此值,表明數據庫沒有該條記錄
if p.State == models.PostStateAll {
util.RenderJSON(w, http.StatusNotFound, nil, nil)
return
}
p = &models.Post{ID: id, State: state}
if _, err := db.Update(p); err != nil {
logs.Error("adminSetPostState:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
if err := stats.UpdatePostsSize(); err != nil {
logs.Error("admin.adminSetPostState:", err)
}
lastUpdated()
util.RenderJSON(w, http.StatusCreated, "{}", nil)
}
示例4: adminPatchOption
// @api patch /admin/api/options/{key} 修改設置項的值
// @apiParam key string 需要修改項的key
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam value string 新值
// @apiExample json
// { "value": "abcdef" }
// @apiSuccess 204 no content
func adminPatchOption(w http.ResponseWriter, r *http.Request) {
key, ok := util.ParamString(w, r, "key")
if !ok {
return
}
if _, found := app.GetOption(key); !found {
util.RenderJSON(w, http.StatusNotFound, nil, nil)
return
}
data := &struct {
Value string `json:"value"`
}{}
if !util.ReadJSON(w, r, data) {
return
}
if err := app.SetOption(key, data.Value, false); err != nil {
logs.Error("adminPatchOption:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
lastUpdated()
util.RenderJSON(w, http.StatusNoContent, nil, nil)
}
示例5: adminChangePassword
// @api put /admin/api/password 理發密碼
// @apiGroup admin
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam old string 舊密碼
// @apiParam new string 新密碼
// @apiExample json
// {
// "old": "123",
// "new": "456"
// }
//
// @apiSuccess 204 no content
func adminChangePassword(w http.ResponseWriter, r *http.Request) {
l := &struct {
Old string `json:"old"`
New string `json:"new"`
}{}
if !util.ReadJSON(w, r, l) {
return
}
errs := &util.ErrorResult{Message: "提交數據錯誤", Detail: map[string]string{}}
if len(l.New) == 0 {
errs.Add("new", "新密碼不能為空")
}
if opt.Password != app.Password(l.Old) {
errs.Add("old", "舊密碼錯誤")
}
if len(errs.Detail) > 0 {
util.RenderJSON(w, http.StatusBadRequest, errs, nil)
return
}
o := &models.Option{Key: "password", Value: app.Password(l.New)}
if _, err := db.Update(o); err != nil {
logs.Error("adminChangePassword:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
opt.Password = o.Value
util.RenderJSON(w, http.StatusNoContent, nil, nil)
}
示例6: adminPutSitemap
// @api put /admin/api/feed/sitemap 重新生成sitemap
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
//
// @apiSuccess 200 Ok
func adminPutSitemap(w http.ResponseWriter, r *http.Request) {
err := feed.BuildSitemap()
if err != nil {
logs.Error(err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
util.RenderJSON(w, http.StatusOK, "{}", nil)
}
示例7: adminPostMedia
// @api post /admin/api/media 上傳媒體文件
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam media file 文件內容
//
// @apiSuccess 201 文件上傳成功
func adminPostMedia(w http.ResponseWriter, r *http.Request) {
files, err := u.Do("media", r)
if err != nil {
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
lastUpdated()
util.RenderJSON(w, http.StatusCreated, map[string]interface{}{"media": files[0]}, nil)
}
示例8: adminPutTag
// @api put /admin/api/tags/{id} 修改某id的標簽內容
// @apiParam id int 需要修改的標簽id
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam name string 唯一名稱
// @apiParam title string 顯示的標題
// @apiParam description string 描述信息,可以是html
// @apiExample json
// {
// "name": "tag-1",
// "title":"標簽1",
// "description": "<h1>desc</h1>"
// }
//
// @apiSuccess 204 no content
//
// @apiError 400 bad request
// @apiParam message string 錯誤信息
// @apiParam detail array 說細的錯誤信息,用於描述哪個字段有錯
// @apiExample json
// {
// "message": "格式錯誤",
// "detail":[
// {"title":"不能包含特殊字符"},
// {"name": "已經存在同名"}
// ]
// }
func adminPutTag(w http.ResponseWriter, r *http.Request) {
t := &models.Tag{}
if !util.ReadJSON(w, r, t) {
return
}
// 檢測是否為空
errs := &util.ErrorResult{Message: "格式錯誤", Detail: map[string]string{}}
if len(t.Name) == 0 {
errs.Add("name", "不能為空")
}
if len(t.Title) == 0 {
errs.Add("title", "不能為空")
}
if errs.HasErrors() {
util.RenderJSON(w, http.StatusBadRequest, errs, nil)
return
}
var ok bool
t.ID, ok = util.ParamID(w, r, "id")
if !ok {
return
}
// 檢測是否存在同名
titleExists, nameExists, err := tagIsExists(t)
if err != nil {
logs.Error("adminPutTag:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
if titleExists {
errs.Add("title", "與已有標簽同名")
}
if nameExists {
errs.Add("name", "與已有標簽同名")
}
if errs.HasErrors() {
util.RenderJSON(w, http.StatusBadRequest, errs, nil)
return
}
if _, err := db.Update(t); err != nil {
logs.Error("adminPutTag:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
lastUpdated()
util.RenderJSON(w, http.StatusNoContent, nil, nil)
}
示例9: adminGetPost
// @api get /admin/api/posts/{id} 獲取某一篇文章的詳細內容
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
//
// @apiSuccess 200 OK
// @apiParam id int id值
// @apiParam name string 唯一名稱,可以為空
// @apiParam title string 標題
// @apiParam summary string 文章摘要
// @apiParam content string 文章內容
// @apiParam state int 狀態
// @apiParam order int 排序
// @apiParam created int 創建時間
// @apiParam modified int 修改時間
// @apiParam template string 所使用的模板
// @apiParam allowPing bool 允許ping
// @apiParam allowComment bool 允許評論
// @apiParam tags array 關聯的標簽。
func adminGetPost(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("adminGetPost:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
tags, err := getPostTags(id)
if err != nil {
logs.Error("adminGetPost:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
obj := &struct {
ID int64 `json:"id"`
Name string `json:"name"`
Title string `json:"title"`
Summary string `json:"summary"`
Content string `json:"content"`
State int `json:"state"`
Order int `json:"order"`
Created int64 `json:"created"`
Modified int64 `json:"modified"`
Template string `json:"template"`
AllowPing bool `json:"allowPing"`
AllowComment bool `json:"allowComment"`
Tags []*models.Tag `json:"tags"`
}{
ID: p.ID,
Name: p.Name,
Title: p.Title,
Summary: p.Summary,
Content: p.Content,
State: p.State,
Order: p.Order,
Created: p.Created,
Modified: p.Modified,
Template: p.Template,
AllowPing: p.AllowPing,
AllowComment: p.AllowComment,
Tags: tags,
}
util.RenderJSON(w, http.StatusOK, obj, nil)
}
示例10: adminGetTag
// @api get /admin/api/tags/{id} 獲取指定id的標簽內容
// @apiParam id int 標簽的id
// @apiGroup admin
//
// @apiSuccess 200 OK
// @apiParam id int 標簽的id
// @apiParam name string 標簽的唯一名稱,可能為空
// @apiParam title string 標簽名稱
// @apiParam description string 對標簽的詳細描述
func adminGetTag(w http.ResponseWriter, r *http.Request) {
id, ok := util.ParamID(w, r, "id")
if !ok {
return
}
t := &models.Tag{ID: id}
if err := db.Select(t); err != nil {
logs.Error("adminGetTag:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
util.RenderJSON(w, http.StatusOK, t, nil)
}
示例11: adminPostTag
// @api post /admin/api/tags 添加新標簽
// @apiGroup admin
//
// @apiRequest json
// @apiHeader Authorization xxx
// @apiParam name string 唯一名稱
// @apiParam title string 顯示的標題
// @apiParam description string 描述信息,可以是html
// @apiExample json
// {
// "name": "tag-1",
// "title":"標簽1",
// "description": "<h1>desc</h1>"
// }
//
// @apiSuccess 201 created
// @apiError 400 bad request
// @apiParam message string 錯誤信息
// @apiParam detail array 說細的錯誤信息,用於描述哪個字段有錯
// @apiExample json
// {
// "message": "格式錯誤",
// "detail":[
// {"title":"不能包含特殊字符"},
// {"name": "已經存在同名"}
// ]
// }
func adminPostTag(w http.ResponseWriter, r *http.Request) {
t := &models.Tag{}
if !util.ReadJSON(w, r, t) {
return
}
errs := &util.ErrorResult{Message: "格式錯誤"}
if t.ID != 0 {
errs.Add("id", "不允許的字段")
}
if len(t.Title) == 0 {
errs.Add("title", "不能為空")
}
if len(t.Name) == 0 {
errs.Add("name", "不能為空")
}
if errs.HasErrors() {
util.RenderJSON(w, http.StatusBadRequest, errs, nil)
return
}
t.ID = 0
titleExists, nameExists, err := tagIsExists(t)
if err != nil {
logs.Error("adminPostTag:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
if titleExists {
errs.Add("title", "已有同名字體段")
}
if nameExists {
errs.Add("name", "已有同名字體段")
}
if errs.HasErrors() {
util.RenderJSON(w, http.StatusBadRequest, errs, nil)
return
}
if _, err := db.Insert(t); err != nil {
logs.Error("adminPostTag:", err)
util.RenderJSON(w, http.StatusInternalServerError, nil, nil)
return
}
lastUpdated()
util.RenderJSON(w, http.StatusCreated, "{}", nil)
}
示例12: adminGetPostsCount
// @api get /admin/api/posts/count 獲取各種狀態下的文章數量
// @apiGroup admin
//
// @apiSuccess 200 OK
// @apiParam all int 評論的總量
// @apiParam draft int 等待審核的評論數量
// @apiParam published int 垃圾評論的數量
func adminGetPostsCount(w http.ResponseWriter, r *http.Request) {
data := map[string]int{
"all": stats.PostsSize,
"draft": stats.DraftPostsSize,
"published": stats.PublishedPostsSize,
}
util.RenderJSON(w, http.StatusOK, data, nil)
}
示例13: adminGetCommentsCount
// @api get /admin/api/comments/count 獲取各種狀態下的評論數量
// @apiGroup admin
//
// @apiSuccess 200 OK
// @apiParam all int 評論的總量
// @apiParam waiting int 等待審核的評論數量
// @apiParam spam int 垃圾評論的數量
// @apiParam approved int 通過審核的評論數量
func adminGetCommentsCount(w http.ResponseWriter, r *http.Request) {
data := map[string]int{
"waiting": stats.WaitingCommentsSize,
"spam": stats.SpamCommentsSize,
"approved": stats.ApprovedCommentsSize,
"all": stats.CommentsSize,
}
util.RenderJSON(w, http.StatusOK, data, nil)
}
示例14: loginHandlerFunc
// 驗證後台登錄信息
func loginHandlerFunc(f func(w http.ResponseWriter, r *http.Request)) http.Handler {
h := func(w http.ResponseWriter, r *http.Request) {
if r.Header.Get("Authorization") != token {
util.RenderJSON(w, http.StatusUnauthorized, nil, nil)
return
}
f(w, r)
}
return http.HandlerFunc(h)
}
示例15: adminGetOption
// @api get /admin/api/options/{key} 獲取設置項的值,不能獲取password字段。
// @apiParam key string 名稱
//
// @apiRequest json
// @apiHeader Authorization xxx
//
// @apiSuccess 200 ok
// @api value any 設置項的值
// @apiExample json
// { "value": "20" }
func adminGetOption(w http.ResponseWriter, r *http.Request) {
key, ok := util.ParamString(w, r, "key")
if !ok {
return
}
if key == "password" {
util.RenderJSON(w, http.StatusNotFound, nil, nil)
return
}
val, found := app.GetOption(key)
if !found {
util.RenderJSON(w, http.StatusNotFound, nil, nil)
return
}
util.RenderJSON(w, http.StatusOK, map[string]interface{}{"value": val}, nil)
}