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

View File

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

View File

@ -16,7 +16,7 @@ public class LivroRepository
var take = 30;
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.Parameters.AddWithValue("offset", offset);
@ -147,7 +147,6 @@ public class LivroRepository
var livro = await Obter(isbn);
livro.Isbn = dados.Isbn?.Trim() ?? "";
livro.Titulo = dados.Titulo?.Trim() ?? "";
livro.Autor = dados.Autor?.Trim() ?? "";
livro.Genero = dados.Genero?.Trim() ?? "";
@ -159,10 +158,11 @@ public class LivroRepository
cmd.CommandText =
@"
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("autor", livro.Autor);
cmd.Parameters.AddWithValue("genero", livro.Genero);
@ -183,7 +183,7 @@ public class LivroRepository
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);
await cmd.ExecuteNonQueryAsync();