60 lines
2.7 KiB
C#
60 lines
2.7 KiB
C#
using Microsoft.EntityFrameworkCore;
|
||
using nrdkwebsite;
|
||
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
|
||
|
||
var builder = WebApplication.CreateBuilder(args);
|
||
#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type.
|
||
var connection = builder.Configuration.GetConnectionString("DefaultConnection");
|
||
#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type.
|
||
builder.Services.AddDbContext<DatabaseHandler>(options => options.UseMySql(connection, ServerVersion.Create(new Version(8, 0, 35), ServerType.MySql)));
|
||
builder.Services.AddRazorPages();
|
||
var app = builder.Build();
|
||
if (!app.Environment.IsDevelopment())
|
||
{
|
||
app.UseExceptionHandler("/Error");
|
||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||
app.UseHsts();
|
||
}
|
||
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 (User user, DatabaseHandler db)=>
|
||
{
|
||
user.id = db.users.Count() + 1;
|
||
await db.users.AddAsync(user);
|
||
await db.SaveChangesAsync();
|
||
return user;
|
||
}); //WORKS
|
||
|
||
app.UseRouting();
|
||
app.UseAuthorization();
|
||
app.MapRazorPages();
|
||
app.Run();
|
||
|