mirror of
https://github.com/GCMatters/hermes.git
synced 2026-02-04 05:30:13 +01:00
87 lines
2.0 KiB
C#
87 lines
2.0 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using WebApp.Data;
|
|
using WebApp.Entities;
|
|
|
|
namespace WebApp.Controllers.Api;
|
|
|
|
[ApiController]
|
|
[Route("api/events")]
|
|
public class EventsApiController : ControllerBase
|
|
{
|
|
private readonly ApplicationDbContext _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/5
|
|
[HttpGet("{id}")]
|
|
public IActionResult GetById(int id)
|
|
{
|
|
var ev = _context.Events.Find(id);
|
|
if (ev == null)
|
|
return NotFound();
|
|
|
|
return Ok(ev);
|
|
}
|
|
|
|
// POST: /api/events
|
|
[HttpPost]
|
|
public IActionResult Create([FromBody] Event ev)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
ev.EventDate = DateTime.SpecifyKind(ev.EventDate, DateTimeKind.Utc);
|
|
|
|
_context.Events.Add(ev);
|
|
_context.SaveChanges();
|
|
|
|
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.");
|
|
|
|
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;
|
|
|
|
_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();
|
|
|
|
_context.Events.Remove(ev);
|
|
_context.SaveChanges();
|
|
|
|
return NoContent();
|
|
}
|
|
}
|