fix(apiv2): correctly parse timestamp in SwitchPatch
This commit is contained in:
parent
098d804344
commit
431f7e8931
@ -163,11 +163,13 @@ namespace PluralKit.API
|
||||
if (!Guid.TryParse(switchRef, out var switchId))
|
||||
throw APIErrors.InvalidSwitchId;
|
||||
|
||||
var value = data.Value<Instant>("timestamp");
|
||||
if (value == null)
|
||||
var valueStr = data.Value<string>("timestamp").NullIfEmpty();
|
||||
if (valueStr == null)
|
||||
// todo
|
||||
throw APIErrors.GenericBadRequest;
|
||||
|
||||
var value = Instant.FromDateTimeOffset(DateTime.Parse(valueStr).ToUniversalTime());
|
||||
|
||||
var system = await ResolveSystem("@me");
|
||||
if (system == null)
|
||||
throw APIErrors.SystemNotFound;
|
||||
|
@ -140,7 +140,10 @@ namespace PluralKit.API
|
||||
var exc = ctx.Features.Get<IExceptionHandlerPathFeature>();
|
||||
|
||||
// handle common ISEs that are generated by invalid user input
|
||||
if (exc.Error is InvalidCastException && exc.Error.Message.Contains("Newtonsoft.Json"))
|
||||
if (
|
||||
(exc.Error is InvalidCastException && exc.Error.Message.Contains("Newtonsoft.Json"))
|
||||
|| (exc.Error is FormatException && exc.Error.Message.Contains("was not recognized as a valid DateTime"))
|
||||
)
|
||||
{
|
||||
ctx.Response.StatusCode = 400;
|
||||
await ctx.Response.WriteAsync("{\"message\":\"400: Bad Request\",\"code\":0}");
|
||||
|
Loading…
Reference in New Issue
Block a user