本文整理汇总了Golang中github.com/QLeelulu/goku.HttpContext.Json方法的典型用法代码示例。如果您正苦于以下问题:Golang HttpContext.Json方法的具体用法?Golang HttpContext.Json怎么用?Golang HttpContext.Json使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/QLeelulu/goku.HttpContext
的用法示例。
在下文中一共展示了HttpContext.Json方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: link_ajaxDel
// 删除link
func link_ajaxDel(ctx *goku.HttpContext) goku.ActionResulter {
var errs string
var ok = false
linkId, err := strconv.ParseInt(ctx.RouteData.Params["id"], 10, 64)
if err == nil {
user := ctx.Data["user"].(*models.User)
link, err := models.Link_GetById(linkId)
if err == nil {
// 只可以删除自己的链接
if link.UserId == user.Id {
err = models.Link_DelById(linkId)
if err == nil {
ok = true
}
} else {
errs = "不允许的操作"
}
}
}
if err != nil {
errs = err.Error()
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}
示例2: discover_loadMoreLink
// 加载更多link
func discover_loadMoreLink(ctx *goku.HttpContext) goku.ActionResulter {
page, err := strconv.Atoi(ctx.Get("page"))
success, hasmore := false, false
errorMsgs, html := "", ""
if err == nil && page > 1 {
ot := ctx.Get("o")
if ot == "" {
ot = "hot"
}
dt, _ := strconv.Atoi(ctx.Get("dt"))
links, _ := models.LinkForHome_GetByPage(ot, dt, page, golink.PAGE_SIZE)
if links != nil && len(links) > 0 {
ctx.ViewData["Links"] = models.Link_ToVLink(links, ctx)
vr := ctx.RenderPartial("loadmorelink", nil)
vr.Render(ctx, vr.Body)
html = vr.Body.String()
hasmore = len(links) >= golink.PAGE_SIZE
}
success = true
} else {
errorMsgs = "参数错误"
}
r := map[string]interface{}{
"success": success,
"errors": errorMsgs,
"html": html,
"hasmore": hasmore,
}
return ctx.Json(r)
}
示例3: link_incClick
// 增加链接的点击统计数
func link_incClick(ctx *goku.HttpContext) goku.ActionResulter {
var success bool
var errorMsgs string
id := ctx.Get("id")
if id == "" {
errorMsgs = "参数错误"
} else {
linkId, err := strconv.ParseInt(id, 10, 64)
if err == nil && linkId > 0 {
_, err = models.Link_IncClickCount(linkId, 1)
if err == nil {
success = true
}
}
if err != nil {
goku.Logger().Error(err.Error())
errorMsgs = err.Error()
}
}
r := map[string]interface{}{
"success": success,
"errors": errorMsgs,
}
return ctx.Json(r)
}
示例4: admin_banUser
func admin_banUser(ctx *goku.HttpContext) goku.ActionResulter {
var err error
var errs string
var ok = false
var userId, status int64
userId, err = strconv.ParseInt(ctx.Get("id"), 10, 64)
if err == nil {
status, err = strconv.ParseInt(ctx.Get("status"), 10, 64)
}
if err == nil {
_, err = models.User_Update(userId, map[string]interface{}{"Status": status})
}
if err != nil {
errs = err.Error()
} else {
ok = true
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}
示例5: favorite_loadMoreLink
func favorite_loadMoreLink(ctx *goku.HttpContext) goku.ActionResulter {
page, err := strconv.Atoi(ctx.Get("page"))
success, hasmore := false, false
errorMsgs, html := "", ""
if err == nil && page > 1 {
user := ctx.Data["user"].(*models.User)
links := models.FavoriteLink_ByUser(user.Id, page, golink.PAGE_SIZE)
if links != nil && len(links) > 0 {
ctx.ViewData["Links"] = models.Link_ToVLink(links, ctx)
vr := ctx.RenderPartial("loadmorelink", nil)
vr.Render(ctx, vr.Body)
html = vr.Body.String()
hasmore = len(links) >= golink.PAGE_SIZE
}
success = true
} else {
errorMsgs = "参数错误"
}
r := map[string]interface{}{
"success": success,
"errors": errorMsgs,
"html": html,
"hasmore": hasmore,
}
return ctx.Json(r)
}
示例6: link_search_loadMore
// 加载更多的搜索link
func link_search_loadMore(ctx *goku.HttpContext) goku.ActionResulter {
term, _ := url.QueryUnescape(ctx.Get("term"))
page, err := strconv.Atoi(ctx.Get("page"))
success, hasmore := false, false
errorMsgs, html := "", ""
if err == nil && page > 1 {
ls := utils.LinkSearch{}
searchResult, err := ls.SearchLink(term, page, golink.PAGE_SIZE)
if err == nil && searchResult.TimedOut == false && searchResult.HitResult.HitArray != nil {
if len(searchResult.HitResult.HitArray) > 0 {
links, _ := models.Link_GetByIdList(searchResult.HitResult.HitArray)
if links != nil && len(links) > 0 {
ctx.ViewData["Links"] = models.Link_ToVLink(links, ctx)
vr := ctx.RenderPartial("loadmorelink", nil)
vr.Render(ctx, vr.Body)
html = vr.Body.String()
hasmore = len(links) >= golink.PAGE_SIZE
}
}
success = true
}
} else {
errorMsgs = "参数错误"
}
r := map[string]interface{}{
"success": success,
"errors": errorMsgs,
"html": html,
"hasmore": hasmore,
}
return ctx.Json(r)
}
示例7: actionUpimg
/**
* 上传话题图片
*/
func actionUpimg(ctx *goku.HttpContext) goku.ActionResulter {
var ok = false
var errs string
topicId, err := strconv.ParseInt(ctx.RouteData.Params["id"], 10, 64)
if err == nil && topicId > 0 {
imgFile, header, err2 := ctx.Request.FormFile("topic-image")
err = err2
defer func() {
if imgFile != nil {
imgFile.Close()
}
}()
if err == nil {
ext := path.Ext(header.Filename)
if acceptFileTypes.MatchString(ext[1:]) == false {
errs = "错误的文件类型"
} else {
sid := strconv.FormatInt(topicId, 10)
saveDir := path.Join(ctx.RootDir(), golink.PATH_IMAGE_AVATAR, "topic", sid[len(sid)-2:])
err = os.MkdirAll(saveDir, 0755)
if err == nil {
saveName := fmt.Sprintf("%v_%v%v",
strconv.FormatInt(topicId, 36),
strconv.FormatInt(time.Now().UnixNano(), 36),
ext)
savePath := path.Join(saveDir, saveName)
var f *os.File
f, err = os.Create(savePath)
defer f.Close()
if err == nil {
_, err = io.Copy(f, imgFile)
if err == nil {
// update to db
_, err2 := models.Topic_UpdatePic(topicId, path.Join(sid[len(sid)-2:], saveName))
err = err2
if err == nil {
ok = true
}
}
}
}
}
}
} else if topicId < 1 {
errs = "参数错误"
}
if err != nil {
errs = err.Error()
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}
示例8: OnActionExecuting
func (tf *RequireLoginFilter) OnActionExecuting(ctx *goku.HttpContext) (ar goku.ActionResulter, err error) {
if u, ok := ctx.Data["user"]; !ok || u == nil {
if ctx.IsAjax() {
ar = ctx.Json(map[string]interface{}{
"success": false,
"needLogin": true,
"errors": "请先登陆",
})
} else {
ar = ctx.Redirect("/user/login?returnurl=" + url.QueryEscape(ctx.Request.RequestURI))
}
}
return
}
示例9: comment_LoadMore
/**
* 加载更多评论
*/
func comment_LoadMore(ctx *goku.HttpContext) goku.ActionResulter {
htmlObject := CommentHtml{""}
exceptIds := ctx.Get("except_ids")
fmt.Println("exceptIds:", exceptIds)
parentPath := ctx.Get("parent_path")
sortType := ctx.Get("sort_type")
topId, err1 := strconv.ParseInt(ctx.Get("top_parent_id"), 10, 64)
linkId, err2 := strconv.ParseInt(ctx.Get("link_id"), 10, 64)
if err1 == nil && err2 == nil {
htmlObject.Html = models.GetSortComments(exceptIds, parentPath, topId, linkId, sortType, "", true)
}
return ctx.Json(htmlObject)
}
示例10: checkUserStatus
// 检查用户的状态(禁言、封号等)
func checkUserStatus(user *models.User, ctx *goku.HttpContext) (ar goku.ActionResulter, err error) {
if user != nil && user.IsBaned() {
if ctx.Request.Method == "POST" {
if ctx.IsAjax() {
ar = ctx.Json(map[string]interface{}{
"success": false,
"needLogin": false,
"errors": "你已经被禁言。",
})
} else {
ctx.ViewData["errorMsg"] = "你已经被禁言"
ar = ctx.Render("error", nil)
}
}
}
return
}
示例11: link_ajax_comment
/**
* 提交评论并保存到数据库
*/
func link_ajax_comment(ctx *goku.HttpContext) goku.ActionResulter {
f := forms.NewCommentSubmitForm()
f.FillByRequest(ctx.Request)
var success bool
var errorMsgs, commentHTML string
var commentId int64
if ctx.RouteData.Params["id"] != f.Values()["link_id"] {
errorMsgs = "参数错误"
} else {
var errors []string
user := ctx.Data["user"].(*models.User)
success, commentId, errors = models.Comment_SaveForm(f, user.Id)
if errors != nil {
errorMsgs = strings.Join(errors, "\n")
} else {
linkId, _ := strconv.ParseInt(ctx.RouteData.Params["id"], 10, 64)
m := f.CleanValues()
cn := models.CommentNode{}
cn.Id = commentId
cn.LinkId = linkId
cn.UserId = user.Id
cn.Status = 1
cn.Content = m["content"].(string)
cn.ParentId = m["parent_id"].(int64)
cn.ChildrenCount = 0
cn.VoteUp = 1
cn.CreateTime = time.Now()
cn.UserName = user.Name
sortType := ""
var b *bytes.Buffer = new(bytes.Buffer)
cn.RenderSelfOnly(b, sortType)
commentHTML = b.String()
//models.GetPermalinkComment(linkId, commentId, "")
}
}
r := map[string]interface{}{
"success": success,
"errors": errorMsgs,
"commentHTML": commentHTML,
}
return ctx.Json(r)
}
示例12: admin_del_links
// 删除link
func admin_del_links(ctx *goku.HttpContext) goku.ActionResulter {
var errs string
var ok = false
linkId, err := strconv.ParseInt(ctx.Get("id"), 10, 64)
if err == nil {
err = models.Link_DelById(linkId)
}
if err != nil {
errs = err.Error()
} else {
ok = true
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}
示例13: admin_del_comments
// 删除comment
func admin_del_comments(ctx *goku.HttpContext) goku.ActionResulter {
var errs string
var ok = false
id, err := strconv.ParseInt(ctx.RouteData.Params["id"], 10, 64)
if err == nil {
err = models.Comment_DelById(id)
}
if err != nil {
errs = err.Error()
} else {
ok = true
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}
示例14: admin_topicEditName
/**
* 修改话题名称
*/
func admin_topicEditName(ctx *goku.HttpContext) goku.ActionResulter {
var ok = false
var errs, name string
topicId, err := strconv.ParseInt(ctx.Get("id"), 10, 64)
name = ctx.Request.FormValue("name")
if err == nil && topicId > 0 && name != "" {
_, err = models.Topic_UpdateName(topicId, name)
if err == nil {
ok = true
}
} else if topicId < 1 || name == "" {
errs = "参数错误"
}
if err != nil {
errs = err.Error()
}
r := map[string]interface{}{
"success": ok,
"name": name,
"errors": errs,
}
return ctx.Json(r)
}