diff --git a/config.yaml b/config.yaml index 1223c88..a4356d5 100644 --- a/config.yaml +++ b/config.yaml @@ -1,7 +1,7 @@ port: 8083 -ip: "0.0.0.0" +ip: "localhost" secret: "secret" db: "crawler.db" -discordWebhook: "https://discord.com/api/webhooks/1413673169792925787/bfbCJ8wiFeKsYkLGCp1U8sr5jOOWDcF0NP9DsHuGXy8NjrfKOncYWJbPnROophTXr-kH" -scraperWebhook: "https://discord.com/api/webhooks/1420535203725840407/4lBMKhp0abqgie_9Mx0uDUERBCuitjfeguleMyq1JJts0JiUmw5GR4VO-A5iGEq7NFV0" +discordWebhook: "" +scraperWebhook: "" adminSecret: "123456789" diff --git a/controllers/indexerController.go b/controllers/indexerController.go index cd7f4e5..85a3bf8 100644 --- a/controllers/indexerController.go +++ b/controllers/indexerController.go @@ -164,6 +164,37 @@ func SaveIndexingResult(c *gin.Context) { c.JSON(200, gin.H{"status": "success"}) } +func DeleteAddon(c *gin.Context) { + guid := c.Query("guid") + if guid == "" { + c.JSON(400, gin.H{"error": "GUID is required"}) + return + } + + var addon models.Addon + ret := initializers.DB.Where("id = ?", guid).First(&addon) + if ret.Error != nil { + c.JSON(404, gin.H{"error": "Addon not found"}) + return + } + + // Delete associated files + ret = initializers.DB.Where("addon_id = ?", addon.ID).Delete(&models.AddonFile{}) + if ret.Error != nil { + c.JSON(500, gin.H{"error": ret.Error.Error()}) + return + } + + // Delete the addon + ret = initializers.DB.Delete(&addon) + if ret.Error != nil { + c.JSON(500, gin.H{"error": ret.Error.Error()}) + return + } + + c.JSON(200, gin.H{"status": "addon deleted"}) +} + func checkIndexingTimeout() { var addons []models.Addon initializers.DB.Where("is_being_indexed = ?", true).Find(&addons) diff --git a/main.go b/main.go index 72b8122..0b9b4ac 100644 --- a/main.go +++ b/main.go @@ -24,6 +24,7 @@ func main() { back.POST("/addon", controllers.CheckAllowed, controllers.CreateAddon) back.GET("/nextToBeIndexed", controllers.CheckAllowed, controllers.GetNextToBeIndexed) back.POST("/submitAddon", controllers.CheckAllowed, controllers.SaveIndexingResult) + back.DELETE("/deleteAddon", controllers.CheckAllowed, controllers.DeleteAddon) } admin := r.Group("/admin")