diff --git a/app/http/endpoints/api/claimsettings.go b/app/http/endpoints/api/claimsettings.go new file mode 100644 index 0000000..272c617 --- /dev/null +++ b/app/http/endpoints/api/claimsettings.go @@ -0,0 +1,20 @@ +package api + +import ( + "github.com/TicketsBot/GoPanel/database" + "github.com/gin-gonic/gin" +) + +func GetClaimSettings(ctx *gin.Context) { + guildId := ctx.Keys["guildid"].(uint64) + + settings, err := database.Client.ClaimSettings.Get(guildId); if err != nil { + ctx.AbortWithStatusJSON(500, gin.H{ + "success": false, + "error": err.Error(), + }) + return + } + + ctx.JSON(200, settings) +} diff --git a/app/http/endpoints/api/settings.go b/app/http/endpoints/api/settings.go index c56f008..edeaa76 100644 --- a/app/http/endpoints/api/settings.go +++ b/app/http/endpoints/api/settings.go @@ -21,7 +21,6 @@ type Settings struct { func GetSettingsHandler(ctx *gin.Context) { guildId := ctx.Keys["guildid"].(uint64) - ctx.Done() var prefix, welcomeMessage string var ticketLimit uint8 var category, archiveChannel uint64 diff --git a/app/http/endpoints/api/updateclaimsettings.go b/app/http/endpoints/api/updateclaimsettings.go new file mode 100644 index 0000000..fcbe17f --- /dev/null +++ b/app/http/endpoints/api/updateclaimsettings.go @@ -0,0 +1,40 @@ +package api + +import ( + dbclient "github.com/TicketsBot/GoPanel/database" + "github.com/TicketsBot/database" + "github.com/gin-gonic/gin" +) + +func PostClaimSettings(ctx *gin.Context) { + guildId := ctx.Keys["guildid"].(uint64) + + var settings database.ClaimSettings + if err := ctx.BindJSON(&settings); err != nil { + ctx.AbortWithStatusJSON(400, gin.H{ + "success": false, + "error": err.Error(), + }) + return + } + + if settings.SupportCanType && !settings.SupportCanView { + ctx.AbortWithStatusJSON(400, gin.H{ + "success": false, + "error": "Must be able to view channel to type", + }) + return + } + + if err := dbclient.Client.ClaimSettings.Set(guildId, settings); err != nil { + ctx.AbortWithStatusJSON(500, gin.H{ + "success": false, + "error": err.Error(), + }) + return + } + + ctx.JSON(200, gin.H{ + "success": true, + }) +} diff --git a/app/http/server.go b/app/http/server.go index 3baea41..1e7515f 100644 --- a/app/http/server.go +++ b/app/http/server.go @@ -100,6 +100,9 @@ func StartServer() { guildAuthApi.GET("/:id/tags", api.TagsListHandler) guildAuthApi.PUT("/:id/tags", api.CreateTag) guildAuthApi.DELETE("/:id/tags/:tag", api.DeleteTag) + + guildAuthApi.GET("/:id/claimsettings", api.GetClaimSettings) + guildAuthApi.POST("/:id/claimsettings", api.PostClaimSettings) } userGroup := router.Group("/user", middleware.AuthenticateToken) diff --git a/go.mod b/go.mod index f5622d3..5286fa4 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.14 require ( github.com/BurntSushi/toml v0.3.1 github.com/TicketsBot/archiverclient v0.0.0-20200425115930-0ca198cc8306 - github.com/TicketsBot/database v0.0.0-20200513210802-2adabede3591 + github.com/TicketsBot/database v0.0.0-20200514140316-5fc42f69495c github.com/apex/log v1.1.2 github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible diff --git a/public/templates/views/settings.tmpl b/public/templates/views/settings.tmpl index 7b787b8..a1ab1ba 100644 --- a/public/templates/views/settings.tmpl +++ b/public/templates/views/settings.tmpl @@ -6,9 +6,6 @@
Select a server to manage below
- {{end}}