finalização dos endpoints

This commit is contained in:
Gabriel Almeida Bueno 2025-05-07 17:11:17 -03:00
parent 34708bd57e
commit 734b66090a
3 changed files with 21 additions and 30 deletions

View File

@ -12,20 +12,19 @@ Accept: application/json
Content-Type: application/json Content-Type: application/json
{ {
"isbn": "abc2", "isbn": "abc4",
"titulo": "teste", "titulo": "teste",
"autor": "teste" "autor": "teste"
} }
### Edita um livro ### Edita um livro
PUT {{url}}/livros/9780321741769 PUT {{url}}/livros/abc4
Accept: application/json Accept: application/json
Content-Type: application/json Content-Type: application/json
{ {
"isbn": "9780321741769", "titulo": "teste4",
"titulo": "The C# Programming Language",
"autor": "Anders Hejlsberg, Mads Torgensen" "autor": "Anders Hejlsberg, Mads Torgensen"
} }
@ -36,5 +35,5 @@ Accept: application/json
### Remove um livro ### Remove um livro
DELETE {{url}}/livros/9780321741769 DELETE {{url}}/livros/abc4
Accept: application/json Accept: application/json

View File

@ -1,52 +1,44 @@
using Biblioteca.Models; using Biblioteca.Models;
using Biblioteca.Repositories; using Biblioteca.Repositories;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
var app = builder.Build(); var app = builder.Build();
app.MapGet("/", () =>
{
string[] saudacoes = ["Olá!", "こんにちは", "Привет", "Ողջույն"];
return saudacoes[Random.Shared.Next(saudacoes.Length)];
});
// Obtém uma lista com os livros registrados. // Obtém uma lista com os livros registrados.
app.MapGet("/livros", async () => app.MapGet("/livros", async () =>
{ {
var repo = new LivroRepository(); var repo = new LivroRepository();
var resultado = await repo.Obter(pagina: 1); var res = await repo.Obter(pagina: 1);
return resultado; return res;
}); });
// Cria um novo livro. // Cria um novo livro.
app.MapPost("/livros", async (Livro livro) => app.MapPost("/livros", async (Livro livro) =>
{ {
var repo = new LivroRepository(); var repo = new LivroRepository();
var resultado = await repo.Criar(livro); var res = await repo.Criar(livro);
return resultado; return res;
}); });
// Edita um livro. // Edita um livro.
app.MapPut("/livros/{isbn}", async (string isbn, Livro livro) => app.MapPut("/livros/{isbn}", async (string isbn, Livro livro) =>
{ {
var repo = new LivroRepository(); var repo = new LivroRepository();
var resultado = await repo.Editar(isbn, livro); var res = await repo.Editar(isbn, livro);
return resultado; return res;
}); });
// Obtém os dados de um livro individual. // Obtém os dados de um livro individual.
app.MapGet("/livros/{isbn}", async (string isbn) => app.MapGet("/livros/{isbn}", async (string isbn) =>
{ {
var repo = new LivroRepository(); var repo = new LivroRepository();
var resultado = await repo.Obter(isbn); var res = await repo.Obter(isbn);
return resultado; return res;
}); });
// Remove um livro. // Remove um livro.

View File

@ -16,7 +16,7 @@ public class LivroRepository
var take = 30; var take = 30;
var offset = take * Math.Max(pagina-1, 0); var offset = take * Math.Max(pagina-1, 0);
var lista = new List<Livro>(capacity: take); var lista = new List<Livro>();
cmd.CommandText = "SELECT Isbn, Titulo, Autor, Genero, Descricao, Foto, Keywords, Ativo, CriadoEm, AtualizadoEm FROM Livro ORDER BY CriadoEm LIMIT @offset,@take"; cmd.CommandText = "SELECT Isbn, Titulo, Autor, Genero, Descricao, Foto, Keywords, Ativo, CriadoEm, AtualizadoEm FROM Livro ORDER BY CriadoEm LIMIT @offset,@take";
cmd.Parameters.AddWithValue("offset", offset); cmd.Parameters.AddWithValue("offset", offset);
@ -147,7 +147,6 @@ public class LivroRepository
var livro = await Obter(isbn); var livro = await Obter(isbn);
livro.Isbn = dados.Isbn?.Trim() ?? "";
livro.Titulo = dados.Titulo?.Trim() ?? ""; livro.Titulo = dados.Titulo?.Trim() ?? "";
livro.Autor = dados.Autor?.Trim() ?? ""; livro.Autor = dados.Autor?.Trim() ?? "";
livro.Genero = dados.Genero?.Trim() ?? ""; livro.Genero = dados.Genero?.Trim() ?? "";
@ -159,10 +158,11 @@ public class LivroRepository
cmd.CommandText = cmd.CommandText =
@" @"
UPDATE Livro SET UPDATE Livro SET
Isbn=@isbn, Titulo=@titulo, Autor=@autor, Genero=@genero, Descricao=@descricao, Foto=@foto, Keywords=@keywords, Status=@status, AtualizadoEm=@atualizadoem Titulo=@titulo, Autor=@autor, Genero=@genero, Descricao=@descricao, Foto=@foto, Keywords=@keywords, AtualizadoEm=@atualizadoem
WHERE Isbn=@isbn
"; ";
cmd.Parameters.AddWithValue("isbn", livro.Isbn); cmd.Parameters.AddWithValue("isbn", isbn);
cmd.Parameters.AddWithValue("titulo", livro.Titulo); cmd.Parameters.AddWithValue("titulo", livro.Titulo);
cmd.Parameters.AddWithValue("autor", livro.Autor); cmd.Parameters.AddWithValue("autor", livro.Autor);
cmd.Parameters.AddWithValue("genero", livro.Genero); cmd.Parameters.AddWithValue("genero", livro.Genero);
@ -183,7 +183,7 @@ public class LivroRepository
await conn.OpenAsync(); await conn.OpenAsync();
cmd.CommandText = "UPDATE Livro SET Ativo=0 WHERE Isbn=@isbn"; cmd.CommandText = "UPDATE Livro SET Ativo=false WHERE Isbn=@isbn";
cmd.Parameters.AddWithValue("isbn", isbn); cmd.Parameters.AddWithValue("isbn", isbn);
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();