Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 0 additions & 63 deletions backend/internal/api/image_update_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package api

import (
"net/http"
"strconv"

"github.com/gin-gonic/gin"
"github.com/ofkm/arcane-backend/internal/dto"
Expand All @@ -25,8 +24,6 @@ func NewImageUpdateHandler(group *gin.RouterGroup, imageUpdateService *services.
apiGroup.POST("/check-batch", handler.CheckMultipleImages)
apiGroup.GET("/check-all", handler.CheckAllImages)
apiGroup.GET("/summary", handler.GetUpdateSummary)
apiGroup.GET("/versions", handler.GetImageVersions)
apiGroup.POST("/compare", handler.CompareVersions)
}
}

Expand Down Expand Up @@ -151,63 +148,3 @@ func (h *ImageUpdateHandler) GetUpdateSummary(c *gin.Context) {
"data": summary,
})
}

func (h *ImageUpdateHandler) GetImageVersions(c *gin.Context) {
imageRef := c.Query("imageRef")
if imageRef == "" {
c.JSON(http.StatusBadRequest, gin.H{
"success": false,
"error": "imageRef query parameter is required",
})
return
}

limitStr := c.DefaultQuery("limit", "20")
limit, err := strconv.Atoi(limitStr)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"success": false,
"error": "Invalid limit parameter",
})
return
}

versions, err := h.imageUpdateService.GetAvailableVersions(c.Request.Context(), imageRef, limit)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"success": false,
"error": "Failed to get image versions: " + err.Error(),
})
return
}

c.JSON(http.StatusOK, gin.H{
"success": true,
"data": versions,
})
}

func (h *ImageUpdateHandler) CompareVersions(c *gin.Context) {
var req dto.CompareVersionRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"success": false,
"error": "Invalid request format",
})
return
}

comparison, err := h.imageUpdateService.CompareVersions(c.Request.Context(), req.ImageRef, req.CurrentVersion, req.TargetVersion)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"success": false,
"error": "Failed to compare versions: " + err.Error(),
})
return
}

c.JSON(http.StatusOK, gin.H{
"success": true,
"data": comparison,
})
}
22 changes: 0 additions & 22 deletions backend/internal/dto/image_update_dto.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,34 +23,12 @@ type ImageUpdateSummaryResponse struct {
TotalImages int `json:"totalImages"`
ImagesWithUpdates int `json:"imagesWithUpdates"`
DigestUpdates int `json:"digestUpdates"`
TagUpdates int `json:"tagUpdates"`
ErrorsCount int `json:"errorsCount"`
}

type ImageVersionsResponse struct {
ImageRef string `json:"imageRef"`
Current string `json:"current"`
Versions []string `json:"versions"`
Latest string `json:"latest,omitempty"`
}

type VersionComparisonResponse struct {
CurrentVersion string `json:"currentVersion"`
TargetVersion string `json:"targetVersion"`
IsNewer bool `json:"isNewer"`
UpdateType string `json:"updateType"`
ChangeLevel string `json:"changeLevel"`
}

type BatchImageUpdateRequest struct {
ImageRefs []string `json:"imageRefs" binding:"required"`
Credentials []ContainerRegistryCredential `json:"credentials,omitempty"`
}

type BatchImageUpdateResponse map[string]*ImageUpdateResponse

type CompareVersionRequest struct {
CurrentVersion string `json:"currentVersion" binding:"required"`
TargetVersion string `json:"targetVersion" binding:"required"`
ImageRef string `json:"imageRef" binding:"required"`
}
Loading
Loading