mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 15:42:48 -05:00
[Soft-Delete] Simplify the data-tier, removed extra sprocs and reuse update
This commit is contained in:
@ -32,9 +32,7 @@ namespace Bit.Core.Repositories
|
||||
Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Folder> folders);
|
||||
Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Collection> collections,
|
||||
IEnumerable<CollectionCipher> collectionCiphers);
|
||||
Task SoftDeleteAsync(Cipher obj);
|
||||
Task SoftDeleteAsync(IEnumerable<Guid> ids, Guid userId);
|
||||
Task RestoreAsync(Cipher obj);
|
||||
Task RestoreAsync(IEnumerable<Guid> ids, Guid userId);
|
||||
}
|
||||
}
|
||||
|
@ -577,17 +577,6 @@ namespace Bit.Core.Repositories.SqlServer
|
||||
}
|
||||
}
|
||||
|
||||
public async Task SoftDeleteAsync(Cipher obj)
|
||||
{
|
||||
using (var connection = new SqlConnection(ConnectionString))
|
||||
{
|
||||
var results = await connection.ExecuteAsync(
|
||||
$"[{Schema}].[Cipher_SoftDeleteById]",
|
||||
new { obj.Id },
|
||||
commandType: CommandType.StoredProcedure);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task SoftDeleteAsync(IEnumerable<Guid> ids, Guid userId)
|
||||
{
|
||||
using (var connection = new SqlConnection(ConnectionString))
|
||||
@ -599,17 +588,6 @@ namespace Bit.Core.Repositories.SqlServer
|
||||
}
|
||||
}
|
||||
|
||||
public async Task RestoreAsync(Cipher obj)
|
||||
{
|
||||
using (var connection = new SqlConnection(ConnectionString))
|
||||
{
|
||||
var results = await connection.ExecuteAsync(
|
||||
$"[{Schema}].[Cipher_RestoreById]",
|
||||
new { obj.Id },
|
||||
commandType: CommandType.StoredProcedure);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task RestoreAsync(IEnumerable<Guid> ids, Guid userId)
|
||||
{
|
||||
using (var connection = new SqlConnection(ConnectionString))
|
||||
|
@ -671,7 +671,16 @@ namespace Bit.Core.Services
|
||||
throw new BadRequestException("You do not have permissions to soft delete this.");
|
||||
}
|
||||
|
||||
await _cipherRepository.SoftDeleteAsync(cipher);
|
||||
if (cipher.DeletedDate.HasValue)
|
||||
{
|
||||
// Already soft-deleted, we can safely ignore this
|
||||
return;
|
||||
}
|
||||
|
||||
cipher.DeletedDate = DateTime.UtcNow;
|
||||
cipher.RevisionDate = DateTime.UtcNow;
|
||||
|
||||
await _cipherRepository.UpsertAsync(cipher);
|
||||
await _eventService.LogCipherEventAsync(cipher, EventType.Cipher_SoftDeleted);
|
||||
|
||||
// push
|
||||
@ -704,7 +713,16 @@ namespace Bit.Core.Services
|
||||
throw new BadRequestException("You do not have permissions to delete this.");
|
||||
}
|
||||
|
||||
await _cipherRepository.RestoreAsync(cipher);
|
||||
if (!cipher.DeletedDate.HasValue)
|
||||
{
|
||||
// Already restored, we can safely ignore this
|
||||
return;
|
||||
}
|
||||
|
||||
cipher.DeletedDate = null;
|
||||
cipher.RevisionDate = DateTime.UtcNow;
|
||||
|
||||
await _cipherRepository.UpsertAsync(cipher);
|
||||
await _eventService.LogCipherEventAsync(cipher, EventType.Cipher_Restored);
|
||||
|
||||
// push
|
||||
|
Reference in New Issue
Block a user