improvement: 관리자 기기 삭제/차단 API 추가 (#239) #240
|
|
@ -73,6 +73,15 @@ public class DeviceController : ControllerBase
|
|||
return Ok(ApiResponse.Success());
|
||||
}
|
||||
|
||||
[HttpPost("admin/delete")]
|
||||
[Authorize]
|
||||
[SwaggerOperation(Summary = "관리자 기기 삭제", Description = "관리자가 기기를 삭제(비활성화)합니다. 삭제 즉시 발송이 차단됩니다. JWT 인증 필요.")]
|
||||
public async Task<IActionResult> AdminDeleteAsync([FromBody] DeviceDeleteRequestDto request)
|
||||
{
|
||||
await _deviceService.AdminDeleteAsync(request.DeviceId);
|
||||
return Ok(ApiResponse.Success());
|
||||
}
|
||||
|
||||
[HttpPost("list")]
|
||||
[Authorize]
|
||||
[SwaggerOperation(Summary = "디바이스 목록", Description = "대시보드에서 디바이스 목록을 조회합니다. JWT 인증 필요.")]
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ public interface IDeviceService
|
|||
Task<DeviceInfoResponseDto> GetInfoAsync(long serviceId, DeviceInfoRequestDto request);
|
||||
Task UpdateAsync(long serviceId, DeviceUpdateRequestDto request);
|
||||
Task DeleteAsync(long serviceId, DeviceDeleteRequestDto request);
|
||||
Task AdminDeleteAsync(long deviceId);
|
||||
Task<DeviceListResponseDto> GetListAsync(long? serviceId, DeviceListRequestDto request);
|
||||
Task SetTagsAsync(long serviceId, DeviceTagsRequestDto request);
|
||||
Task SetAgreeAsync(long serviceId, DeviceAgreeRequestDto request);
|
||||
|
|
|
|||
|
|
@ -119,6 +119,19 @@ public class DeviceService : IDeviceService
|
|||
await _tokenCache.InvalidateAsync(serviceId, device.Id);
|
||||
}
|
||||
|
||||
public async Task AdminDeleteAsync(long deviceId)
|
||||
{
|
||||
var device = await _deviceRepository.GetByIdAsync(deviceId);
|
||||
if (device == null)
|
||||
throw new SpmsException(ErrorCodes.DeviceNotFound, "존재하지 않는 디바이스입니다.", 404);
|
||||
|
||||
device.IsActive = false;
|
||||
device.UpdatedAt = DateTime.UtcNow;
|
||||
_deviceRepository.Update(device);
|
||||
await _unitOfWork.SaveChangesAsync();
|
||||
await _tokenCache.InvalidateAsync(device.ServiceId, device.Id);
|
||||
}
|
||||
|
||||
public async Task<DeviceListResponseDto> GetListAsync(long? serviceId, DeviceListRequestDto request)
|
||||
{
|
||||
Platform? platform = null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user