Skip to content

Commit 84cbf57

Browse files
FIX (storages): Clean up backups on storage change
1 parent 766f4a5 commit 84cbf57

File tree

4 files changed

+10
-18
lines changed

4 files changed

+10
-18
lines changed

backend/internal/features/backups/backups/service.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@ func (s *BackupService) AddBackupRemoveListener(listener BackupRemoveListener) {
3434
s.backupRemoveListeners = append(s.backupRemoveListeners, listener)
3535
}
3636

37-
func (s *BackupService) OnBeforeBackupsStorageChange(
38-
databaseID uuid.UUID,
39-
storageID uuid.UUID,
40-
) error {
37+
func (s *BackupService) OnBeforeBackupsStorageChange(databaseID uuid.UUID) error {
4138
err := s.deleteDbBackups(databaseID)
4239
if err != nil {
4340
return err

backend/internal/features/backups/config/controller.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ func (c *BackupConfigController) RegisterRoutes(router *gin.RouterGroup) {
3232
// @Failure 500
3333
// @Router /backup-configs/save [post]
3434
func (c *BackupConfigController) SaveBackupConfig(ctx *gin.Context) {
35-
var request BackupConfig
36-
if err := ctx.ShouldBindJSON(&request); err != nil {
35+
var requestDTO BackupConfig
36+
if err := ctx.ShouldBindJSON(&requestDTO); err != nil {
3737
ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
3838
return
3939
}
@@ -44,13 +44,16 @@ func (c *BackupConfigController) SaveBackupConfig(ctx *gin.Context) {
4444
return
4545
}
4646

47-
_, err := c.userService.GetUserFromToken(authorizationHeader)
47+
user, err := c.userService.GetUserFromToken(authorizationHeader)
4848
if err != nil {
4949
ctx.JSON(http.StatusUnauthorized, gin.H{"error": "invalid token"})
5050
return
5151
}
5252

53-
savedConfig, err := c.backupConfigService.SaveBackupConfig(&request)
53+
// make sure we rely on full .Storage object
54+
requestDTO.StorageID = nil
55+
56+
savedConfig, err := c.backupConfigService.SaveBackupConfigWithAuth(user, &requestDTO)
5457
if err != nil {
5558
ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
5659
return

backend/internal/features/backups/config/interfaces.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ package backups_config
33
import "github.com/google/uuid"
44

55
type BackupConfigStorageChangeListener interface {
6-
OnBeforeBackupsStorageChange(dbID uuid.UUID, storageID uuid.UUID) error
6+
OnBeforeBackupsStorageChange(dbID uuid.UUID) error
77
}

backend/internal/features/backups/config/service.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,17 @@ func (s *BackupConfigService) SaveBackupConfig(
5757
// If storage is changing, notify the listener
5858
if s.dbStorageChangeListener != nil &&
5959
!storageIDsEqual(existingConfig.StorageID, backupConfig.StorageID) {
60-
var newStorageID uuid.UUID
61-
62-
if backupConfig.StorageID != nil {
63-
newStorageID = *backupConfig.StorageID
64-
}
65-
6660
if err := s.dbStorageChangeListener.OnBeforeBackupsStorageChange(
6761
backupConfig.DatabaseID,
68-
newStorageID,
6962
); err != nil {
7063
return nil, err
7164
}
7265
}
7366
}
7467

75-
if !backupConfig.IsBackupsEnabled && backupConfig.StorageID != nil {
68+
if !backupConfig.IsBackupsEnabled && existingConfig.StorageID != nil {
7669
if err := s.dbStorageChangeListener.OnBeforeBackupsStorageChange(
7770
backupConfig.DatabaseID,
78-
*backupConfig.StorageID,
7971
); err != nil {
8072
return nil, err
8173
}

0 commit comments

Comments
 (0)