mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
dev day #100 - WE ARE FUCKING DONE, hotfixes incoming but we did it in 100 days, lets fucking go guys, anyone reading this...i love you
This commit is contained in:
@@ -567,6 +567,9 @@ func (bc *BaseController) GetMatchesHistory(c *gin.Context) {
|
||||
m["date_time"] = ov.DateTimeOverride.Format(time.RFC3339)
|
||||
m["date"] = ov.DateTimeOverride.Format("2006-01-02 15:04")
|
||||
}
|
||||
if ov.ScoreOverride != nil {
|
||||
m["score"] = strings.TrimSpace(*ov.ScoreOverride)
|
||||
}
|
||||
if ov.HomeLogoURL != nil {
|
||||
m["home_logo_url"] = *ov.HomeLogoURL
|
||||
}
|
||||
@@ -689,6 +692,9 @@ func (bc *BaseController) GetMatches(c *gin.Context) {
|
||||
m["date_time"] = ov.DateTimeOverride.Format(time.RFC3339)
|
||||
m["date"] = ov.DateTimeOverride.Format("2006-01-02 15:04")
|
||||
}
|
||||
if ov.ScoreOverride != nil {
|
||||
m["score"] = strings.TrimSpace(*ov.ScoreOverride)
|
||||
}
|
||||
if ov.HomeLogoURL != nil {
|
||||
m["home_logo_url"] = *ov.HomeLogoURL
|
||||
}
|
||||
@@ -901,7 +907,8 @@ func (bc *BaseController) GetZoneramaAlbum(c *gin.Context) {
|
||||
photoLimit := strings.TrimSpace(c.DefaultQuery("photo_limit", "24"))
|
||||
rendered := strings.TrimSpace(c.DefaultQuery("rendered", "true"))
|
||||
// Build external URL
|
||||
api := "https://zonerama.tdvorak.dev/zonerama-album?link=" + url.QueryEscape(link)
|
||||
base := strings.TrimSuffix(config.AppConfig.ZoneramaAPIBase, "/")
|
||||
api := base + "/zonerama-album?link=" + url.QueryEscape(link)
|
||||
if photoLimit != "" {
|
||||
api += "&photo_limit=" + url.QueryEscape(photoLimit)
|
||||
}
|
||||
@@ -2471,30 +2478,18 @@ func (bc *BaseController) PutMatchOverride(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, item)
|
||||
}
|
||||
|
||||
// PatchMatchOverride partially updates fields of an override by external_match_id
|
||||
func (bc *BaseController) PatchMatchOverride(c *gin.Context) {
|
||||
extID := c.Param("external_match_id")
|
||||
if extID == "" {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Chyba external_match_id"})
|
||||
return
|
||||
}
|
||||
var item models.MatchOverride
|
||||
if err := bc.DB.Where("external_match_id = ?", extID).First(&item).Error; err != nil {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "Override nenalezen"})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Chyba databáze"})
|
||||
return
|
||||
}
|
||||
var body map[string]interface{}
|
||||
if err := c.ShouldBindJSON(&body); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
// Prevent changing the key
|
||||
delete(body, "external_match_id")
|
||||
// Normalize date_time_override to *time.Time if provided as string
|
||||
if v, ok := body["date_time_override"]; ok {
|
||||
switch vv := v.(type) {
|
||||
case string:
|
||||
@@ -2513,6 +2508,23 @@ func (bc *BaseController) PatchMatchOverride(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
}
|
||||
var item models.MatchOverride
|
||||
if err := bc.DB.Where("external_match_id = ?", extID).First(&item).Error; err != nil {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
attrs := map[string]interface{}{"external_match_id": extID}
|
||||
for k, v := range body {
|
||||
attrs[k] = v
|
||||
}
|
||||
if err := bc.DB.Where("external_match_id = ?", extID).Assign(attrs).FirstOrCreate(&item).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Nelze vytvořit záznam"})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, item)
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Chyba databáze"})
|
||||
return
|
||||
}
|
||||
if err := bc.DB.Model(&item).Updates(body).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Nelze uložit změny"})
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user