feat: delete firmware
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user