func FetchPostCount(u *url.URL, h http.Header, _ interface{}, context *models.Context) (int, http.Header, interface{}, error) { query := request.GetQuery(u) query = context.OverrideQuery(query) accountId, err := request.GetId(u) if err != nil { return response.NewBadRequest(err) } c, err := models.Cache.Channel.ByGroupName(query.GroupName) if err != nil { return response.NewBadRequest(err) } // fetch user post count in koding channel q := request.NewQuery() q.AccountId = accountId q.Type = models.ChannelMessage_TYPE_POST q.GroupChannelId = c.Id cm := models.NewChannelMessage() count, err := cm.FetchTotalMessageCount(q) if err != nil { return response.NewBadRequest(err) } res := new(models.CountResponse) res.TotalCount = count return response.NewOK(res) }
func Count(u *url.URL, h http.Header, _ interface{}, ctx *models.Context) (int, http.Header, interface{}, error) { // check if user logged in or not if !ctx.IsLoggedIn() { return response.NewBadRequest(models.ErrNotLoggedIn) } q := request.GetQuery(u) qry := ctx.OverrideQuery(q) query := getUserChannelsQuery(qry) // add exempt clause if needed if !q.ShowExempt { query = query.Where("api.channel.meta_bits = ?", models.Safe) } var count int query = query.Count(&count) if query.Error != nil { return response.NewBadRequest(query.Error) } res := new(models.CountResponse) res.TotalCount = count return response.NewOK(res) }
func Count(u *url.URL, h http.Header, _ interface{}) (int, http.Header, interface{}, error) { channelId, err := request.GetURIInt64(u, "id") if err != nil { return response.NewBadRequest(err) } if channelId == 0 { return response.NewBadRequest(errors.New("channel id is not set")) } count, err := models.NewChannelMessageList().Count(channelId) if err != nil { return response.NewBadRequest(err) } res := new(models.CountResponse) res.TotalCount = count return response.NewOK(res) }