Files
xSaherElmApi/Controllers/Account/AccountController+Open.cs
2026-03-22 14:09:53 +03:30

93 lines
2.5 KiB
C#

using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using xCommons.Attributes;
using xCommons.Extensions;
using xModels.Dtos;
namespace xApi.Controllers
{
public partial class AccountController
{
#region Open Actions ...
[AllowAnonymous]
[RequireXPowered]
[HttpGet("GetUserInfo")]
public async Task<ActionResult<string>> GetUserInfo(
[FromHeader] string token,
[FromQuery] string request
)
{
//
// Do Action ...
try
{
//
// Validate Args ...
await ValidationProvider
.GroupValidationBuilder()
.AddNotEmpty(token)
.AddNotEmpty(request)
.ValidateGroupAsync();
//
var result = await identityProvider.GetUserInfo(
token: token,
request: request
);
//
// Return Result
return Ok(result
.ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
[AllowAnonymous]
[RequireXPowered]
[HttpGet("GetUserInfoByDevice")]
public async Task<ActionResult<string>> GetUserInfoByDevice(
[FromQuery] string userSelectByParam,
[FromBody] XDeviceDto device
)
{
//
// Do Action ...
try
{
//
// Validate Args ...
await ValidationProvider
.GroupValidationBuilder()
.AddNotEmpty(userSelectByParam)
.AddNotNull(device)
.ValidateGroupAsync();
//
var result = await identityProvider.GetUserInfo(
userSelectByParam: userSelectByParam,
device: device
);
//
// Return Result
return Ok(result
.ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
#endregion
}
}