From a14e6ffc0f9f75fe92d6167151f9aa2b04b2dcc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20P=C3=A9rez=20Ngounou?= Date: Sat, 28 Jan 2023 10:01:44 +0100 Subject: [PATCH] Modification --- Sources/API Gateway/ocelot.json | 28 ++++++++++++++++++ .../BowlingApi/Properties/launchSettings.json | 9 ++++++ .../Data/JoueurAddedPayload.cs | 13 ++++++++ Sources/GraphQL Project/Data/Mutation.cs | 18 +++++++++++ Sources/GraphQL Project/Program.cs | 6 +++- .../Properties/launchSettings.json | 9 ++++++ .../GraphQL Project/Record/AddJoueurInput.cs | 3 ++ Sources/GraphQL Project/bowling.db | Bin 45056 -> 45056 bytes Sources/GraphQL Project/bowling.db-shm | Bin 32768 -> 0 bytes Sources/GraphQL Project/bowling.db-wal | 0 Sources/Solution.sln | 12 ++++++++ 11 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 Sources/API Gateway/ocelot.json create mode 100644 Sources/GraphQL Project/Data/JoueurAddedPayload.cs create mode 100644 Sources/GraphQL Project/Data/Mutation.cs create mode 100644 Sources/GraphQL Project/Record/AddJoueurInput.cs delete mode 100644 Sources/GraphQL Project/bowling.db-shm delete mode 100644 Sources/GraphQL Project/bowling.db-wal diff --git a/Sources/API Gateway/ocelot.json b/Sources/API Gateway/ocelot.json new file mode 100644 index 0000000..145b368 --- /dev/null +++ b/Sources/API Gateway/ocelot.json @@ -0,0 +1,28 @@ +{ + "Routes": [ + { + "DownstreamPathTemplate": "/api/joueur", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 5001 + } + ], + "UpstreamPathTemplate": "/rest/joueur", + "UpstreamHttpMethod": [ "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/graphql", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 5002 + } + ], + "UpstreamPathTemplate": "/graphql", + "UpstreamHttpMethod": [ "get" ] + } + ] +} \ No newline at end of file diff --git a/Sources/BowlingApi/Properties/launchSettings.json b/Sources/BowlingApi/Properties/launchSettings.json index 018693f..fc48bb7 100644 --- a/Sources/BowlingApi/Properties/launchSettings.json +++ b/Sources/BowlingApi/Properties/launchSettings.json @@ -27,6 +27,15 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, + "RestFull": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:5001", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, diff --git a/Sources/GraphQL Project/Data/JoueurAddedPayload.cs b/Sources/GraphQL Project/Data/JoueurAddedPayload.cs new file mode 100644 index 0000000..6cfb2dd --- /dev/null +++ b/Sources/GraphQL Project/Data/JoueurAddedPayload.cs @@ -0,0 +1,13 @@ +using DTOs; + +namespace GraphQL_Project.Data; + +public class JoueurAddedPayload +{ + public JoueurDTO Joueur { get; } + + public JoueurAddedPayload(JoueurDTO joueur) + { + Joueur = joueur ?? throw new ArgumentNullException(nameof(joueur)); + } +} \ No newline at end of file diff --git a/Sources/GraphQL Project/Data/Mutation.cs b/Sources/GraphQL Project/Data/Mutation.cs new file mode 100644 index 0000000..3932829 --- /dev/null +++ b/Sources/GraphQL Project/Data/Mutation.cs @@ -0,0 +1,18 @@ +using BowlingService.Interfaces; +using DTOs; +using GraphQL_Project.Record; + +namespace GraphQL_Project.Data; + +public class Mutation +{ + public async Task AddjoueurAsync(AddJoueurInput input, [Service] IJoueurService joueurService) + { + JoueurDTO joueurDto = new JoueurDTO + { + Pseudo = input.Pseudo + }; + var result = await joueurService.Add(joueurDto); + return new JoueurAddedPayload(result); + } +} \ No newline at end of file diff --git a/Sources/GraphQL Project/Program.cs b/Sources/GraphQL Project/Program.cs index 818e024..9f243fe 100644 --- a/Sources/GraphQL Project/Program.cs +++ b/Sources/GraphQL Project/Program.cs @@ -3,6 +3,7 @@ using BowlingRepository.Interface; using BowlingService; using BowlingService.Interfaces; using GraphQL_Project; +using GraphQL_Project.Data; using Mapper; var builder = WebApplication.CreateBuilder(args); @@ -10,11 +11,14 @@ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddGraphQLServer() - .AddQueryType(); + .AddQueryType() + .AddMutationType(); builder.Services.AddAutoMapper(typeof(JoueurProfile)); builder.Services.AddScoped(); builder.Services.AddScoped(); + + var app = builder.Build(); // Configure the HTTP request pipeline. diff --git a/Sources/GraphQL Project/Properties/launchSettings.json b/Sources/GraphQL Project/Properties/launchSettings.json index 491e83b..fedf6f9 100644 --- a/Sources/GraphQL Project/Properties/launchSettings.json +++ b/Sources/GraphQL Project/Properties/launchSettings.json @@ -16,6 +16,15 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, + "GraphQL": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:5002", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, diff --git a/Sources/GraphQL Project/Record/AddJoueurInput.cs b/Sources/GraphQL Project/Record/AddJoueurInput.cs new file mode 100644 index 0000000..ba483c2 --- /dev/null +++ b/Sources/GraphQL Project/Record/AddJoueurInput.cs @@ -0,0 +1,3 @@ +namespace GraphQL_Project.Record; + +public record AddJoueurInput(string Pseudo); \ No newline at end of file diff --git a/Sources/GraphQL Project/bowling.db b/Sources/GraphQL Project/bowling.db index ebb188c75a2401b94e1f6f696182f03dfbb7955e..67440ac9b463d80b9dfbf795241192ae40928c02 100644 GIT binary patch delta 103 zcmZp8z|`=7X~S)QMvlpM{8hyn7#KMC=QHqs<$uY4m;WOF8vdR9^ZAc%78GdbpFBTa zjfabag+Y=bB@qNSUyL_45aHmz$-w`I|2zLD{