SocialDragon/socialdragon/webapp.go

73 lines
2.1 KiB
Go
Raw Normal View History

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.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})
}
func renderAdminApproved(c *gin.Context) {
var ITs []database.Item
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})
}
func renderAdminRejected(c *gin.Context) {
var ITs []database.Item
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})
}
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.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)
}