From fa57eba9b82d8a01cac72237147d3fa102ffa6da Mon Sep 17 00:00:00 2001 From: Emre Date: Sun, 5 Mar 2023 19:38:58 +0100 Subject: [PATCH] Updating ChampionsController but not finish :white_check_mark: --- README.md | 17 ++++++++++ doc/Images/Api_Launcher.png | Bin 0 -> 5056 bytes doc/Images/Swagger_Version.png | Bin 0 -> 8276 bytes .../ApiLol/Controllers/SkinsController.cs | 9 +++-- .../Controllers/v1/ChampionsController.cs | 13 +++----- .../Controllers/v2/ChampionsController.cs | 31 ++++++++++-------- .../Sources/DTO/PageRequest.cs | 4 ++- .../Sources/Shared/IGenericDataManager.cs | 3 +- .../Sources/StubLib/StubData.Champions.cs | 6 ++-- .../Sources/StubLib/StubData.RunePages.cs | 8 +++++ .../Sources/StubLib/StubData.Runes.cs | 8 +++++ .../Sources/StubLib/StubData.Skins.cs | 9 ++++- 12 files changed, 77 insertions(+), 31 deletions(-) create mode 100644 doc/Images/Api_Launcher.png create mode 100644 doc/Images/Swagger_Version.png diff --git a/README.md b/README.md index f6ddbc1..b88ddc8 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,23 @@ Vous pouvez le cloner via un terminal dans le répertoire de votre choix en util :information_source: *Si vous ne disposez pas de Visual Studio, allez sur le site [Microsoft Visual Studio](https://visualstudio.microsoft.com/fr/downloads/) pour pouvoir le télécharger !!!* +- ### Comment lancer l'API dotnet ? + +Pour pouvoir utiliser toutes les requêtes de l'API, il est nécessaire de récupérer le projet si cela n'a pas été fait, puis de le lancer à partir de Visual Studio. Vous pouvez directement cliquer sur la solution du projet. Ensuite, dans les projets de démarrage, choisissez "Api-Lol" : + +
+ +![Lancer l'API](doc/Images/Api_Launcher.png) + +
+ +Normalement, tout est bon et vous serez redirigé vers Swagger, qui est l'interface graphique permettant d'effectuer facilement des requêtes. Il vous suffit ensuite de choisir la version en haut à droite. La version 3.0 est normalement la plus récente et la plus performante en termes de gestion d'erreur : + +
+ +![Version API](doc/Images/Swagger_Version.png) + +
- ### Comment lancer Le projet Entity Framework ? diff --git a/doc/Images/Api_Launcher.png b/doc/Images/Api_Launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..deceb08c708a08f54d59795d838bba591cf1c8c2 GIT binary patch literal 5056 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 literal 0 HcmV?d00001 diff --git a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/SkinsController.cs b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/SkinsController.cs index ac1cc2d..bef0ede 100644 --- a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/SkinsController.cs +++ b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/SkinsController.cs @@ -54,20 +54,23 @@ namespace ApiLol.Controllers // POST api/ [HttpPost] - public async void Post([FromBody] string value) + public async Task Post([FromBody] string value) { + return Ok(); } // PUT api//5 [HttpPut("{name}")] - public async void Put(int id, [FromBody] string value) + public async Task Put(int id, [FromBody] string value) { + return Ok(); } // DELETE api//5 [HttpDelete("{name}")] - public async void Delete(string name) + public async Task Delete(string name) { + return Ok(); } } } diff --git a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v1/ChampionsController.cs b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v1/ChampionsController.cs index 2186cd5..62b7a03 100644 --- a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v1/ChampionsController.cs +++ b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v1/ChampionsController.cs @@ -25,12 +25,9 @@ namespace ApiLol.Controllers.v1 [HttpGet] public async Task Get([FromQuery] PageRequest pageRequest) { - - int nbTotal = await _manager.ChampionsMgr.GetNbItems(); - _logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest); - IEnumerable dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count)) - .Select(x => x.ToDto()); + IEnumerable dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) + .Select(x => x.ToDto()); return Ok(dtos); } @@ -39,7 +36,7 @@ namespace ApiLol.Controllers.v1 public async Task Get(string name) { _logger.LogInformation("method {Action} call with {name}", nameof(Get), name); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) .Select(x => x.ToDto()); return Ok(dtos.First()); @@ -63,7 +60,7 @@ namespace ApiLol.Controllers.v1 { _logger.LogInformation("method {Action} call with {name} and {item}", nameof(Put), name, champion); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); return Ok(await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel())); @@ -75,7 +72,7 @@ namespace ApiLol.Controllers.v1 { _logger.LogInformation("method {Action} call with {name}", nameof(Delete), name); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First())); diff --git a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs index 092347b..531787e 100644 --- a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs +++ b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs @@ -30,13 +30,17 @@ namespace ApiLol.Controllers.v2 try { int nbTotal = await _manager.ChampionsMgr.GetNbItems(); - if (pageRequest.count * pageRequest.index >= nbTotal) + if (pageRequest.count == 0) + { + pageRequest = new PageRequest() { index = 0, count = nbTotal }; + } + else if (pageRequest.count * pageRequest.index >= nbTotal) { _logger.LogWarning($"too many, maximum {nbTotal}"); return BadRequest($"Champion limit exceed, max {nbTotal}"); } - _logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest); + _logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest.count); IEnumerable dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count)) .Select(x => x.ToDto()); return Ok(dtos); @@ -54,14 +58,13 @@ namespace ApiLol.Controllers.v2 try { int nbTotal = await _manager.ChampionsMgr.GetNbItems(); - if (pageRequest == null) + if (pageRequest.count == 0) { - pageRequest.index = 0; - pageRequest.count = nbTotal; + pageRequest = new PageRequest() { index = 0, count = nbTotal }; } else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal) { - _logger.LogWarning($"too many, maximum {nbTotal}"); + _logger.LogWarning("too many, maximum {number}", nbTotal); return BadRequest($"Champion limit exceed, max {nbTotal}"); } @@ -83,7 +86,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {name}", nameof(Get), name); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) .Select(x => x.ToDto()); if (dtos.IsNullOrEmpty()) { @@ -105,7 +108,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {item}", nameof(Post), champion); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems())); + var dtos = (await _manager.ChampionsMgr.GetItemByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems())); if (!dtos.IsNullOrEmpty()) { return BadRequest("Name is already exist"); @@ -126,7 +129,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {name} and {item}", nameof(Put), name, champion); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); if (dtos.IsNullOrEmpty()) { return NotFound($"Name {name} not exist"); @@ -134,8 +137,8 @@ namespace ApiLol.Controllers.v2 // Checks if the new name exists if (name != champion.Name) { - var dtos2 = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems())); - if (dtos.IsNullOrEmpty() || dtos2.Count() > 0) + var dtos2 = (await _manager.ChampionsMgr.GetItemByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems())); + if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0) { return BadRequest("Name is already exist"); } @@ -154,7 +157,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {name}", nameof(GetChampionsSkins), name); - var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); + var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); //skinsDTO IEnumerable res = champions.First().Skins.Select(e => e.ToDto()); @@ -172,7 +175,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {name}", nameof(GetChampionsSkills), name); - var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); + var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); //SkillDTO IEnumerable res = champions.First().Skills.Select(e => e.ToDto()); @@ -191,7 +194,7 @@ namespace ApiLol.Controllers.v2 try { _logger.LogInformation("method {Action} call with {name}", nameof(Delete), name); - var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); + var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); if (dtos.IsNullOrEmpty()) { _logger.LogWarning("{name} was not found", name); diff --git a/src/EntityFramework_LoL/Sources/DTO/PageRequest.cs b/src/EntityFramework_LoL/Sources/DTO/PageRequest.cs index 2613958..c996118 100644 --- a/src/EntityFramework_LoL/Sources/DTO/PageRequest.cs +++ b/src/EntityFramework_LoL/Sources/DTO/PageRequest.cs @@ -9,6 +9,8 @@ namespace DTO public class PageRequest { public int index { get; set; } = 0; - public int count { get; set; } = 10; + public int count { get; set; } = 0; + public string? orderingPropertyName { get; set; } = null; + public bool descending { get; set; } = true; } } diff --git a/src/EntityFramework_LoL/Sources/Shared/IGenericDataManager.cs b/src/EntityFramework_LoL/Sources/Shared/IGenericDataManager.cs index ed3ac48..a3b4ee4 100644 --- a/src/EntityFramework_LoL/Sources/Shared/IGenericDataManager.cs +++ b/src/EntityFramework_LoL/Sources/Shared/IGenericDataManager.cs @@ -5,7 +5,8 @@ public interface IGenericDataManager Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false); Task GetNbItemsByName(string substring); Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false); - Task UpdateItem(T oldItem, T newItem); + Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false); + Task UpdateItem(T oldItem, T newItem); Task AddItem(T item); Task DeleteItem(T item); } diff --git a/src/EntityFramework_LoL/Sources/StubLib/StubData.Champions.cs b/src/EntityFramework_LoL/Sources/StubLib/StubData.Champions.cs index 58fc925..d7f4bf1 100644 --- a/src/EntityFramework_LoL/Sources/StubLib/StubData.Champions.cs +++ b/src/EntityFramework_LoL/Sources/StubLib/StubData.Champions.cs @@ -92,11 +92,11 @@ namespace StubLib => parent.champions.GetNbItemsWithFilter(champ => filterByName(champ, substring)); public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false) - => parent.champions.GetItemsWithFilterAndOrdering(champ => filterByName(champ, substring), index, count, orderingPropertyName, descending); - - public Task> GetItemsByNameContains(string substring, int index, int count, string? orderingPropertyName, bool descending = false) => parent.champions.GetItemsWithFilterAndOrdering(champ => filterByNameContains(champ, substring), index, count, orderingPropertyName, descending); + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false) + => parent.champions.GetItemsWithFilterAndOrdering(champ => filterByName(champ, substring), index, count, orderingPropertyName, descending); + public Task UpdateItem(Champion? oldItem, Champion? newItem) => parent.champions.UpdateItem(oldItem, newItem); } diff --git a/src/EntityFramework_LoL/Sources/StubLib/StubData.RunePages.cs b/src/EntityFramework_LoL/Sources/StubLib/StubData.RunePages.cs index a08a947..2ec8285 100644 --- a/src/EntityFramework_LoL/Sources/StubLib/StubData.RunePages.cs +++ b/src/EntityFramework_LoL/Sources/StubLib/StubData.RunePages.cs @@ -27,6 +27,9 @@ namespace StubLib => this.parent = parent; private static Func filterByName + = (rp, substring) => rp.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase); + + private static Func filterByNameContains = (rp, substring) => rp.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); private static Func filterByRune @@ -51,6 +54,11 @@ namespace StubLib .Skip(index*count).Take(count)); public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + => parent.runePages.GetItemsWithFilterAndOrdering( + rp => filterByNameContains(rp, substring), + index, count, orderingPropertyName, descending); + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.runePages.GetItemsWithFilterAndOrdering( rp => filterByName(rp, substring), index, count, orderingPropertyName, descending); diff --git a/src/EntityFramework_LoL/Sources/StubLib/StubData.Runes.cs b/src/EntityFramework_LoL/Sources/StubLib/StubData.Runes.cs index f0e8802..5ce8306 100644 --- a/src/EntityFramework_LoL/Sources/StubLib/StubData.Runes.cs +++ b/src/EntityFramework_LoL/Sources/StubLib/StubData.Runes.cs @@ -37,6 +37,9 @@ namespace StubLib = (rune, family) => rune.Family == family; private static Func filterByName + = (rune, substring) => rune.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase); + + private static Func filterByNameContains = (rune, substring) => rune.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); public Task> GetItemsByFamily(RuneFamily family, int index, int count, string? orderingPropertyName = null, bool descending = false) @@ -45,6 +48,11 @@ namespace StubLib index, count, orderingPropertyName, descending); public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + => parent.runes.GetItemsWithFilterAndOrdering( + rune => filterByNameContains(rune, substring), + index, count, orderingPropertyName, descending); + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.runes.GetItemsWithFilterAndOrdering( rune => filterByName(rune, substring), index, count, orderingPropertyName, descending); diff --git a/src/EntityFramework_LoL/Sources/StubLib/StubData.Skins.cs b/src/EntityFramework_LoL/Sources/StubLib/StubData.Skins.cs index ff5fc08..5c44dfe 100644 --- a/src/EntityFramework_LoL/Sources/StubLib/StubData.Skins.cs +++ b/src/EntityFramework_LoL/Sources/StubLib/StubData.Skins.cs @@ -48,7 +48,9 @@ namespace StubLib private static Func filterByChampion = (skin, champion) => champion != null && skin.Champion.Equals(champion!); - private static Func filterByName = (skin, substring) => skin.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); + private static Func filterByName = (skin, substring) => skin.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase); + + private static Func filterByNameContains = (skin, substring) => skin.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.skins.GetItemsWithFilterAndOrdering( @@ -56,6 +58,11 @@ namespace StubLib index, count, orderingPropertyName, descending); public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + => parent.skins.GetItemsWithFilterAndOrdering( + skin => filterByNameContains(skin, substring), + index, count, orderingPropertyName, descending); + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.skins.GetItemsWithFilterAndOrdering( skin => filterByName(skin, substring), index, count, orderingPropertyName, descending);