using Vo;
using Microsoft.AspNetCore.Mvc;
using Model;
using Services;
using Model.Base;
using Vo.Admin;
using Dto.Admin;
using Mapster;
using Infrastructure;
using Util;
namespace Controllers.Admin
{
///
/// ApiGroup)Controller
///
// [Route("${Router}$")]
// [ApiExplorerSettings(GroupName = "ApiGroup")]
public class ApiGroupController : BaseController
{
///
/// api分组接口
///
private readonly IApiGroupService _ApiGroupService;
private readonly IApiInfoService _ApiInfoService;
public ApiGroupController(IApiGroupService ApiGroupService, IApiInfoService ApiInfoService)
{
_ApiGroupService = ApiGroupService;
_ApiInfoService = ApiInfoService;
}
///
/// 列表
///
/// 分页对象
/// 参数请求体
/// 列表
[HttpGet]
[Route("/v1/omega_source/ApiGroup/getApiGroupList")]
public IActionResult getApiGroupList([FromQuery] PagerInfo page, [FromQuery] ApiGroup param)
{
var response = _ApiGroupService.getApiGroupList(page, param);
return SUCCESS(response);
}
///
/// 获取接口树结构
///
/// 参数请求体
/// 接口树结构
[HttpGet]
[Route("/v1/omega_source/ApiGroup/getApiTree")]
public IActionResult getApiTree([FromQuery] GetApiTreeDto param)
{
var response = _ApiGroupService.getApiTree(param);
return SUCCESS(response);
}
[HttpGet]
[Route("/v1/omega_source/Test/nodeApiData")]
public IActionResult nodeApiData()
{
var response = new List>();
var item = new Dictionary();
item.Add("title", "标题1");
item.Add("detail", "介绍1");
item.Add("id", 1);
var fillData = new List>();
var fillItem = new Dictionary();
fillItem.Add("key", "input");
fillItem.Add("json", new List>());
fillData.Add(fillItem);
fillItem = new Dictionary();
fillItem.Add("key", "output");
fillItem.Add("json", new List>());
fillData.Add(fillItem);
item.Add("fillData", fillData);
var children = new List>();
var childItem = new Dictionary();
childItem.Add("title", "子标题1");
childItem.Add("detail", "子介绍1");
childItem.Add("id", 3);
childItem.Add("fillData", fillData);
children.Add(childItem);
childItem = new Dictionary();
childItem.Add("title", "子标题2");
childItem.Add("detail", "子介绍2");
childItem.Add("id", 4);
childItem.Add("fillData", fillData);
children.Add(childItem);
item.Add("children", children);
response.Add(item);
return SUCCESS(response);
}
///
/// 获取接口树结构
///
/// 参数请求体
/// 接口树结构
[HttpGet]
[Route("/v1/omega_source/ApiGroup/getApiGroupTree")]
public IActionResult getApiGroupTree()
{
var response = _ApiGroupService.getApiGroupTree();
return SUCCESS(response);
}
///
/// 详情
///
/// 参数请求体
/// 详情
[HttpGet]
[Route("/v1/omega_source/ApiGroup/getApiGroupQuery")]
public IActionResult getApiGroupQuery([FromQuery] ApiGroup param)
{
var response = _ApiGroupService.GetFirst(m => m.id == param.id).Adapt();
return SUCCESS(response);
}
///
/// 添加
///
/// 参数请求体
/// 添加
[HttpPost]
[Route("/v1/omega_source/ApiGroup/addApiGroup")]
public IActionResult addApiGroup([FromBody] ApiGroup param)
{
var modal = param.Adapt().ToCreate(HttpContext);
var response = _ApiGroupService.InsertReturnIdentity(modal);
return SUCCESS(response);
}
///
/// 修改
///
/// 参数请求体
/// 修改
[HttpPut]
[Route("/v1/omega_source/ApiGroup/updateApiGroup")]
public IActionResult updateApiGroup([FromBody] ApiGroup param)
{
var modal = param.Adapt().ToUpdate(HttpContext);
var response = _ApiGroupService.Update(modal, true);
return SUCCESS(response);
}
///
/// 删除
///
/// ID
/// 删除
[HttpDelete]
[Route("/v1/omega_source/ApiGroup/deleteApiGroup/{id}")]
public IActionResult deleteApiGroup(int id)
{
var response = _ApiGroupService.Delete(id);
return SUCCESS(response);
}
///
/// 生成api文档
///
/// 参数请求体
/// 生成api文档
[HttpPost]
[Route("/v1/omega_source/ApiGroup/makeApiDoc")]
public IActionResult makeApiDoc([FromBody] MakeApiDocDto param)
{
TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
_ApiGroupService.sycnApiToSystem(new SycnApiToSystemDto()
{
projectId = 0,
serviceId = param.serviceId,
groupId = param.groupId,
env = "test"
});
_ApiGroupService.sycnApiToSystem(new SycnApiToSystemDto()
{
projectId = 0,
serviceId = param.serviceId,
groupId = param.groupId,
env = "dis"
});
var response = _ApiGroupService.makeApiDoc(param, loginUser);
return SUCCESS(response);
}
///
/// 同步api到管理平台
///
/// 参数请求体
/// 同步api到管理平台
[HttpPost]
[Route("/v1/omega_source/ApiGroup/sycnApiToSystem")]
public IActionResult sycnApiToSystem([FromBody] SycnApiToSystemDto param)
{
var response = _ApiGroupService.sycnApiToSystem(param);
if(response == "同步成功")
{
return SUCCESS(response);
}
return ToResponse(ResultCode.FAIL, response);
}
}
}