IConnectorICustomFlow.cs•2.72 kB
using Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
public interface IConnectorICustomFlow : IConnectorContextRequired
{
/// <summary>
/// Fluxos autorizados do conector para o usuario.
/// </summary>
/// <returns></returns>
Task<List<IFlowEndpoint>> AuthorizedFlows();
}
public interface IFlowEndpoint
{
/// <summary>
/// Nome do fluxo.
/// </summary>
string Name { get; set; }
/// <summary>
/// Descritivo/objetivo do fluxo.
/// </summary>
string Description { get; set; }
/// <summary>
/// Tags relacionadas ao fluxo.
/// </summary>
List<string> Tags { get; set; }
/// <summary>
/// Endpoint que deve ser utilizado pelo servico
/// </summary>
string Service { get; set; } // /cms/v1.0/connector/uid/231/report/{*reportType}
/// <summary>
/// Verbo aceito pelo fluxo.
/// </summary>
EMethodType Method { get; set; }
/// <summary>
/// Parametros necessario para a requisicao.
/// </summary>
List<IFlowParameter> Parameters { get; set; }
/// <summary>
/// Roles necessarias para vizualizar determinado fluxo.
/// </summary>
List<RoleType> AuthorizedRoles { get; set; }
/// <summary>
/// Resposta padrão do fluxo.
/// </summary>
IWrapper Response { get; set; }
/// <summary>
/// Body padrão aceito pela request se tiver.
/// </summary>
IWrapper Body { get; set; }
}
public interface IFlowParameter
{
/// <summary>
/// Chave que deve ser utilizada no envio do parametro
/// </summary>
string Key { get; set; }
/// <summary>
/// Nome do atribuido para parametro.
/// </summary>
string Name { get; set; }
/// <summary>
/// Descritivo sobre o parametro
/// </summary>
string Description { get; set; }
/// <summary>
/// Tipo de dado aceito pelo parametro
/// </summary>
DynamicPropertyType Type { get; set; }
/// <summary>
/// Indicador se o parametro é obrigatorio
/// </summary>
bool Required { get; set; }
}
public enum EMethodType
{
Body,
Get,
Post,
Delete,
Options,
Put
}
}