package controllers import ( "gitea.tbdevent.eu/TBD/reforger_crawler_main/initializers" "gitea.tbdevent.eu/TBD/reforger_crawler_main/models" "github.com/gin-gonic/gin" ) func CreateAddon(c *gin.Context) { var addonR models.Addon err := c.ShouldBindJSON(&addonR) if err != nil { c.JSON(400, gin.H{"error": "Invalid JSON"}) return } addon := models.Addon{ ID: addonR.ID, } result := initializers.DB.Where(&addon).First(&addon) if result.Error != nil { // addon does not exist, create it initializers.DB.Create(&addonR) } else { // addon exists, check version, update it and queue for reindexing if needed if addon.CurrentVersionNumber != addonR.CurrentVersionNumber { addon.CurrentVersionNumber = addonR.CurrentVersionNumber addon.CurrentVersionID = addonR.CurrentVersionID addon.CurrentVersionSize = addonR.CurrentVersionSize addon.ToBeIndexed = true initializers.DB.Save(&addon) } } c.JSON(200, gin.H{"status": "success"}) } func GetCurrentState(c *gin.Context) { var addons []models.Addon initializers.DB.Find(&addons) c.JSON(200, addons) }