diff --git a/code/server/ApiLeapHit/Controllers/PlayersConnexionController.cs b/code/server/ApiLeapHit/Controllers/PlayersConnexionController.cs new file mode 100644 index 0000000..aa099a5 --- /dev/null +++ b/code/server/ApiLeapHit/Controllers/PlayersConnexionController.cs @@ -0,0 +1,56 @@ +using DataBase.DataManager; +using DataBase.Entity; +using DTO.Factory; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.Net; + +namespace ApiLeapHit.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class PlayersConnexionController : Controller + { + private readonly DbDataManager _dataManager; + private readonly ILogger _logger; + + public PlayersConnexionController(DbDataManager dataManager, ILogger logger) + { + _dataManager = dataManager; + _logger = logger; + } + + [HttpGet("{idIdentification}")] + public async Task>> CreatePlayer(string idIdentification) + { + try + { + if (!idIdentification.Equals("K02q7naLzjmodzAFfoSO4mPydr7W5hydPMrHtA6D")) + { + return StatusCode((int)HttpStatusCode.NotFound, new ApiResponse("Le numéro n'est pas correct.")); + } + var player = new Player(); + string id; + do + { + // Générer un id unique avec des chiffres et des lettres + id = Guid.NewGuid().ToString("N"); + } + while (await _dataManager.GetPlayer(id) != null); + player.playerId = id; + player.name = id; + player.timePlayed = 0; + player.nbBallTouchTotal = 0; + await _dataManager.AddPlayer(player); + + //var response = new ApiResponse($"Le joueur a été créé avec succès. Id du joueur : {id}.", id); + return Ok(id); + } + catch (Exception ex) + { + _logger.LogError(ex, "Une erreur est survenue lors de la création du joueur."); + return StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponse("Une erreur est survenue lors de la création du joueur.")); + } + } + } +} diff --git a/code/server/ApiLeapHit/Controllers/PlayersController.cs b/code/server/ApiLeapHit/Controllers/PlayersController.cs index a835e97..96003d7 100644 --- a/code/server/ApiLeapHit/Controllers/PlayersController.cs +++ b/code/server/ApiLeapHit/Controllers/PlayersController.cs @@ -22,36 +22,6 @@ namespace ApiLeapHit.Controllers _logger = logger; } - [HttpGet("/clePlayer/{idIdentification}")] - public async Task>> CreatePlayer(string idIdentification) - { - try - { - if(!idIdentification.Equals("K02q7naLzjmodzAFfoSO4mPydr7W5hydPMrHtA6D")) - { - return StatusCode((int)HttpStatusCode.NotFound, new ApiResponse("Le numéo n'est pas correct.")); - } - var player = new Player(); - string id; - do - { - // Générer un id unique avec des chiffres et des lettres - id = Guid.NewGuid().ToString("N"); - } - while (await _dataManager.GetPlayer(id) != null); - player.playerId = id; - await _dataManager.AddPlayer(player); - - var response = new ApiResponse($"Le joueur a été créé avec succès. Id du joueur : {id}.", id); - return Ok(response); - } - catch (Exception ex) - { - _logger.LogError(ex, "Une erreur est survenue lors de la création du joueur."); - return StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponse("Une erreur est survenue lors de la création du joueur.")); - } - } - [HttpGet("{id}")] public async Task>> GetPlayer(string id) { diff --git a/code/server/ApiLeapHit/Program.cs b/code/server/ApiLeapHit/Program.cs index 958f98a..3d8d882 100644 --- a/code/server/ApiLeapHit/Program.cs +++ b/code/server/ApiLeapHit/Program.cs @@ -1,4 +1,6 @@ +using DataBase.Context; using DataBase.DataManager; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; var builder = WebApplication.CreateBuilder(args); @@ -9,6 +11,13 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(); + + + +var context = new PongDbContext(); //ou une autre classe dérivant de TheDbContext +await context.Database.EnsureCreatedAsync(); + + //builder.Services.AddSingleton(); // Add logging diff --git a/code/server/DataBase/Context/PongDbContext.cs b/code/server/DataBase/Context/PongDbContext.cs index ee2de3c..5b6b60c 100644 --- a/code/server/DataBase/Context/PongDbContext.cs +++ b/code/server/DataBase/Context/PongDbContext.cs @@ -15,7 +15,16 @@ namespace DataBase.Context public PongDbContext() { } public PongDbContext(DbContextOptions options) : base(options) { } - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().ToTable("Players"); + modelBuilder.Entity().ToTable("Games"); + modelBuilder.Entity().ToTable("Messages"); + modelBuilder.Entity().ToTable("Chats"); + + } + + protected override async void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); @@ -28,18 +37,11 @@ namespace DataBase.Context var dbUser = Environment.GetEnvironmentVariable("MARIADB_USER", EnvironmentVariableTarget.Process); var dbPassword = Environment.GetEnvironmentVariable("MARIADB_PASSWORD", EnvironmentVariableTarget.Process); var dbServer = Environment.GetEnvironmentVariable("DB_SERVER", EnvironmentVariableTarget.Process); - optionsBuilder.UseMySql($"server=leap-hit-team-mysql;port=3306;user={dbUser};password={dbPassword};database={dbDatabase}", new MySqlServerVersion(new Version(10, 11, 1))); - + Debug.WriteLine(dbPassword); + optionsBuilder.UseMySql($"server=leap-hit-team-mysql;port=3306;user=leaphit;password=leaphit;database=leaphit", new MySqlServerVersion(new Version(10, 11, 1))); + } } - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity().ToTable("Players"); - modelBuilder.Entity().ToTable("Games"); - modelBuilder.Entity().ToTable("Messages"); - modelBuilder.Entity().ToTable("Chats"); - - } } }