diff --git a/WebApp/Controllers/EventApiController.cs b/WebApp/Controllers/EventApiController.cs index 6ac3d51..64b890f 100644 --- a/WebApp/Controllers/EventApiController.cs +++ b/WebApp/Controllers/EventApiController.cs @@ -1,89 +1,86 @@ using Microsoft.AspNetCore.Mvc; -using System.Linq.Expressions; -using System.Reflection.Metadata; using WebApp.Data; using WebApp.Entities; -namespace WebApp.Controllers.Api +namespace WebApp.Controllers.Api; + +[ApiController] +[Route("api/events")] +public class EventsApiController : ControllerBase { - [ApiController] - [Route("api/events")] - public class EventsApiController : ControllerBase + private readonly ApplicationDbContext _context; + + public EventsApiController(ApplicationDbContext context) { - private readonly ApplicationDbContext _context; + _context = context; + } - public EventsApiController(ApplicationDbContext context) - { - _context = context; - } + // GET: /api/events + [HttpGet] + public IActionResult GetAll() + { + var events = _context.Events.ToList(); + return Ok(events); + } - // GET: /api/events - [HttpGet] - public IActionResult GetAll() - { - var events = _context.Events.ToList(); - return Ok(events); - } + // GET: /api/events/5 + [HttpGet("{id}")] + public IActionResult GetById(int id) + { + var ev = _context.Events.Find(id); + if (ev == null) + return NotFound(); - // GET: /api/events/5 - [HttpGet("{id}")] - public IActionResult GetById(int id) - { - var ev = _context.Events.Find(id); - if (ev == null) - return NotFound(); + return Ok(ev); + } - return Ok(ev); - } + // POST: /api/events + [HttpPost] + public IActionResult Create([FromBody] Event ev) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); - // POST: /api/events - [HttpPost] - public IActionResult Create([FromBody] Event ev) - { - if (!ModelState.IsValid) - return BadRequest(ModelState); + ev.EventDate = DateTime.SpecifyKind(ev.EventDate, DateTimeKind.Utc); - ev.EventDate = DateTime.SpecifyKind(ev.EventDate, DateTimeKind.Utc); + _context.Events.Add(ev); + _context.SaveChanges(); - _context.Events.Add(ev); - _context.SaveChanges(); + return CreatedAtAction(nameof(GetById), new { id = ev.EventId }, ev); + } - return CreatedAtAction(nameof(GetById), new { id = ev.EventId }, ev); - } + // PUT: /api/events/5 + [HttpPut("{id}")] + public IActionResult Update(int id, [FromBody] Event updated) + { + if (id != updated.EventId) + return BadRequest("ID w URL nie zgadza się z obiektem."); - // PUT: /api/events/5 - [HttpPut("{id}")] - public IActionResult Update(int id, [FromBody] Event updated) - { - if (id != updated.EventId) - return BadRequest("ID w URL nie zgadza się z obiektem."); + var ev = _context.Events.Find(id); + if (ev == null) + return NotFound(); - var ev = _context.Events.Find(id); - if (ev == null) - return NotFound(); + ev.Title = updated.Title; + ev.Description = updated.Description; + ev.Location = updated.Location; + ev.EventDate = updated.EventDate; + ev.OrganisationId = updated.OrganisationId; - ev.Title = updated.Title; - ev.Description = updated.Description; - ev.Location = updated.Location; - ev.EventDate = updated.EventDate; - ev.OrganisationId = updated.OrganisationId; + _context.SaveChanges(); + return NoContent(); + } - _context.SaveChanges(); - return NoContent(); - } + // DELETE: /api/events/5 + [HttpDelete("{id}")] + public IActionResult Delete(int id) + { + var ev = _context.Events.Find(id); + if (ev == null) + return NotFound(); - // DELETE: /api/events/5 - [HttpDelete("{id}")] - public IActionResult Delete(int id) - { - var ev = _context.Events.Find(id); - if (ev == null) - return NotFound(); + _context.Events.Remove(ev); + _context.SaveChanges(); - _context.Events.Remove(ev); - _context.SaveChanges(); - - return NoContent(); - } + return NoContent(); } } diff --git a/WebApp/Program.cs b/WebApp/Program.cs index 2ff8e98..83acd6e 100644 --- a/WebApp/Program.cs +++ b/WebApp/Program.cs @@ -1,4 +1,3 @@ -using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using WebApp.Data; using WebApp.Entities; @@ -15,12 +14,20 @@ builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfi .AddEntityFrameworkStores(); builder.Services.AddControllersWithViews(); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "hermes", Version = "v1" }); + }); + var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseMigrationsEndPoint(); + app.UseSwagger(); + app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "hermes v1")); } else { diff --git a/WebApp/WebApp.csproj b/WebApp/WebApp.csproj index 0d2b14c..af037cd 100644 --- a/WebApp/WebApp.csproj +++ b/WebApp/WebApp.csproj @@ -21,8 +21,13 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + + + +