mirror of
https://github.com/bitwarden/server.git
synced 2025-07-04 01:22:50 -05:00
Partial<T> for CommandResult<T> (#5482)
* Example of how a partial success/failure command result would look. * Fixed code. * Added Validator and ValidationResult * Moved errors into their own files. * Fixing tests * fixed import. * Forgot mock error.
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
#nullable enable
|
||||
|
||||
using Bit.Core.AdminConsole.Errors;
|
||||
|
||||
namespace Bit.Core.Models.Commands;
|
||||
|
||||
public class CommandResult(IEnumerable<string> errors)
|
||||
@ -9,7 +11,6 @@ public class CommandResult(IEnumerable<string> errors)
|
||||
public bool Success => ErrorMessages.Count == 0;
|
||||
public bool HasErrors => ErrorMessages.Count > 0;
|
||||
public List<string> ErrorMessages { get; } = errors.ToList();
|
||||
|
||||
public CommandResult() : this(Array.Empty<string>()) { }
|
||||
}
|
||||
|
||||
@ -29,22 +30,30 @@ public class Success : CommandResult
|
||||
{
|
||||
}
|
||||
|
||||
public abstract class CommandResult<T>
|
||||
{
|
||||
public abstract class CommandResult<T>;
|
||||
|
||||
public class Success<T>(T value) : CommandResult<T>
|
||||
{
|
||||
public T Value { get; } = value;
|
||||
}
|
||||
|
||||
public class Success<T>(T data) : CommandResult<T>
|
||||
public class Failure<T>(IEnumerable<string> errorMessages) : CommandResult<T>
|
||||
{
|
||||
public T? Data { get; init; } = data;
|
||||
public List<string> ErrorMessages { get; } = errorMessages.ToList();
|
||||
|
||||
public string ErrorMessage => string.Join(" ", ErrorMessages);
|
||||
|
||||
public Failure(string error) : this([error]) { }
|
||||
}
|
||||
|
||||
public class Failure<T>(IEnumerable<string> errorMessage) : CommandResult<T>
|
||||
public class Partial<T> : CommandResult<T>
|
||||
{
|
||||
public IEnumerable<string> ErrorMessages { get; init; } = errorMessage;
|
||||
public T[] Successes { get; set; } = [];
|
||||
public Error<T>[] Failures { get; set; } = [];
|
||||
|
||||
public Failure(string errorMessage) : this(new[] { errorMessage })
|
||||
public Partial(IEnumerable<T> successfulItems, IEnumerable<Error<T>> failedItems)
|
||||
{
|
||||
Successes = successfulItems.ToArray();
|
||||
Failures = failedItems.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user