2020-05-13 20:18:40 +01:00

56 lines
1.1 KiB
Go

package api
import (
"fmt"
"github.com/TicketsBot/GoPanel/database"
"github.com/TicketsBot/GoPanel/utils"
"github.com/gin-gonic/gin"
"github.com/rxdn/gdl/objects/guild"
)
type wrappedGuild struct {
Id uint64 `json:"id,string"`
Name string `json:"name"`
}
func GetGuilds(ctx *gin.Context) {
userId := ctx.Keys["userid"].(uint64)
fmt.Println("getting guilds")
guilds, err := database.Client.UserGuilds.Get(userId)
fmt.Println("got guilds")
if err != nil {
ctx.JSON(500, gin.H{
"success": false,
"error": err.Error(),
})
return
}
adminGuilds := make([]wrappedGuild, 0)
for _, g := range guilds {
fakeGuild := guild.Guild{
Id: g.GuildId,
Owner: g.Owner,
Permissions: int(g.UserPermissions),
}
if g.Owner {
fakeGuild.OwnerId = userId
}
isAdmin := make(chan bool)
fmt.Println("getting admin")
go utils.IsAdmin(fakeGuild, userId, isAdmin)
if <-isAdmin {
fmt.Println("got admin")
adminGuilds = append(adminGuilds, wrappedGuild{
Id: g.GuildId,
Name: g.Name,
})
}
}
ctx.JSON(200, adminGuilds)
}