| 170 | } |
| 171 | |
| 172 | func (u *BackupService) Create(req dto.BackupOperate) error { |
| 173 | if req.Type == constant.Local { |
| 174 | return buserr.New("ErrBackupLocalCreate") |
| 175 | } |
| 176 | if req.Type != constant.Sftp { |
| 177 | req.BackupPath = strings.TrimPrefix(req.BackupPath, "/") |
| 178 | } |
| 179 | backup, _ := backupRepo.Get(repo.WithByName(req.Name)) |
| 180 | if backup.ID != 0 { |
| 181 | return buserr.New("ErrRecordExist") |
| 182 | } |
| 183 | if err := copier.Copy(&backup, &req); err != nil { |
| 184 | return buserr.WithDetail("ErrStructTransform", err.Error(), nil) |
| 185 | } |
| 186 | itemAccessKey, err := base64.StdEncoding.DecodeString(backup.AccessKey) |
| 187 | if err != nil { |
| 188 | return err |
| 189 | } |
| 190 | backup.AccessKey = string(itemAccessKey) |
| 191 | itemCredential, err := base64.StdEncoding.DecodeString(backup.Credential) |
| 192 | if err != nil { |
| 193 | return err |
| 194 | } |
| 195 | backup.Credential = string(itemCredential) |
| 196 | backup.AccessKey, err = encrypt.StringEncrypt(backup.AccessKey) |
| 197 | if err != nil { |
| 198 | return err |
| 199 | } |
| 200 | backup.Credential, err = encrypt.StringEncrypt(backup.Credential) |
| 201 | if err != nil { |
| 202 | return err |
| 203 | } |
| 204 | if err := backupRepo.Create(&backup); err != nil { |
| 205 | return err |
| 206 | } |
| 207 | return nil |
| 208 | } |
| 209 | |
| 210 | func (u *BackupService) GetBuckets(req dto.ForBuckets) ([]interface{}, error) { |
| 211 | itemAccessKey, err := base64.StdEncoding.DecodeString(req.AccessKey) |