Вывел все API методы в отдельный файл для удобства

This commit is contained in:
neroduckale 2024-01-12 04:27:41 +05:00
parent 3e12567937
commit fff2c645dc
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 399E73062E1A3667
2 changed files with 50 additions and 32 deletions

45
nrdkwebsite/API.cs Normal file
View file

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

View file

@ -19,38 +19,11 @@ app.UseStatusCodePagesWithReExecute("/errors/{0}");
app.UseHttpsRedirection(); app.UseHttpsRedirection();
app.UseStaticFiles(); app.UseStaticFiles();
app.MapGet("/api/users", (DatabaseHandler db) => db.users.ToList()); //WORKS app.MapGet("/api/users", API.GetUsers); //WORKS
app.MapGet("/api/users/{id:int}", (int id, DatabaseHandler db) => { app.MapGet("/api/users/{id:int}", API.GetUserById); //WORKS
var users = db.users.ToList(); app.MapGet("/api/users/nickname/{name}", API.GetUserByName); //WORKS
User? user = users.FirstOrDefault(u => u.id == id); app.MapDelete("/api/users/{id:int}", API.DeleteUser); //WORKS
// если не найден, отправляем статусный код и сообщение об ошибке app.MapPost("/api/users", API.PostNewUser); //WORKS
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.UseRouting(); app.UseRouting();
app.UseAuthorization(); app.UseAuthorization();