using AsbCloudApp.Data.User;
using AsbCloudApp.Repositories;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;

namespace AsbCloudWebApi.Controllers
{
    /// <summary>
    /// Редактор ролей пользователей для админки
    /// </summary>
    [Route("api/admin/role")]
    [ApiController]
    [Authorize]
    public class AdminUserRoleController : CrudController<UserRoleDto, IUserRoleRepository>
    {
        public AdminUserRoleController(IUserRoleRepository service)
            : base(service)
        {
            UpdateForbidAsync = async (dto, token) =>
            {
                var role = await service.GetOrDefaultAsync(dto.Id, token);
                return role?.Id == 1;
            };

            DeleteForbidAsync = (id, token) =>
            {
                return Task.FromResult(id == 1);
            };
        }
    }
}