83 lines
2.6 KiB
C#
83 lines
2.6 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using TaxBaik.Application.Services;
|
|
using TaxBaik.Domain.Entities;
|
|
|
|
namespace TaxBaik.Web.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
[Authorize]
|
|
public class CommonCodeController(CommonCodeService commonCodeService) : ControllerBase
|
|
{
|
|
[HttpGet]
|
|
public async Task<IActionResult> GetAllActive()
|
|
{
|
|
try
|
|
{
|
|
var codes = await commonCodeService.GetAllActiveAsync();
|
|
return Ok(codes);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return StatusCode(500, new { error = "공통코드 조회 실패", message = ex.Message });
|
|
}
|
|
}
|
|
|
|
[HttpGet("group/{group}")]
|
|
public async Task<IActionResult> GetByGroup(string group)
|
|
{
|
|
try
|
|
{
|
|
var codes = await commonCodeService.GetByGroupAsync(group);
|
|
return Ok(codes);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return StatusCode(500, new { error = "그룹별 공통코드 조회 실패", message = ex.Message });
|
|
}
|
|
}
|
|
|
|
[HttpGet("groups")]
|
|
public async Task<IActionResult> GetGroups()
|
|
{
|
|
try
|
|
{
|
|
var groups = await commonCodeService.GetAllGroupsAsync();
|
|
return Ok(groups);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return StatusCode(500, new { error = "공통코드 그룹 조회 실패", message = ex.Message });
|
|
}
|
|
}
|
|
|
|
[HttpGet("{group}/{value}")]
|
|
public async Task<IActionResult> Get(string group, string value)
|
|
{
|
|
var code = await commonCodeService.GetAsync(group, value);
|
|
return code is null ? NotFound() : Ok(code);
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> Upsert([FromBody] CommonCode code)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(code.CodeGroup) || string.IsNullOrWhiteSpace(code.CodeValue) || string.IsNullOrWhiteSpace(code.CodeName))
|
|
return BadRequest(new { error = "코드 그룹, 값, 이름은 필수입니다." });
|
|
if (code.CodeGroup.Any(char.IsWhiteSpace))
|
|
return BadRequest(new { error = "code_group에는 공백을 사용할 수 없습니다." });
|
|
if (code.CodeValue.Contains(' '))
|
|
return BadRequest(new { error = "code_value에는 공백을 사용할 수 없습니다." });
|
|
|
|
await commonCodeService.UpsertAsync(code);
|
|
return Ok(code);
|
|
}
|
|
|
|
[HttpDelete("{group}/{value}")]
|
|
public async Task<IActionResult> Delete(string group, string value)
|
|
{
|
|
await commonCodeService.DeleteAsync(group, value);
|
|
return NoContent();
|
|
}
|
|
}
|