From 43771f39e0ae8e02991f6c5bc115022aa3f0baf8 Mon Sep 17 00:00:00 2001
From: Michael Green <84688932+michael-j-green@users.noreply.github.com>
Date: Thu, 19 Dec 2024 14:34:19 +1100
Subject: [PATCH] Deprecate API v1 - API v1.1 is now default
---
.../Controllers/V1.0/AccountController.cs | 2 +-
.../V1.0/BackgroundTasksController.cs | 2 +-
.../Controllers/V1.0/BiosController.cs | 2 +-
.../Controllers/V1.0/CollectionsController.cs | 16 +++----
.../Controllers/V1.0/FilterController.cs | 6 +--
.../Controllers/V1.0/GamesController.cs | 44 ++++++++++---------
.../Controllers/V1.0/LibraryController.cs | 2 +-
.../Controllers/V1.0/LogsController.cs | 2 +-
.../V1.0/PlatformMapsController.cs | 2 +-
.../Controllers/V1.0/PlatformsController.cs | 2 +-
.../Controllers/V1.0/RomsController.cs | 2 +-
.../Controllers/V1.0/SearchController.cs | 2 +-
.../Controllers/V1.0/SignaturesController.cs | 2 +-
.../Controllers/V1.0/SystemController.cs | 2 +-
.../V1.1/StateManagerController.cs | 2 +-
.../Controllers/V1.1/StatisticsController.cs | 4 +-
gaseous-server/Program.cs | 14 ++++--
17 files changed, 59 insertions(+), 49 deletions(-)
diff --git a/gaseous-server/Controllers/V1.0/AccountController.cs b/gaseous-server/Controllers/V1.0/AccountController.cs
index 92a23f77..e39a30a3 100644
--- a/gaseous-server/Controllers/V1.0/AccountController.cs
+++ b/gaseous-server/Controllers/V1.0/AccountController.cs
@@ -15,7 +15,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class AccountController : Controller
diff --git a/gaseous-server/Controllers/V1.0/BackgroundTasksController.cs b/gaseous-server/Controllers/V1.0/BackgroundTasksController.cs
index 73e4351a..1e12fd68 100644
--- a/gaseous-server/Controllers/V1.0/BackgroundTasksController.cs
+++ b/gaseous-server/Controllers/V1.0/BackgroundTasksController.cs
@@ -10,7 +10,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize(Roles = "Admin,Gamer,Player")]
public class BackgroundTasksController : Controller
diff --git a/gaseous-server/Controllers/V1.0/BiosController.cs b/gaseous-server/Controllers/V1.0/BiosController.cs
index 6dc01f8e..05063a7f 100644
--- a/gaseous-server/Controllers/V1.0/BiosController.cs
+++ b/gaseous-server/Controllers/V1.0/BiosController.cs
@@ -12,7 +12,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class BiosController : Controller
diff --git a/gaseous-server/Controllers/V1.0/CollectionsController.cs b/gaseous-server/Controllers/V1.0/CollectionsController.cs
index a5abb8a4..e5eacd67 100644
--- a/gaseous-server/Controllers/V1.0/CollectionsController.cs
+++ b/gaseous-server/Controllers/V1.0/CollectionsController.cs
@@ -14,7 +14,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class CollectionsController : Controller
@@ -29,7 +29,7 @@ public CollectionsController(
_userManager = userManager;
_signInManager = signInManager;
}
-
+
///
/// Gets all ROM collections
///
@@ -145,7 +145,7 @@ public async Task GetCollectionRomsPreview(Classes.Collections.Col
}
catch (Exception ex)
{
- return NotFound(ex);
+ return NotFound(ex);
}
}
else
@@ -212,7 +212,7 @@ public async Task GetCollectionRomsZip(long CollectionId)
public async Task NewCollectionAsync(Classes.Collections.CollectionItem Item)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
try
@@ -246,7 +246,7 @@ public async Task NewCollectionAsync(Classes.Collections.Collectio
public async Task EditCollection(long CollectionId, Classes.Collections.CollectionItem Item)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
try
@@ -277,10 +277,10 @@ public async Task EditCollection(long CollectionId, Classes.Collec
[Route("{CollectionId}/AlwaysInclude")]
[ProducesResponseType(typeof(Classes.Collections.CollectionItem), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
- public async Task EditCollectionAlwaysInclude(long CollectionId, [FromQuery]bool Rebuild, [FromBody]Collections.CollectionItem.AlwaysIncludeItem Inclusion)
+ public async Task EditCollectionAlwaysInclude(long CollectionId, [FromQuery] bool Rebuild, [FromBody] Collections.CollectionItem.AlwaysIncludeItem Inclusion)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
try
@@ -326,7 +326,7 @@ public async Task EditCollectionAlwaysInclude(long CollectionId, [
public async Task DeleteCollection(long CollectionId)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
try
diff --git a/gaseous-server/Controllers/V1.0/FilterController.cs b/gaseous-server/Controllers/V1.0/FilterController.cs
index 30a54b0f..d2f74939 100644
--- a/gaseous-server/Controllers/V1.0/FilterController.cs
+++ b/gaseous-server/Controllers/V1.0/FilterController.cs
@@ -15,7 +15,7 @@
namespace gaseous_server.Controllers
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
[ApiController]
@@ -23,7 +23,7 @@ public class FilterController : Controller
{
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;
-
+
public FilterController(
UserManager userManager,
SignInManager signInManager)
@@ -40,7 +40,7 @@ public FilterController(
public async Task FilterAsync()
{
var user = await _userManager.GetUserAsync(User);
-
+
return Ok(Filters.Filter(user.SecurityProfile.AgeRestrictionPolicy.MaximumAgeRestriction, user.SecurityProfile.AgeRestrictionPolicy.IncludeUnrated));
}
}
diff --git a/gaseous-server/Controllers/V1.0/GamesController.cs b/gaseous-server/Controllers/V1.0/GamesController.cs
index 2482dccf..12582f19 100644
--- a/gaseous-server/Controllers/V1.0/GamesController.cs
+++ b/gaseous-server/Controllers/V1.0/GamesController.cs
@@ -22,7 +22,7 @@
namespace gaseous_server.Controllers
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
[ApiController]
@@ -30,7 +30,7 @@ public class GamesController : Controller
{
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;
-
+
public GamesController(
UserManager userManager,
SignInManager signInManager
@@ -53,7 +53,7 @@ public async Task Game(
int minrating = -1,
int maxrating = -1,
bool sortdescending = false)
- {
+ {
return Ok(GetGames(name, platform, genre, gamemode, playerperspective, theme, minrating, maxrating, "Adult", true, true, sortdescending));
}
@@ -473,14 +473,15 @@ public async Task GameCoverImage(long GameId, long ArtworkId, Comm
try
{
IGDB.Models.Artwork artworkObject = Artworks.GetArtwork(ArtworkId, Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), true);
-
- if (artworkObject != null) {
+
+ if (artworkObject != null)
+ {
//string coverFilePath = Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), "Artwork", size.ToString(), artworkObject.ImageId + ".jpg");
string basePath = Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), "Artwork");
Communications comms = new Communications();
- Task ImgFetch = comms.GetSpecificImageFromServer(basePath, artworkObject.ImageId, size, new List{ Communications.IGDBAPI_ImageSize.original });
+ Task ImgFetch = comms.GetSpecificImageFromServer(basePath, artworkObject.ImageId, size, new List { Communications.IGDBAPI_ImageSize.original });
string coverFilePath = ImgFetch.Result;
@@ -578,13 +579,14 @@ public async Task GameCoverImage(long GameId, Communications.IGDBA
{
IGDB.Models.Cover cover = Classes.Metadata.Covers.GetCover(gameObject.Cover.Id, Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), false);
string basePath = Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), "Covers");
-
+
Communications comms = new Communications();
- Task ImgFetch = comms.GetSpecificImageFromServer(basePath, cover.ImageId, size, new List{ Communications.IGDBAPI_ImageSize.cover_big, Communications.IGDBAPI_ImageSize.original });
+ Task ImgFetch = comms.GetSpecificImageFromServer(basePath, cover.ImageId, size, new List { Communications.IGDBAPI_ImageSize.cover_big, Communications.IGDBAPI_ImageSize.original });
string coverFilePath = ImgFetch.Result;
- if (System.IO.File.Exists(coverFilePath)) {
+ if (System.IO.File.Exists(coverFilePath))
+ {
string filename = cover.ImageId + ".jpg";
string filepath = coverFilePath;
byte[] filedata = System.IO.File.ReadAllBytes(filepath);
@@ -627,7 +629,7 @@ public async Task GameGetFavouriteAsync(long GameId)
if (gameObject != null)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
Favourites favourites = new Favourites();
@@ -664,7 +666,7 @@ public async Task GameSetFavouriteAsync(long GameId, bool favourit
if (gameObject != null)
{
var user = await _userManager.GetUserAsync(User);
-
+
if (user != null)
{
Favourites favourites = new Favourites();
@@ -796,7 +798,8 @@ public async Task GameInvolvedCompanies(long GameId, long CompanyI
companyData.Add("company", company);
return Ok(companyData);
- } else
+ }
+ else
{
return NotFound();
}
@@ -895,7 +898,7 @@ public async Task GameReleaseDates(long GameId)
foreach (long icId in gameObject.ReleaseDates.Ids)
{
ReleaseDate releaseDate = Classes.Metadata.ReleaseDates.GetReleaseDates(icId);
-
+
rdObjects.Add(releaseDate);
}
}
@@ -923,7 +926,7 @@ public async Task GameReleaseDates(long GameId)
public async Task GameRomAsync(long GameId, int pageNumber = 0, int pageSize = 0, long PlatformId = -1, string NameSearch = "")
{
var user = await _userManager.GetUserAsync(User);
-
+
try
{
Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false, false);
@@ -1113,7 +1116,7 @@ public async Task GameRomFile(long GameId, long RomId, string File
public async Task GameRomGroupAsync(long GameId, long RomGroupId)
{
var user = await _userManager.GetUserAsync(User);
-
+
try
{
Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false, false);
@@ -1144,7 +1147,7 @@ public async Task GameRomGroupAsync(long GameId, long RomGroupId)
public async Task GetGameRomGroupAsync(long GameId)
{
var user = await _userManager.GetUserAsync(User);
-
+
try
{
Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false, false);
@@ -1204,7 +1207,7 @@ public async Task NewGameRomGroup(long GameId, long PlatformId, [F
public async Task GameRomGroupMembersAsync(long GameId, long RomGroupId, [FromBody] List RomIds)
{
var user = await _userManager.GetUserAsync(User);
-
+
try
{
Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false, false);
@@ -1386,9 +1389,10 @@ public async Task GameScreenshot(long GameId)
public async Task GameScreenshot(long GameId, long ScreenshotId)
{
try
- {
+ {
IGDB.Models.Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false, false);
- if (gameObject != null) {
+ if (gameObject != null)
+ {
IGDB.Models.Screenshot screenshotObject = Screenshots.GetScreenshot(ScreenshotId, Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), false);
if (screenshotObject != null)
{
@@ -1428,7 +1432,7 @@ public async Task GameScreenshotImage(long GameId, long Screenshot
string basePath = Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Game(gameObject), "Screenshots");
Communications comms = new Communications();
- Task ImgFetch = comms.GetSpecificImageFromServer(basePath, screenshotObject.ImageId, Size, new List{ Communications.IGDBAPI_ImageSize.original });
+ Task ImgFetch = comms.GetSpecificImageFromServer(basePath, screenshotObject.ImageId, Size, new List { Communications.IGDBAPI_ImageSize.original });
string coverFilePath = ImgFetch.Result;
diff --git a/gaseous-server/Controllers/V1.0/LibraryController.cs b/gaseous-server/Controllers/V1.0/LibraryController.cs
index 59211f1d..5c10904d 100644
--- a/gaseous-server/Controllers/V1.0/LibraryController.cs
+++ b/gaseous-server/Controllers/V1.0/LibraryController.cs
@@ -11,7 +11,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize(Roles = "Admin")]
public class LibraryController : Controller
diff --git a/gaseous-server/Controllers/V1.0/LogsController.cs b/gaseous-server/Controllers/V1.0/LogsController.cs
index 172bc20a..73a94d1c 100644
--- a/gaseous-server/Controllers/V1.0/LogsController.cs
+++ b/gaseous-server/Controllers/V1.0/LogsController.cs
@@ -11,7 +11,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize(Roles = "Admin")]
public class LogsController : Controller
diff --git a/gaseous-server/Controllers/V1.0/PlatformMapsController.cs b/gaseous-server/Controllers/V1.0/PlatformMapsController.cs
index 2e484603..e02997b2 100644
--- a/gaseous-server/Controllers/V1.0/PlatformMapsController.cs
+++ b/gaseous-server/Controllers/V1.0/PlatformMapsController.cs
@@ -19,7 +19,7 @@
namespace gaseous_server.Controllers
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[ApiController]
[Authorize]
diff --git a/gaseous-server/Controllers/V1.0/PlatformsController.cs b/gaseous-server/Controllers/V1.0/PlatformsController.cs
index d91236cc..31ab4f48 100644
--- a/gaseous-server/Controllers/V1.0/PlatformsController.cs
+++ b/gaseous-server/Controllers/V1.0/PlatformsController.cs
@@ -18,7 +18,7 @@
namespace gaseous_server.Controllers
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
[ApiController]
diff --git a/gaseous-server/Controllers/V1.0/RomsController.cs b/gaseous-server/Controllers/V1.0/RomsController.cs
index a6fe557c..b28b1303 100644
--- a/gaseous-server/Controllers/V1.0/RomsController.cs
+++ b/gaseous-server/Controllers/V1.0/RomsController.cs
@@ -19,7 +19,7 @@
namespace gaseous_server.Controllers
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
[ApiController]
diff --git a/gaseous-server/Controllers/V1.0/SearchController.cs b/gaseous-server/Controllers/V1.0/SearchController.cs
index 6a3e46b4..bf746db8 100644
--- a/gaseous-server/Controllers/V1.0/SearchController.cs
+++ b/gaseous-server/Controllers/V1.0/SearchController.cs
@@ -18,7 +18,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class SearchController : Controller
diff --git a/gaseous-server/Controllers/V1.0/SignaturesController.cs b/gaseous-server/Controllers/V1.0/SignaturesController.cs
index 3a87437f..44b2749e 100644
--- a/gaseous-server/Controllers/V1.0/SignaturesController.cs
+++ b/gaseous-server/Controllers/V1.0/SignaturesController.cs
@@ -17,7 +17,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]/[action]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class SignaturesController : Controller
diff --git a/gaseous-server/Controllers/V1.0/SystemController.cs b/gaseous-server/Controllers/V1.0/SystemController.cs
index 5abc6f6c..c3563d51 100644
--- a/gaseous-server/Controllers/V1.0/SystemController.cs
+++ b/gaseous-server/Controllers/V1.0/SystemController.cs
@@ -19,7 +19,7 @@ namespace gaseous_server.Controllers
{
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[Authorize]
public class SystemController : Controller
diff --git a/gaseous-server/Controllers/V1.1/StateManagerController.cs b/gaseous-server/Controllers/V1.1/StateManagerController.cs
index ba311c94..39c3fe91 100644
--- a/gaseous-server/Controllers/V1.1/StateManagerController.cs
+++ b/gaseous-server/Controllers/V1.1/StateManagerController.cs
@@ -11,7 +11,7 @@
namespace gaseous_server.Controllers.v1_1
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[ApiController]
public class StateManagerController : ControllerBase
diff --git a/gaseous-server/Controllers/V1.1/StatisticsController.cs b/gaseous-server/Controllers/V1.1/StatisticsController.cs
index 22ac5a22..4395cff7 100644
--- a/gaseous-server/Controllers/V1.1/StatisticsController.cs
+++ b/gaseous-server/Controllers/V1.1/StatisticsController.cs
@@ -9,10 +9,10 @@
namespace gaseous_server.Controllers.v1_1
{
[Route("api/v{version:apiVersion}/[controller]")]
- [ApiVersion("1.0")]
+ [ApiVersion("1.0", Deprecated = true)]
[ApiVersion("1.1")]
[ApiController]
- public class StatisticsController: ControllerBase
+ public class StatisticsController : ControllerBase
{
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;
diff --git a/gaseous-server/Program.cs b/gaseous-server/Program.cs
index 4c8f5b83..37a8c322 100644
--- a/gaseous-server/Program.cs
+++ b/gaseous-server/Program.cs
@@ -136,7 +136,7 @@
});
builder.Services.AddApiVersioning(config =>
{
- config.DefaultApiVersion = new ApiVersion(1, 0);
+ config.DefaultApiVersion = new ApiVersion(1, 1);
config.AssumeDefaultVersionWhenUnspecified = true;
config.ReportApiVersions = true;
config.ApiVersionReader = ApiVersionReader.Combine(new UrlSegmentApiVersionReader(),
@@ -207,6 +207,9 @@
// using System.Reflection;
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
+
+ // sort the endpoints
+ options.OrderActionsBy((apiDesc) => $"{apiDesc.RelativePath}_{apiDesc.HttpMethod}");
}
);
builder.Services.AddHostedService();
@@ -271,9 +274,12 @@
var descriptions = app.DescribeApiVersions();
foreach (var description in descriptions)
{
- var url = $"/swagger/{description.GroupName}/swagger.json";
- var name = description.GroupName.ToUpperInvariant();
- options.SwaggerEndpoint(url, name);
+ if (description.IsDeprecated == false)
+ {
+ var url = $"/swagger/{description.GroupName}/swagger.json";
+ var name = description.GroupName.ToUpperInvariant();
+ options.SwaggerEndpoint(url, name);
+ }
}
}
);