feat: delete firmware

This commit is contained in:
2025-10-22 21:14:07 +02:00
parent 4a11bad7dd
commit 6ed905b9f3
6 changed files with 163 additions and 0 deletions

View File

@@ -110,6 +110,31 @@ func (s *FirmwareService) GetFirmwarePath(name, version string) (string, error)
return s.storage.GetFirmwareBinaryPath(name, version), nil
}
// DeleteFirmware deletes firmware binary and metadata
func (s *FirmwareService) DeleteFirmware(name, version string) error {
// Validate required fields
if name == "" || version == "" {
return fmt.Errorf("name and version are required")
}
// Check if firmware exists
if !s.storage.FirmwareExists(name, version) {
return fmt.Errorf("firmware not found")
}
// Delete from database first
if err := s.repo.DeleteFirmwareMetadata(name, version); err != nil {
return fmt.Errorf("failed to delete firmware metadata: %w", err)
}
// Delete firmware binary
if err := s.storage.DeleteFirmwareBinary(name, version); err != nil {
return fmt.Errorf("failed to delete firmware binary: %w", err)
}
return nil
}
// groupFirmwareByName groups firmware records by name
func (s *FirmwareService) groupFirmwareByName(records []models.FirmwareRecord) []models.GroupedFirmware {
nameMap := make(map[string][]models.FirmwareRecord)