Adds stats endpoint to get Item/User counts
This commit is contained in:
parent
c77ba5c611
commit
4bf7475d61
|
@ -44,6 +44,7 @@ func setupGin() {
|
||||||
router.GET("/admin/approved", renderAdminApproved)
|
router.GET("/admin/approved", renderAdminApproved)
|
||||||
router.GET("/admin/rejected", renderAdminRejected)
|
router.GET("/admin/rejected", renderAdminRejected)
|
||||||
|
|
||||||
|
router.GET("/admin/stats", stats)
|
||||||
router.POST("/admin/approve/:id", approveSnap)
|
router.POST("/admin/approve/:id", approveSnap)
|
||||||
router.POST("/admin/reject/:id", rejectSnap)
|
router.POST("/admin/reject/:id", rejectSnap)
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,20 @@ import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Stats struct {
|
||||||
|
Count struct {
|
||||||
|
Items struct {
|
||||||
|
Inbox uint
|
||||||
|
Approved uint
|
||||||
|
Rejected uint
|
||||||
|
}
|
||||||
|
Users struct {
|
||||||
|
Blocked uint
|
||||||
|
Unblocked uint
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Wall
|
// Wall
|
||||||
func renderHomepage(c *gin.Context) {
|
func renderHomepage(c *gin.Context) {
|
||||||
c.HTML(200, "index.html", gin.H{"title": "SocialDragon"})
|
c.HTML(200, "index.html", gin.H{"title": "SocialDragon"})
|
||||||
|
@ -44,3 +58,15 @@ func rejectSnap(c *gin.Context) {
|
||||||
database.Db.Save(&IT)
|
database.Db.Save(&IT)
|
||||||
c.JSON(200, IT)
|
c.JSON(200, IT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func stats(c *gin.Context) {
|
||||||
|
var ST Stats
|
||||||
|
database.Db.Begin()
|
||||||
|
database.Db.Model(database.Item{}).Where("state = ?", database.Inbox).Count(&ST.Count.Items.Inbox)
|
||||||
|
database.Db.Model(database.Item{}).Where("state = ?", database.Approved).Count(&ST.Count.Items.Approved)
|
||||||
|
database.Db.Model(database.Item{}).Where("state = ?", database.Rejected).Count(&ST.Count.Items.Rejected)
|
||||||
|
database.Db.Model(database.User{}).Where("blocked = ?", false).Count(&ST.Count.Users.Unblocked)
|
||||||
|
database.Db.Model(database.User{}).Where("blocked = ?", true).Count(&ST.Count.Users.Blocked)
|
||||||
|
database.Db.Commit()
|
||||||
|
c.JSON(200, ST)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue