From aa944022e1488649ae38119701278e769cfdc6e0 Mon Sep 17 00:00:00 2001 From: Peace Date: Tue, 11 Jun 2024 14:21:51 +0900 Subject: [PATCH] pizza api --- MinimumWebAPI/DB/Pizza.cs | 8 +++++++ MinimumWebAPI/DB/PizzaDB.cs | 48 +++++++++++++++++++++++++++++++++++++ MinimumWebAPI/Program.cs | 10 +++++++- 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 MinimumWebAPI/DB/Pizza.cs create mode 100644 MinimumWebAPI/DB/PizzaDB.cs diff --git a/MinimumWebAPI/DB/Pizza.cs b/MinimumWebAPI/DB/Pizza.cs new file mode 100644 index 0000000..43f8dc8 --- /dev/null +++ b/MinimumWebAPI/DB/Pizza.cs @@ -0,0 +1,8 @@ +namespace PizzaStore.DB +{ + public record Pizza + { + public int Id { get; set; } + public string? Name { get; set; } + } +} diff --git a/MinimumWebAPI/DB/PizzaDB.cs b/MinimumWebAPI/DB/PizzaDB.cs new file mode 100644 index 0000000..ca6fec5 --- /dev/null +++ b/MinimumWebAPI/DB/PizzaDB.cs @@ -0,0 +1,48 @@ +namespace PizzaStore.DB +{ + public class PizzaDB + { + private static List _pizzas = new List() + { + new Pizza{ Id=1, Name="Montemagno, Pizza shaped like a great mountain" }, + new Pizza{ Id=2, Name="The Galloway, Pizza shaped like a submarine, silent but deadly"}, + new Pizza{ Id=3, Name="The Noring, Pizza shaped like a Viking helmet, where's the mead"} + }; + + public static List GetPizzas() + { + return _pizzas; + } + + public static Pizza? GetPizza(int id) + { + return _pizzas.SingleOrDefault(p => p.Id == id); + } + + public static Pizza CreatePizza(Pizza pizza) + { + _pizzas.Add(pizza); + return pizza; + } + + public static Pizza UpdatePizza(Pizza update) + { + _pizzas = _pizzas.Select(p => + { + if (p.Id == update.Id) + { + p.Name = update.Name; + } + + return p; + }).ToList(); + + return update; + } + + public static void RemovePizza(int id) + { + _pizzas = _pizzas.FindAll(p => p.Id != id).ToList(); + } + } +} diff --git a/MinimumWebAPI/Program.cs b/MinimumWebAPI/Program.cs index 3196f15..aef13d5 100644 --- a/MinimumWebAPI/Program.cs +++ b/MinimumWebAPI/Program.cs @@ -1,4 +1,5 @@ using Microsoft.OpenApi.Models; +using PizzaStore.DB; var builder = WebApplication.CreateBuilder(args); @@ -19,6 +20,13 @@ if (app.Environment.IsDevelopment()) }); } -app.MapGet("/", () => "Hello World!"); +app.MapGet("/", () => "Hello Pizza!"); + +// Pizza Mapping +app.MapGet("/pizzas", () => PizzaDB.GetPizzas()); +app.MapGet("/pizzas/{id}", (int id) => PizzaDB.GetPizza(id)); +app.MapPost("/pizzas", (Pizza pizza) => PizzaDB.CreatePizza(pizza)); +app.MapPut("/pizzas", (Pizza pizza) => PizzaDB.UpdatePizza(pizza)); +app.MapDelete("/pizzas/{id}", (int id) => PizzaDB.RemovePizza(id)); app.Run();