Files
slp-modular-cms/src/SlpModularCms.Modules.Master/Controllers/CmsInstanceController.cs
T
2026-06-30 23:23:50 +02:00

52 lines
1.4 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SlpModularCms.Modules.Master.Models;
using SlpModularCms.Modules.Master.Services;
namespace SlpModularCms.Modules.Master.Controllers;
[ApiController]
[Route("CmsInstances")]
[Authorize(Policy = "OwnerOnly")]
public class CmsInstanceController(ICmsInstanceService service) : ControllerBase
{
[HttpGet]
public async Task<IActionResult> GetAll()
{
var instances = await service.GetAllAsync();
return Ok(instances);
}
[HttpPost]
public async Task<IActionResult> Add([FromBody] CreateCmsInstanceRequest request)
{
try
{
var dto = await service.AddAsync(request);
return CreatedAtAction(nameof(GetAll), null, dto);
}
catch (ArgumentException ex)
{
return BadRequest(new { error = ex.Message });
}
}
[HttpPut("{id:guid}/status")]
public async Task<IActionResult> UpdateStatus(Guid id, [FromBody] UpdateStatusRequest request)
{
try
{
var result = await service.UpdateStatusAsync(id, request);
return Ok(result);
}
catch (KeyNotFoundException ex)
{
return NotFound(new { error = ex.Message });
}
catch (ArgumentException ex)
{
return BadRequest(new { error = ex.Message });
}
}
}