package main import ( "git.1750studios.com/AniNite/SocialDragon/database" "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 func renderHomepage(c *gin.Context) { c.HTML(200, "index.html", gin.H{"title": "SocialDragon"}) } // Admin func renderAdminInbox(c *gin.Context) { var ITs []database.Item database.Db.Where("state = ?", database.Inbox).Order("created_at ASC").Find(&ITs) c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Inbox", "state": database.Inbox}) } func renderAdminApproved(c *gin.Context) { var ITs []database.Item id := c.DefaultQuery("id", "0") if id == "0" { database.Db.Where("state = ?", database.Approved).Order("updated_at DESC").Limit(20).Find(&ITs) c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Approved", "state": database.Approved}) } else { database.Db.Where("state = ? and id < ?", database.Approved, id).Order("updated_at DESC").Limit(20).Find(&ITs) c.JSON(200, ITs) } } func renderAdminRejected(c *gin.Context) { var ITs []database.Item id := c.DefaultQuery("id", "0") if id == "0" { database.Db.Where("state = ?", database.Rejected).Order("updated_at DESC").Limit(20).Find(&ITs) c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Rejected", "state": database.Rejected}) } else { database.Db.Where("state = ? and id < ?", database.Rejected, id).Order("updated_at DESC").Limit(20).Find(&ITs) c.JSON(200, ITs) } } func approveSnap(c *gin.Context) { var IT database.Item database.Db.First(&IT, c.Param("id")) IT.State = database.Approved database.Db.Save(&IT) c.JSON(200, IT) } func rejectSnap(c *gin.Context) { var IT database.Item database.Db.First(&IT, c.Param("id")) IT.State = database.Rejected database.Db.Save(&IT) c.JSON(200, IT) } func stats(c *gin.Context) { var ST Stats 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) c.JSON(200, ST) } func listSnaps(c *gin.Context) { var ITs []database.Item database.Db.Where("state = ?", database.Approved).Order("updated_at DESC").Limit(5).Find(&ITs) c.JSON(200, ITs) }