-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
66 lines (53 loc) · 2 KB
/
Copy pathProgram.cs
File metadata and controls
66 lines (53 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System.Text.RegularExpressions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(policy =>
{
policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
});
});
var app = builder.Build();
app.UseCors();
app.UseDefaultFiles();
app.UseStaticFiles();
// --- NUEVA MODIFICACIÓN: Lista en memoria para almacenar los usuarios ---
// Usamos una lista estática para que los datos persistan mientras el servidor esté encendido
List<object> listaUsuarios = new List<object>();
// ------------------------------------------------------------------------
// 1. Ruta POST: Recibe el payload del formulario y lo guarda en la lista
app.MapPost("/usuarios", (UsuarioPayload payload) =>
{
if (string.IsNullOrWhiteSpace(payload.Nombre) || string.IsNullOrWhiteSpace(payload.Email))
{
return Results.BadRequest(new { error = "Datos incompletos", mensaje = "El payload debe incluir 'nombre' y 'email'." });
}
string patronEmail = @"^[^\s@]+@[^\s@]+\.[^\s@]+$";
if (!Regex.IsMatch(payload.Email, patronEmail))
{
return Results.BadRequest(new { error = "Formato inválido", mensaje = "El correo electrónico no es válido." });
}
// Creamos el nuevo usuario con su ID único
var nuevoUsuario = new
{
id = Random.Shared.Next(1, 10000),
nombre = payload.Nombre,
email = payload.Email,
estado = "creado"
};
// Guardamos el usuario en nuestra lista interna
listaUsuarios.Add(nuevoUsuario);
return Results.Created($"/usuarios/{nuevoUsuario.id}", nuevoUsuario);
});
// 2. NUEVA RUTA GET: Devuelve la lista completa de usuarios como un PAYLOAD de respuesta
app.MapGet("/usuarios", () =>
{
return Results.Ok(listaUsuarios);
});
var puerto = Environment.GetEnvironmentVariable("PORT") ?? "3000";
app.Run($"http://0.0.0:{puerto}");
public class UsuarioPayload
{
public string Nombre { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
}