32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using UniVerse.Application.DTOs.Sync;
|
|
using UniVerse.Application.Interfaces;
|
|
|
|
namespace UniVerse.Api.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/v1/sync")]
|
|
[Authorize(Roles = "Admin")]
|
|
public class SyncController : ControllerBase
|
|
{
|
|
private readonly IScheduleSyncService _sync;
|
|
public SyncController(IScheduleSyncService sync) => _sync = sync;
|
|
|
|
[HttpPost("schedule")]
|
|
public async Task<ActionResult<SyncResultDto>> SyncSchedule([FromBody] SyncScheduleRequest req) =>
|
|
Ok(await _sync.SyncScheduleAsync(req));
|
|
|
|
[HttpGet("status")]
|
|
public async Task<ActionResult<SyncStatusDto>> Status() =>
|
|
Ok(await _sync.GetLastSyncStatusAsync());
|
|
|
|
[HttpPost("rooms")]
|
|
public async Task<ActionResult<SyncResultDto>> SyncRooms() =>
|
|
Ok(await _sync.SyncRoomsAsync());
|
|
|
|
[HttpPost("employees")]
|
|
public async Task<ActionResult> SearchEmployees([FromQuery] string fullname) =>
|
|
Ok(await _sync.SearchEmployeesAsync(fullname));
|
|
}
|