feat: Sistema de Usuarios - Backend CRUD + JWT Auth (Issue #1)
Implementación fundacional del proyecto PruebaGentle: - Arquitectura Clean/Hexagonal: Core, Infrastructure, API - 6 Stored Procedures para CRUD + autenticación - JWT authentication con BCrypt password hashing - Docker Compose (SQL Server + Backend) - Solución .NET 10 con Dapper + SqlClient Closes #1
This commit is contained in:
8
Backend/Sql/CreateUsersTable.sql
Normal file
8
Backend/Sql/CreateUsersTable.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE Users (
|
||||
Id INT IDENTITY(1,1) PRIMARY KEY,
|
||||
Username NVARCHAR(50) NOT NULL UNIQUE,
|
||||
PasswordHash NVARCHAR(255) NOT NULL,
|
||||
Email NVARCHAR(100) NOT NULL UNIQUE,
|
||||
NombreCompleto NVARCHAR(100) NOT NULL,
|
||||
FechaCreacion DATETIME NOT NULL DEFAULT GETDATE()
|
||||
);
|
||||
13
Backend/Sql/sp_User_Create.sql
Normal file
13
Backend/Sql/sp_User_Create.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_Create
|
||||
@Username NVARCHAR(50),
|
||||
@PasswordHash NVARCHAR(255),
|
||||
@Email NVARCHAR(100),
|
||||
@NombreCompleto NVARCHAR(100)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
INSERT INTO Users (Username, PasswordHash, Email, NombreCompleto)
|
||||
OUTPUT INSERTED.Id, INSERTED.Username, INSERTED.Email, INSERTED.NombreCompleto, INSERTED.FechaCreacion
|
||||
VALUES (@Username, @PasswordHash, @Email, @NombreCompleto);
|
||||
END
|
||||
9
Backend/Sql/sp_User_Delete.sql
Normal file
9
Backend/Sql/sp_User_Delete.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_Delete
|
||||
@Id INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DELETE FROM Users
|
||||
WHERE Id = @Id;
|
||||
END
|
||||
9
Backend/Sql/sp_User_GetAll.sql
Normal file
9
Backend/Sql/sp_User_GetAll.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_GetAll
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT Id, Username, Email, NombreCompleto, FechaCreacion
|
||||
FROM Users
|
||||
ORDER BY FechaCreacion DESC;
|
||||
END
|
||||
10
Backend/Sql/sp_User_GetById.sql
Normal file
10
Backend/Sql/sp_User_GetById.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_GetById
|
||||
@Id INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT Id, Username, Email, NombreCompleto, FechaCreacion
|
||||
FROM Users
|
||||
WHERE Id = @Id;
|
||||
END
|
||||
10
Backend/Sql/sp_User_GetByUsername.sql
Normal file
10
Backend/Sql/sp_User_GetByUsername.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_GetByUsername
|
||||
@Username NVARCHAR(50)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT Id, Username, PasswordHash, Email, NombreCompleto, FechaCreacion
|
||||
FROM Users
|
||||
WHERE Username = @Username;
|
||||
END
|
||||
16
Backend/Sql/sp_User_Update.sql
Normal file
16
Backend/Sql/sp_User_Update.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
CREATE OR ALTER PROCEDURE sp_User_Update
|
||||
@Id INT,
|
||||
@Username NVARCHAR(50),
|
||||
@Email NVARCHAR(100),
|
||||
@NombreCompleto NVARCHAR(100)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
UPDATE Users
|
||||
SET Username = @Username,
|
||||
Email = @Email,
|
||||
NombreCompleto = @NombreCompleto
|
||||
OUTPUT INSERTED.Id, INSERTED.Username, INSERTED.Email, INSERTED.NombreCompleto, INSERTED.FechaCreacion
|
||||
WHERE Id = @Id;
|
||||
END
|
||||
Reference in New Issue
Block a user