diff --git a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
index 758f667e8e..7a0219d18f 100644
--- a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
+++ b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
@@ -119,7 +119,7 @@ namespace Tgstation.Server.Host.Controllers
Logger.LogWarning("Exceeded GitHub rate limit! Exception {0}", exception);
var secondsString = Math.Ceiling((exception.Reset - DateTimeOffset.Now).TotalSeconds).ToString(CultureInfo.InvariantCulture);
Response.Headers.Add("Retry-After", new StringValues(secondsString));
- return StatusCode(429, new ErrorMessage(ErrorCode.GitHubApiRateLimit));
+ return StatusCode(HttpStatusCode.TooManyRequests, new ErrorMessage(ErrorCode.GitHubApiRateLimit));
}
///
@@ -149,7 +149,7 @@ namespace Tgstation.Server.Host.Controllers
catch (ApiException e)
{
Logger.LogWarning(OctokitException, e);
- return StatusCode((int)HttpStatusCode.FailedDependency);
+ return StatusCode(HttpStatusCode.FailedDependency);
}
releases = releases.Where(x => x.TagName.StartsWith(updatesConfiguration.GitTagPrefix, StringComparison.InvariantCulture));
@@ -243,7 +243,7 @@ namespace Tgstation.Server.Host.Controllers
catch (ApiException e)
{
Logger.LogWarning(OctokitException, e);
- return StatusCode((int)HttpStatusCode.FailedDependency, new ErrorMessage(ErrorCode.GitHubApiError)
+ return StatusCode(HttpStatusCode.FailedDependency, new ErrorMessage(ErrorCode.GitHubApiError)
{
AdditionalData = e.Message
});
@@ -313,7 +313,7 @@ namespace Tgstation.Server.Host.Controllers
}
catch (InvalidOperationException)
{
- return StatusCode((int)HttpStatusCode.ServiceUnavailable);
+ return StatusCode(HttpStatusCode.ServiceUnavailable);
}
}
diff --git a/src/Tgstation.Server.Host/Controllers/ApiController.cs b/src/Tgstation.Server.Host/Controllers/ApiController.cs
index 4ca169bf08..88309c993a 100644
--- a/src/Tgstation.Server.Host/Controllers/ApiController.cs
+++ b/src/Tgstation.Server.Host/Controllers/ApiController.cs
@@ -86,19 +86,41 @@ namespace Tgstation.Server.Host.Controllers
/// Generic 410 response.
///
/// An with .
- protected ObjectResult Gone() => StatusCode((int)HttpStatusCode.Gone, new ErrorMessage(ErrorCode.ResourceNotPresent));
+ protected ObjectResult Gone() => StatusCode(HttpStatusCode.Gone, new ErrorMessage(ErrorCode.ResourceNotPresent));
///
/// Generic 404 response.
///
/// An with .
- protected new ObjectResult NotFound() => NotFound(new ErrorMessage(ErrorCode.ResourceNeverPresent));
+ protected new NotFoundObjectResult NotFound() => NotFound(new ErrorMessage(ErrorCode.ResourceNeverPresent));
///
/// Generic 501 response.
///
/// An with .
- protected ObjectResult RequiresPosixSystemIdentity() => StatusCode((int)HttpStatusCode.NotImplemented, new ErrorMessage(ErrorCode.RequiresPosixSystemIdentity));
+ protected ObjectResult RequiresPosixSystemIdentity() => StatusCode(HttpStatusCode.NotImplemented, new ErrorMessage(ErrorCode.RequiresPosixSystemIdentity));
+
+ ///
+ /// Strongly type calls to .
+ ///
+ /// The .
+ /// A with the given .
+ protected StatusCodeResult StatusCode(HttpStatusCode statusCode) => StatusCode((int)statusCode);
+
+ ///
+ /// Strongly type calls to .
+ ///
+ /// The .
+ /// The accompanying payload.
+ /// A with the given .
+ protected ObjectResult StatusCode(HttpStatusCode statusCode, object errorMessage) => StatusCode((int)statusCode, errorMessage);
+
+ ///
+ /// Generic 201 response with a given .
+ ///
+ /// The accompanying API payload.
+ /// A with the given .
+ protected ObjectResult Created(object payload) => StatusCode((int)HttpStatusCode.Created, payload);
///
/// Response for missing/Invalid headers.
@@ -123,7 +145,7 @@ namespace Tgstation.Server.Host.Controllers
};
if (headersException.MissingOrMalformedHeaders.HasFlag(HeaderTypes.Accept))
- return StatusCode((int)HttpStatusCode.NotAcceptable, errorMessage);
+ return StatusCode(HttpStatusCode.NotAcceptable, errorMessage);
if (headersException.MissingOrMalformedHeaders == HeaderTypes.Authorization)
return Unauthorized(errorMessage);
@@ -152,7 +174,7 @@ namespace Tgstation.Server.Host.Controllers
if (!ApiHeaders.Compatible())
{
await StatusCode(
- (int)HttpStatusCode.UpgradeRequired,
+ HttpStatusCode.UpgradeRequired,
new ErrorMessage(ErrorCode.ApiMismatch))
.ExecuteResultAsync(context)
.ConfigureAwait(false);
diff --git a/src/Tgstation.Server.Host/Controllers/ChatController.cs b/src/Tgstation.Server.Host/Controllers/ChatController.cs
index 0bfcc923bb..f642156e0f 100644
--- a/src/Tgstation.Server.Host/Controllers/ChatController.cs
+++ b/src/Tgstation.Server.Host/Controllers/ChatController.cs
@@ -134,7 +134,7 @@ namespace Tgstation.Server.Host.Controllers
throw;
}
- return StatusCode((int)HttpStatusCode.Created, dbModel.ToApi());
+ return StatusCode(HttpStatusCode.Created, dbModel.ToApi());
}
///
diff --git a/src/Tgstation.Server.Host/Controllers/ConfigurationController.cs b/src/Tgstation.Server.Host/Controllers/ConfigurationController.cs
index 54202abac3..37fc92ca1b 100644
--- a/src/Tgstation.Server.Host/Controllers/ConfigurationController.cs
+++ b/src/Tgstation.Server.Host/Controllers/ConfigurationController.cs
@@ -105,7 +105,7 @@ namespace Tgstation.Server.Host.Controllers
newFile.Content = null;
- return model.LastReadHash == null ? (IActionResult)StatusCode((int)HttpStatusCode.Created, newFile) : Json(newFile);
+ return model.LastReadHash == null ? (IActionResult)Created(newFile) : Json(newFile);
}
catch(IOException e)
{
@@ -228,7 +228,13 @@ namespace Tgstation.Server.Host.Controllers
try
{
model.IsDirectory = true;
- return await instanceManager.GetInstance(Instance).Configuration.CreateDirectory(model.Path, systemIdentity, cancellationToken).ConfigureAwait(false) ? (IActionResult)Json(model) : StatusCode((int)HttpStatusCode.Created, model);
+ return await instanceManager
+ .GetInstance(Instance)
+ .Configuration
+ .CreateDirectory(model.Path, systemIdentity, cancellationToken)
+ .ConfigureAwait(false)
+ ? (IActionResult)Json(model)
+ : Created(model);
}
catch (IOException e)
{
diff --git a/src/Tgstation.Server.Host/Controllers/InstanceController.cs b/src/Tgstation.Server.Host/Controllers/InstanceController.cs
index 434e13fe3e..487f8754ab 100644
--- a/src/Tgstation.Server.Host/Controllers/InstanceController.cs
+++ b/src/Tgstation.Server.Host/Controllers/InstanceController.cs
@@ -311,7 +311,7 @@ namespace Tgstation.Server.Host.Controllers
Logger.LogInformation("{0} {1} instance {2}: {3} ({4})", AuthenticationContext.User.Name, attached ? "attached" : "created", newInstance.Name, newInstance.Id, newInstance.Path);
var api = newInstance.ToApi();
- return attached ? (IActionResult)Json(api) : StatusCode((int)HttpStatusCode.Created, api);
+ return attached ? (IActionResult)Json(api) : Created(api);
}
///
diff --git a/src/Tgstation.Server.Host/Controllers/InstanceUserController.cs b/src/Tgstation.Server.Host/Controllers/InstanceUserController.cs
index 403dcdc1e1..dbb3ff8dae 100644
--- a/src/Tgstation.Server.Host/Controllers/InstanceUserController.cs
+++ b/src/Tgstation.Server.Host/Controllers/InstanceUserController.cs
@@ -4,7 +4,6 @@ using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Tgstation.Server.Api;
@@ -87,7 +86,7 @@ namespace Tgstation.Server.Host.Controllers
DatabaseContext.InstanceUsers.Add(dbUser);
await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
- return StatusCode((int)HttpStatusCode.Created, dbUser.ToApi());
+ return Created(dbUser.ToApi());
}
///
diff --git a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs
index 4d7302217d..20edd6e076 100644
--- a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs
+++ b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs
@@ -247,7 +247,7 @@ namespace Tgstation.Server.Host.Controllers
api.Reference = model.Reference;
api.ActiveJob = job.ToApi();
- return StatusCode((int)HttpStatusCode.Created, api);
+ return Created(api);
}
///
@@ -331,7 +331,7 @@ namespace Tgstation.Server.Host.Controllers
{
// user may have fucked with the repo manually, do what we can
await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
- return StatusCode((int)HttpStatusCode.Created, api);
+ return Created(api);
}
return Json(api);
diff --git a/src/Tgstation.Server.Host/Controllers/UserController.cs b/src/Tgstation.Server.Host/Controllers/UserController.cs
index 746fb75757..d8de2ff4e1 100644
--- a/src/Tgstation.Server.Host/Controllers/UserController.cs
+++ b/src/Tgstation.Server.Host/Controllers/UserController.cs
@@ -171,7 +171,7 @@ namespace Tgstation.Server.Host.Controllers
await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
- return StatusCode((int)HttpStatusCode.Created, dbUser.ToApi(true));
+ return Created(dbUser.ToApi(true));
}
///