using System; using System.Linq; using xModels.Dtos; using System.Threading; using xIdentityHelper; using xCommons.Attributes; using xCommons.Extensions; using xIdentityModels.Dtos; using xExceptions.Constants; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using xIdentityModels.Extensions; using Microsoft.AspNetCore.Authorization; using static IdentityServer4.IdentityServerConstants; namespace xIds.Controllers { public partial class ApplicationsController { // #region ApiKey ... /// /// Get Specified ApiKey ... /// /// /// /// [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Applications/ApiKeys/{id}")] [Authorize(Policy = XPolicies.EnabledUser)] public async Task> GetApiKey( [FromRoute] Guid id, CancellationToken cancellationToken = default ) { // try { // // Validate ... if (id.IsDefaultGuid()) { XException.InvalidArgs.Throw(); } // var userInfo = await GetUserInfo(); // var result = await provider.GetApiKeyAsync( id: id, userInfo: userInfo, includeBuilder: null, ignoreSoftDeleteds: true, cancellationToken: cancellationToken ); // return Ok(result.ToDynamicObject()); } catch (Exception ex) { // var result = GetExceptionActionResult(ex); return result; } } /// /// Remove Specified ApiKey ... /// /// /// /// [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpDelete("Applications/ApiKeys/{id}")] [Authorize(Policy = XPolicies.EnabledUser)] public async Task> RemoveApiKey( [FromRoute] Guid id, CancellationToken cancellationToken = default ) { // try { // // Validate ... if (id.IsDefaultGuid()) { XException.InvalidArgs.Throw(); } // var userInfo = await GetUserInfo(); // var result = await provider.RemoveApiKeyAsync( id: id, softDelete: false, userInfo: userInfo, cancellationToken: cancellationToken ); // return Ok(result.ToDynamicObject()); } catch (Exception ex) { // var result = GetExceptionActionResult(ex); return result; } } /// /// Update Specified ApiKey ... /// /// /// /// /// [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpPut("Applications/ApiKeys/{id}")] [Authorize(Policy = XPolicies.EnabledUser)] public async Task> UpdateApiKey( [FromRoute] Guid id, [FromBody] XApiKeyDto item, CancellationToken cancellationToken = default ) { // try { // // Validate ... if ( id.IsDefaultGuid() || !item.IsValidForAdd() ) { XException.InvalidArgs.Throw(); } // var userInfo = await GetUserInfo(); // var result = await provider.UpdateApiKeyAsync( id: id, item: item, userInfo: userInfo, cancellationToken: cancellationToken ); // return Ok(result.ToDynamicObject()); } catch (Exception ex) { // var result = GetExceptionActionResult(ex); return result; } } /// /// Get All Specified ApiKeys ... /// /// /// [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Applications/ApiKeys")] [Authorize(Policy = XPolicies.EnabledUser)] public async Task>> GetAllApiKeys( CancellationToken cancellationToken = default ) { // try { // var userInfo = await GetUserInfo(); // var result = await provider.GetAllApiKeyAsync( userInfo: userInfo, includeBuilder: null, ignoreSoftDeleteds: true, cancellationToken: cancellationToken, orderBuilder: x => x.OrderBy(y => y.CreatedOn) ); // return Ok(result.ToDynamicObject()); } catch (Exception ex) { // var result = GetExceptionActionResult(ex); return result; } } /// /// Query ApiKeys ... /// /// /// /// [RequireXPowered] [Authorize(LocalApi.PolicyName)] [HttpGet("Applications/ApiKeys/Query")] [Authorize(Policy = XPolicies.EnabledUser)] public async Task>> QueryApiKeys( [FromRoute] XQuery query, CancellationToken cancellationToken = default ) { // try { // var userInfo = await GetUserInfo(); // var result = await provider.QueryApiKeyAsync( query: query, predicate: null, userInfo: userInfo, includeBuilder: null, ignoreSoftDeleteds: true, cancellationToken: cancellationToken, orderBuilder: x => x.OrderBy(y => y.CreatedOn) ); // return Ok(result.ToDynamicObject()); } catch (Exception ex) { // var result = GetExceptionActionResult(ex); return result; } } #endregion } }