Вывел все API методы в отдельный файл для удобства
This commit is contained in:
parent
3e12567937
commit
fff2c645dc
2 changed files with 50 additions and 32 deletions
45
nrdkwebsite/API.cs
Normal file
45
nrdkwebsite/API.cs
Normal 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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue