using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Interface; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers { /// /// 三方资源管理(暂时没有业务关联) /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "资源管理_Resources")] public class ResourcesController : ControllerBase { private readonly ResourceApp _app; public ResourcesController(ResourceApp app) { _app = app; } [HttpGet] public async Task Load([FromQuery]QueryResourcesReq request) { return await _app.Load(request); } /// /// 同步站点API到资源列表 /// 读取站点API信息,如果资源列表中不存在,则添加 /// [HttpPost] public async Task Sync() { var result = new Response(); try { await _app.Sync(); return result; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } [HttpPost] public Response Delete([FromBody]string[] ids) { Response resp = new Response(); try { _app.Delete(ids); } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return resp; } [HttpPost] public Response Add([FromBody] AddOrUpdateResReq obj) { var resp = new Response(); try { _app.Add(obj); resp.Result = obj.Id; } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return resp; } [HttpPost] public Response Update([FromBody] AddOrUpdateResReq obj) { Response resp = new Response(); try { _app.Update(obj); } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return resp; } /// /// 加载角色资源 /// /// 应用ID /// 角色ID [HttpGet] public Response> LoadForRole(string appId, string firstId) { var result = new Response>(); try { result.Result = _app.LoadForRole(appId, firstId).ToList(); } catch (Exception e) { result.Code = 500; result.Message = e.InnerException?.Message ?? e.Message; } return result; } /// /// 获取资源所属应用 /// [HttpGet] public async Task>> GetResourceApps() { var result = new Response>(); try { result.Result = await _app.GetResourceApps(); } catch (Exception e) { result.Code = 500; result.Message = e.InnerException?.Message ?? e.Message; } return result; } } }