예제 #1
0
파일: post.go 프로젝트: shwing/moledro
// PostIndex shows all post in a given sub
func PostIndex(c *gin.Context) {
	id, err := strconv.ParseUint(c.Param("id"), 0, 64)
	sub := models.Sub{}
	if err != nil {
		// if it is not an id, maybe it is a slug
		slug := models.Slugify(c.Param("id"))
		sub, err = models.GetSubBySlug(slug)
		if err != nil {
			c.JSON(http.StatusNotFound, gin.H{"status": "not found"})
			return
		}
	} else {
		sub, err = models.GetSubByID(id)
		if err != nil {
			c.JSON(http.StatusNotFound, gin.H{"status": "not found"})
			return
		}
	}

	posts, err := models.GetPosts(sub.ID)
	if err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"status": "bad request"})
		return
	}
	c.JSON(http.StatusOK, posts)
}
예제 #2
0
파일: sub.go 프로젝트: shwing/moledro
// SubShow shows a sub by id
func SubShow(c *gin.Context) {
	id, err := strconv.ParseUint(c.Param("id"), 0, 64)
	sub := models.Sub{}
	if err != nil {
		// if it is not an id, maybe it is a slug
		slug := models.Slugify(c.Param("id"))
		sub, err = models.GetSubBySlug(slug)
		if err != nil {
			c.JSON(http.StatusNotFound, gin.H{"status": "not found"})
			return
		}
	} else {
		sub, err = models.GetSubByID(id)
		if err != nil {
			c.JSON(http.StatusNotFound, gin.H{"status": "not found"})
			return
		}
	}

	c.JSON(http.StatusOK, sub)
}