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 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 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 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();