2017-01-19 01:00:09 +00:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"git.1750studios.com/AniNite/SocialDragon/database"
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
)
|
|
|
|
|
|
2017-01-20 15:00:56 +00:00
|
|
|
|
type Stats struct {
|
|
|
|
|
Count struct {
|
|
|
|
|
Items struct {
|
|
|
|
|
Inbox uint
|
|
|
|
|
Approved uint
|
|
|
|
|
Rejected uint
|
|
|
|
|
}
|
|
|
|
|
Users struct {
|
|
|
|
|
Blocked uint
|
|
|
|
|
Unblocked uint
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-19 01:00:09 +00:00
|
|
|
|
// 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
|
2017-01-20 04:13:18 +00:00
|
|
|
|
database.Db.Order("created_at ASC").Find(&ITs, "state = ?", database.Inbox)
|
|
|
|
|
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Inbox", "state": database.Inbox})
|
2017-01-19 01:00:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func renderAdminApproved(c *gin.Context) {
|
|
|
|
|
var ITs []database.Item
|
2017-01-20 04:13:18 +00:00
|
|
|
|
database.Db.Order("updated_at DESC").Find(&ITs, "state = ?", database.Approved)
|
|
|
|
|
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Approved", "state": database.Approved})
|
2017-01-19 01:00:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func renderAdminRejected(c *gin.Context) {
|
|
|
|
|
var ITs []database.Item
|
2017-01-20 04:13:18 +00:00
|
|
|
|
database.Db.Order("updated_at DESC").Find(&ITs, "state = ?", database.Rejected)
|
|
|
|
|
c.HTML(200, "admin.html", gin.H{"its": ITs, "title": "SocialDragon – Admin – Rejected", "state": database.Rejected})
|
2017-01-19 01:00:09 +00:00
|
|
|
|
}
|
2017-01-20 01:20:31 +00:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
}
|
2017-01-20 15:00:56 +00:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
}
|