improvement: 관리자 기기 삭제/차단 API 추가 (#239)
All checks were successful
SPMS_API/pipeline/head This commit looks good
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/240
This commit is contained in:
commit
76873e7fbc
|
|
@ -73,6 +73,15 @@ public class DeviceController : ControllerBase
|
||||||
return Ok(ApiResponse.Success());
|
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")]
|
[HttpPost("list")]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
[SwaggerOperation(Summary = "디바이스 목록", Description = "대시보드에서 디바이스 목록을 조회합니다. JWT 인증 필요.")]
|
[SwaggerOperation(Summary = "디바이스 목록", Description = "대시보드에서 디바이스 목록을 조회합니다. JWT 인증 필요.")]
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ public interface IDeviceService
|
||||||
Task<DeviceInfoResponseDto> GetInfoAsync(long serviceId, DeviceInfoRequestDto request);
|
Task<DeviceInfoResponseDto> GetInfoAsync(long serviceId, DeviceInfoRequestDto request);
|
||||||
Task UpdateAsync(long serviceId, DeviceUpdateRequestDto request);
|
Task UpdateAsync(long serviceId, DeviceUpdateRequestDto request);
|
||||||
Task DeleteAsync(long serviceId, DeviceDeleteRequestDto request);
|
Task DeleteAsync(long serviceId, DeviceDeleteRequestDto request);
|
||||||
|
Task AdminDeleteAsync(long deviceId);
|
||||||
Task<DeviceListResponseDto> GetListAsync(long? serviceId, DeviceListRequestDto request);
|
Task<DeviceListResponseDto> GetListAsync(long? serviceId, DeviceListRequestDto request);
|
||||||
Task SetTagsAsync(long serviceId, DeviceTagsRequestDto request);
|
Task SetTagsAsync(long serviceId, DeviceTagsRequestDto request);
|
||||||
Task SetAgreeAsync(long serviceId, DeviceAgreeRequestDto request);
|
Task SetAgreeAsync(long serviceId, DeviceAgreeRequestDto request);
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,19 @@ public class DeviceService : IDeviceService
|
||||||
await _tokenCache.InvalidateAsync(serviceId, device.Id);
|
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)
|
public async Task<DeviceListResponseDto> GetListAsync(long? serviceId, DeviceListRequestDto request)
|
||||||
{
|
{
|
||||||
Platform? platform = null;
|
Platform? platform = null;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user