chore: add csharpier to husky, format backend with csharpier
This commit is contained in:
parent
5fab66444f
commit
7f971e8549
73 changed files with 2098 additions and 1048 deletions
|
@ -9,39 +9,47 @@ public class FoxnounsError(string message, Exception? inner = null) : Exception(
|
|||
{
|
||||
public Exception? Inner => inner;
|
||||
|
||||
public class DatabaseError(string message, Exception? inner = null) : FoxnounsError(message, inner);
|
||||
public class DatabaseError(string message, Exception? inner = null)
|
||||
: FoxnounsError(message, inner);
|
||||
|
||||
public class UnknownEntityError(Type entityType, Exception? inner = null)
|
||||
: DatabaseError($"Entity of type {entityType.Name} not found", inner);
|
||||
}
|
||||
|
||||
public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCode? errorCode = null)
|
||||
: FoxnounsError(message)
|
||||
public class ApiError(
|
||||
string message,
|
||||
HttpStatusCode? statusCode = null,
|
||||
ErrorCode? errorCode = null
|
||||
) : FoxnounsError(message)
|
||||
{
|
||||
public readonly HttpStatusCode StatusCode = statusCode ?? HttpStatusCode.InternalServerError;
|
||||
public readonly ErrorCode ErrorCode = errorCode ?? ErrorCode.InternalServerError;
|
||||
|
||||
public class Unauthorized(string message, ErrorCode errorCode = ErrorCode.AuthenticationError) : ApiError(message,
|
||||
statusCode: HttpStatusCode.Unauthorized,
|
||||
errorCode: errorCode);
|
||||
public class Unauthorized(string message, ErrorCode errorCode = ErrorCode.AuthenticationError)
|
||||
: ApiError(message, statusCode: HttpStatusCode.Unauthorized, errorCode: errorCode);
|
||||
|
||||
public class Forbidden(
|
||||
string message,
|
||||
IEnumerable<string>? scopes = null,
|
||||
ErrorCode errorCode = ErrorCode.Forbidden)
|
||||
: ApiError(message, statusCode: HttpStatusCode.Forbidden, errorCode: errorCode)
|
||||
ErrorCode errorCode = ErrorCode.Forbidden
|
||||
) : ApiError(message, statusCode: HttpStatusCode.Forbidden, errorCode: errorCode)
|
||||
{
|
||||
public readonly string[] Scopes = scopes?.ToArray() ?? [];
|
||||
}
|
||||
|
||||
public class BadRequest(string message, IReadOnlyDictionary<string, IEnumerable<ValidationError>>? errors = null)
|
||||
: ApiError(message, statusCode: HttpStatusCode.BadRequest)
|
||||
public class BadRequest(
|
||||
string message,
|
||||
IReadOnlyDictionary<string, IEnumerable<ValidationError>>? errors = null
|
||||
) : ApiError(message, statusCode: HttpStatusCode.BadRequest)
|
||||
{
|
||||
public BadRequest(string message, string field, object actualValue) : this("Error validating input",
|
||||
new Dictionary<string, IEnumerable<ValidationError>>
|
||||
{ { field, [ValidationError.GenericValidationError(message, actualValue)] } })
|
||||
{
|
||||
}
|
||||
public BadRequest(string message, string field, object actualValue)
|
||||
: this(
|
||||
"Error validating input",
|
||||
new Dictionary<string, IEnumerable<ValidationError>>
|
||||
{
|
||||
{ field, [ValidationError.GenericValidationError(message, actualValue)] },
|
||||
}
|
||||
) { }
|
||||
|
||||
public JObject ToJson()
|
||||
{
|
||||
|
@ -49,9 +57,10 @@ public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCo
|
|||
{
|
||||
{ "status", (int)HttpStatusCode.BadRequest },
|
||||
{ "message", Message },
|
||||
{ "code", "BAD_REQUEST" }
|
||||
{ "code", "BAD_REQUEST" },
|
||||
};
|
||||
if (errors == null) return o;
|
||||
if (errors == null)
|
||||
return o;
|
||||
|
||||
var a = new JArray();
|
||||
foreach (var error in errors)
|
||||
|
@ -59,7 +68,7 @@ public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCo
|
|||
var errorObj = new JObject
|
||||
{
|
||||
{ "key", error.Key },
|
||||
{ "errors", JArray.FromObject(error.Value) }
|
||||
{ "errors", JArray.FromObject(error.Value) },
|
||||
};
|
||||
a.Add(errorObj);
|
||||
}
|
||||
|
@ -82,9 +91,10 @@ public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCo
|
|||
{
|
||||
{ "status", (int)HttpStatusCode.BadRequest },
|
||||
{ "message", Message },
|
||||
{ "code", "BAD_REQUEST" }
|
||||
{ "code", "BAD_REQUEST" },
|
||||
};
|
||||
if (modelState == null) return o;
|
||||
if (modelState == null)
|
||||
return o;
|
||||
|
||||
var a = new JArray();
|
||||
foreach (var error in modelState.Where(e => e.Value is { Errors.Count: > 0 }))
|
||||
|
@ -94,8 +104,13 @@ public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCo
|
|||
{ "key", error.Key },
|
||||
{
|
||||
"errors",
|
||||
new JArray(error.Value!.Errors.Select(e => new JObject { { "message", e.ErrorMessage } }))
|
||||
}
|
||||
new JArray(
|
||||
error.Value!.Errors.Select(e => new JObject
|
||||
{
|
||||
{ "message", e.ErrorMessage },
|
||||
})
|
||||
)
|
||||
},
|
||||
};
|
||||
a.Add(errorObj);
|
||||
}
|
||||
|
@ -108,7 +123,8 @@ public class ApiError(string message, HttpStatusCode? statusCode = null, ErrorCo
|
|||
public class NotFound(string message, ErrorCode? code = null)
|
||||
: ApiError(message, statusCode: HttpStatusCode.NotFound, errorCode: code);
|
||||
|
||||
public class AuthenticationError(string message) : ApiError(message, statusCode: HttpStatusCode.BadRequest);
|
||||
public class AuthenticationError(string message)
|
||||
: ApiError(message, statusCode: HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
public enum ErrorCode
|
||||
|
@ -143,34 +159,38 @@ public class ValidationError
|
|||
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
||||
public object? ActualValue { get; init; }
|
||||
|
||||
public static ValidationError LengthError(string message, int minLength, int maxLength, int actualLength)
|
||||
public static ValidationError LengthError(
|
||||
string message,
|
||||
int minLength,
|
||||
int maxLength,
|
||||
int actualLength
|
||||
)
|
||||
{
|
||||
return new ValidationError
|
||||
{
|
||||
Message = message,
|
||||
MinLength = minLength,
|
||||
MaxLength = maxLength,
|
||||
ActualLength = actualLength
|
||||
ActualLength = actualLength,
|
||||
};
|
||||
}
|
||||
|
||||
public static ValidationError DisallowedValueError(string message, IEnumerable<object> allowedValues,
|
||||
object actualValue)
|
||||
public static ValidationError DisallowedValueError(
|
||||
string message,
|
||||
IEnumerable<object> allowedValues,
|
||||
object actualValue
|
||||
)
|
||||
{
|
||||
return new ValidationError
|
||||
{
|
||||
Message = message,
|
||||
AllowedValues = allowedValues,
|
||||
ActualValue = actualValue
|
||||
ActualValue = actualValue,
|
||||
};
|
||||
}
|
||||
|
||||
public static ValidationError GenericValidationError(string message, object? actualValue)
|
||||
{
|
||||
return new ValidationError
|
||||
{
|
||||
Message = message,
|
||||
ActualValue = actualValue
|
||||
};
|
||||
return new ValidationError { Message = message, ActualValue = actualValue };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue