From fff2c645dc82c6bcc9ad3243a9985a5172d8b2b9 Mon Sep 17 00:00:00 2001 From: neroduckale <neroduck@vk.com> Date: Fri, 12 Jan 2024 04:27:41 +0500 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B2=D0=B5=D0=BB=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=20API=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D0=B2=20?= =?UTF-8?q?=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D1=81=D1=82=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nrdkwebsite/API.cs | 45 ++++++++++++++++++++++++++++++++++++++++++ nrdkwebsite/Program.cs | 37 +++++----------------------------- 2 files changed, 50 insertions(+), 32 deletions(-) create mode 100644 nrdkwebsite/API.cs diff --git a/nrdkwebsite/API.cs b/nrdkwebsite/API.cs new file mode 100644 index 0000000..07bb038 --- /dev/null +++ b/nrdkwebsite/API.cs @@ -0,0 +1,45 @@ +namespace nrdkwebsite; + +public static class API +{ + public static async Task<User> PostNewUser(NewUser newuser, DatabaseHandler db) + { + User user = new User(newuser.nickname, db.users.OrderBy(p => p.id).Last().id + 1, newuser.mast); + await db.users.AddAsync(user); + await db.SaveChangesAsync(); + return user; + } + public static async Task<IResult> DeleteUser(int id, DatabaseHandler db) + { + User? user = db.users.FirstOrDefault(u => u.id == id); + if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); + db.users.Remove(user); + await db.SaveChangesAsync(); + return Results.Json(user); + } + public static IResult GetUserByName(string name, DatabaseHandler db) + { + var users = db.users.ToList(); + User? user = users.FirstOrDefault(u => u.nickname == name); + // если не найден, отправляем статусный код и сообщение об ошибке + if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); + + // если пользователь найден, отправляем его + return Results.Json(user); + } + public static IResult GetUserById(int id, DatabaseHandler db) + { + var users = db.users.ToList(); + User? user = users.FirstOrDefault(u => u.id == id); + // если не найден, отправляем статусный код и сообщение об ошибке + if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); + + // если пользователь найден, отправляем его + return Results.Json(user); + } + public static List<User> GetUsers(DatabaseHandler db) + { + return db.users.OrderBy(u => u.id).ToList(); + } + +} \ No newline at end of file diff --git a/nrdkwebsite/Program.cs b/nrdkwebsite/Program.cs index 0659947..d73ab58 100644 --- a/nrdkwebsite/Program.cs +++ b/nrdkwebsite/Program.cs @@ -19,38 +19,11 @@ app.UseStatusCodePagesWithReExecute("/errors/{0}"); app.UseHttpsRedirection(); app.UseStaticFiles(); -app.MapGet("/api/users", (DatabaseHandler db) => db.users.ToList()); //WORKS -app.MapGet("/api/users/{id:int}", (int id, DatabaseHandler db) => { - var users = db.users.ToList(); - User? user = users.FirstOrDefault(u => u.id == id); - // если не найден, отправляем статусный код и сообщение об ошибке - if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); - - // если пользователь найден, отправляем его - return Results.Json(user); -}); //WORKS -app.MapGet("/api/users/nickname/{name}", (string name, DatabaseHandler db) => { - var users = db.users.ToList(); - User? user = users.FirstOrDefault(u => u.nickname == name); - // если не найден, отправляем статусный код и сообщение об ошибке - if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); - - // если пользователь найден, отправляем его - return Results.Json(user); -}); //WORKS -app.MapDelete("/api/users/{id:int}", async (int id, DatabaseHandler db) => { - User? user = db.users.FirstOrDefault(u => u.id == id); - if (user == null) return Results.NotFound(new { message = "Пользователь не найден" }); - db.users.Remove(user); - await db.SaveChangesAsync(); - return Results.Json(user); -}); //WORKS -app.MapPost("/api/users", async (NewUser newuser, DatabaseHandler db) => { - User user = new User(newuser.nickname, db.users.OrderBy(p => p.id).Last().id + 1, newuser.mast); - await db.users.AddAsync(user); - await db.SaveChangesAsync(); - return user; -}); //WORKS +app.MapGet("/api/users", API.GetUsers); //WORKS +app.MapGet("/api/users/{id:int}", API.GetUserById); //WORKS +app.MapGet("/api/users/nickname/{name}", API.GetUserByName); //WORKS +app.MapDelete("/api/users/{id:int}", API.DeleteUser); //WORKS +app.MapPost("/api/users", API.PostNewUser); //WORKS app.UseRouting(); app.UseAuthorization();