2.0info: 14.6.1 Visões Dinâmicas description: Service that manages and generates dynamic views x-senior-domain: Plataforma x-senior-domain-path: platform x-senior-service-path: dynamicviews contact: name: Senior X Platform url: https://dev.senior.com.br email: seniorx-dev@senior.com.brhost: api.senior.com.br /platform/dynamicviewssecurityDefinitions: bearerAuth: type: apiKey in: header name: Authorization – application/json – application/jsonparameters: clientId: name: client_id type: string in: header required: true description: Identificação da aplicação cadastrada no portal do desenvolvedor (api.xplatform.com.br)paths: /listTables: post: description: Retorna as tabelas que o usuário tem permissão de leitura x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId responses: 200: description: Ok schema: type: object required: – tables properties: tables: #/definitions/table 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError get: description: Retorna as tabelas que o usuário tem permissão de leitura x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId responses: 200: description: Ok schema: type: object required: – tables properties: tables: #/definitions/table 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /getRunningDynamicViews: post: description: Retorna todas as execuções dinâmicas em andamento, com informações sobre o progresso, usuário, etc. x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object properties: search: type: string description: Valor a ser pesquisado offset: type: integer description: Index de início da busca limit: type: integer description: Quantidade de registro que deve ser retornado orderByDesc: type: boolean description: Define o tipo de ordenação responses: 200: description: Ok schema: type: object required: – dynamicViews – listInformation properties: dynamicViews: #/definitions/generationStatus listInformation: #/definitions/listInformation default: description: Error response schema: #/definitions/genericError get: description: Retorna todas as execuções dinâmicas em andamento, com informações sobre o progresso, usuário, etc. x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object properties: search: type: string description: Valor a ser pesquisado offset: type: integer description: Index de início da busca limit: type: integer description: Quantidade de registro que deve ser retornado orderByDesc: type: boolean description: Define o tipo de ordenação responses: 200: description: Ok schema: type: object required: – dynamicViews – listInformation properties: dynamicViews: #/definitions/generationStatus listInformation: #/definitions/listInformation default: description: Error response schema: #/definitions/genericError /getUsageLimits: post: description: Retorna a lista de limites de uso definida x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId responses: 200: description: Ok schema: type: object required: – usageLimit – queryTimeOut properties: usageLimit: #/definitions/usageLimit queryTimeOut: type: integer description: Query timeout 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError get: description: Retorna a lista de limites de uso definida x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId responses: 200: description: Ok schema: type: object required: – usageLimit – queryTimeOut properties: usageLimit: #/definitions/usageLimit queryTimeOut: type: integer description: Query timeout 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /getDynamicView: post: description: Obtém uma visão dinâmica
### Resources:
– res://<dominio do tenant>/custom/dynamicview/<identificador único>
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – dynamicViewId properties: dynamicViewId: type: string description: Id da visão dinâmica responses: 200: description: Ok schema: type: object required: – dynamicView properties: dynamicView: #/definitions/dynamicViewRec 403: description: Permissão negada 404: description: Visão dinâmica não encontrada 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError get: description: Obtém uma visão dinâmica
### Resources:
– res://<dominio do tenant>/custom/dynamicview/<identificador único>
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – dynamicViewId properties: dynamicViewId: type: string description: Id da visão dinâmica responses: 200: description: Ok schema: type: object required: – dynamicView properties: dynamicView: #/definitions/dynamicViewRec 403: description: Permissão negada 404: description: Visão dinâmica não encontrada 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /executeDynamicView: post: description: Executa a visão dinâmica
### Resources:
– res://senior.com.br/report/dynamicview
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – view properties: view: #/definitions/dynamicViewRec maxRows: type: integer description: Quantidade máxima de linhas a serem retornadas, por padrão são 10 parameters: type: array items: #/definitions/filterParameter description: Parâmetros dos filtros da visão dinâmica. É necessário informar todos parâmetros da visão dinâmica, de outra forma é lançada exceção responses: 200: description: Ok schema: type: object required: – metadata – values properties: metadata: #/definitions/queryMetadataColumn values: #/definitions/queryRow 403: description: Permissão negada 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError get: description: Executa a visão dinâmica
### Resources:
– res://senior.com.br/report/dynamicview
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – view properties: view: #/definitions/dynamicViewRec maxRows: type: integer description: Quantidade máxima de linhas a serem retornadas, por padrão são 10 parameters: type: array items: #/definitions/filterParameter description: Parâmetros dos filtros da visão dinâmica. É necessário informar todos parâmetros da visão dinâmica, de outra forma é lançada exceção responses: 200: description: Ok schema: type: object required: – metadata – values properties: metadata: #/definitions/queryMetadataColumn values: #/definitions/queryRow 403: description: Permissão negada 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /cancelGeneration: post: description: Cancela a execução das visões dinâmicas em andamento.
### Resources:
– res://senior.com.br/report/dynamicview
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – tickets properties: tickets: type: array items: type: string description: Id das visões dinâmicas que devem ser canceladas responses: 200: description: Ok schema: type: object properties: status: type: string description: 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informados incorretamente 403: description: Permissão negada default: description: Error response schema: #/definitions/genericError /saveDynamicView: post: description: Inserir ou atualizar uma visão dinâmica
### Resources:
– res://senior.com.br/report/dynamicview
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – view properties: view: #/definitions/dynamicViewRec responses: 200: description: Ok schema: type: object required: – id properties: id: type: string description: ID da visão dinâmica criada 403: description: Permissão negada 400: description: Requisição inválida, parâmetros obrigatórios não informado ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /deleteDynamicView: post: description: Excluir uma visão dinâmica
### Resources:
– res://senior.com.br/report/dynamicview
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – id properties: id: type: string description: ID da visão dinâmica que será excluída responses: 200: description: Ok schema: type: object required: – ok properties: ok: type: boolean description: Boolean indicando se a operação foi realizada com sucesso 403: description: Permissão negada 404: description: Visão dinâmica não encontrada 400: description: Requisição inválida, parâmetros obrigatórios não informado ou campo informado incorretamente default: description: Error response schema: #/definitions/genericError /generateDynamicViewReport: post: description: Gera o relatório definido pela visão dinâmica
### Resources:
– res://<Dominio do tenant>/custom/dynamicview/<identificador único>
x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: type: object required: – format properties: id: type: string description: Id da visão dinâmica que deve ser executada, caso o usuário queira executar uma visão dinâmica persistida na base de dados view: #/definitions/dynamicViewRec format: #/definitions/format destination: type: array items: #/definitions/destinationInfo description: Destino onde o relatório gerado estará disponível parameters: type: array items: #/definitions/filterParameter description: Parâmetros dos filtros da visão dinâmica. É necessário informar todos parâmetros da visão dinâmica, de outra forma é lançada exceção limit: type: integer description: Limite para geração do relatório. Utilizado para o preview timeToLive: type: integer description: Quanto tempo o relatório ficará disponível depois de gerado, se não informado o valor padrão será 7200 minutos (5 dias) responses: 200: description: Ok schema: type: object required: – reportTicket properties: reportTicket: type: string description: ID de identificação do relatório gerado 403: description: Permissão negada 404: description: Visão dinâmica não encontrada 400: description: Requisição inválida, parâmetros obrigatórios não informados ou campo informado incorretamente 402: description: Pagamento requerido default: description: Error response schema: #/definitions/genericErrordefinitions: format: type: string enum: – Pdf – Csv – Html – Xls – Xlsx – Xml – Odt – Rtf destination: type: string enum: – EmailWithContent – EmailWithUrl – Notification menuType: type: string enum: – DEFAULT – ACTION sortDirection: type: string enum: – Asc – Desc functionType: type: string enum: – AVG – COUNT – MAX – MIN – SUM – COUNT_DISTINCT viewKind: type: string enum: – Generated – Manual joinOperation: type: string enum: – EQUALS – NOT_EQUALS columnType: type: string enum: – StringType – IntegerType – TimeType – DatetimeType – BooleanType – DateType – InvalidType – DecimalType – LongType table: type: object required: – id – schema – name – displayName – schemaDisplayName properties: id: type: string description: Identificador único da tabela schema: type: string description: Esquema que a tabela pertence name: type: string description: Nome da tabela displayName: type: string description: Nome de exibição da tabela schemaDisplayName: type: string description: Nome de exibição do schema destinationInfo: type: object required: – type properties: type: #/definitions/destination emailConfig: #/definitions/emailConfig notificationConfig: #/definitions/notificationConfig emailConfig: type: object required: – to – subject – message properties: from: #/definitions/emailContact to: type: array items: #/definitions/emailContact description: cc: type: array items: #/definitions/emailContact description: bcc: type: array items: #/definitions/emailContact description: subject: type: string description: message: type: string description: emailContact: type: object required: – email – name properties: email: type: string description: name: type: string description: notificationConfig: type: object required: – group properties: group: type: string description: Nome do grupo que receberá notificação dynamicViewRec: type: object required: – name – kind properties: id: type: string description: Id da visão dinâmica name: type: string description: Nome da visão dinâmica description: type: string description: Descrição da visão dinâmica tags: type: array items: type: string description: Tags da visão dinâmica uri: type: string description: Uri de recurso desta visualização (somente leitura) baseUrl: type: string description: Base Url para execusão do relatório menuItems: type: array items: #/definitions/dynamicViewMenu description: Items de menu associado a visão dinâmica table: type: string description: DB Nome da tabela usado para acesso por esta visão dinâmica schema: type: string description: Schema onde a tabela está localizada tables: type: array items: #/definitions/tableRec description: Tabelas da visão dinâmica fields: type: array items: type: string description: Lista de campos exibidos por esta visão dinâmica order: type: array items: #/definitions/order description: Ordem dos campos exibidos por esta visão dinâmmica groups: type: array items: type: string description: Grupos usados nesta visão dinâmica functions: type: array items: #/definitions/function description: Funçõe usadas na visão dinâmica viewSynchronized: type: boolean description: Indica se esta visualização está sincronizada com os metadados de banco de dados atuais kind: #/definitions/viewKind sql: type: string description: Comando SQL desta visão dinâmica – usado apenas com tipo manual filter: #/definitions/expression joins: type: array items: #/definitions/joinExpression description: overrideUserTimezone: type: boolean description: Sobrescrever o timezone padrão timezoneOffset: type: integer description: Timezone que será sobrescrito pelo padrão, se não informado será utilizado UTC-0 dynamicViewMenu: type: object required: – menuId – label – menuType properties: menuId: type: string description: Id do menu label: type: string description: Rótulo do menu menuType: #/definitions/menuType tableRec: type: object required: – schema – name properties: schema: type: string description: name: type: string description: order: type: object required: – name – direction properties: name: type: string description: Nome do campo direction: #/definitions/sortDirection function: type: object required: – functionType – columnName properties: functionType: #/definitions/functionType columnName: type: string description: Nome do campo usado pela função description: type: string description: Descrição da função, usado como alias. expression: type: object properties: joinExpression: type: object required: – source – target – operation properties: source: type: string description: target: type: string description: operation: #/definitions/joinOperation queryMetadataColumn: type: object required: – sequence – name – displayName – type – isPrimaryKey – isNullable – sqlOrder – isSortable – isSearchable – isAggregatable – isCustom properties: sequence: type: integer description: Ordem desta coluna nos dados do resultado name: type: string description: Nome da coluna displayName: type: string description: Nome de exibição desta coluna – i18n type: #/definitions/columnType isPrimaryKey: type: boolean description: Indica se esta coluna faz parte da chave primária da tabela isNullable: type: boolean description: Indica se esta coluna é anulável sqlOrder: type: integer description: Ordem desta coluna na consulta de resultado isSortable: type: boolean description: Se esta coluna pode ser classificada ou não isSearchable: type: boolean description: Se esta coluna pode ser usada em filtros ou não isAggregatable: type: boolean description: Se esta coluna pode ser usada em agregações ou não isCustom: type: boolean description: Se esta coluna é um campo personalizado ou não filterParameter: type: object required: – name properties: name: type: string description: Nome do parâmetro (Valor informado no campo value da UnaryExpression) value: type: string description: Valor a ser utilizado no filtro da visão dinâmica values: type: array items: type: string description: Valores a serem utilizados no filtro quando o filtro é do tipo 'IN' ou 'BETWEEN'.
Para o operador lógico 'BETWEEN' é necessário que o campo tenha dois elementos, exemplo:
Filtro:
{
'column' : 'age',
'operator' : 'BETWEEN',
'values' : [ '10', '30']
}
SQL:
'age BETWEEN 10 AND 30' queryRow: type: object required: – row properties: row: type: array items: #/definitions/queryData description: As colunas desta linha queryData: type: object required: – name – value properties: name: type: string description: Nome da coluna value: type: string description: Valor da coluna usageLimit: type: object required: – label – limit – usage – freeTier properties: label: type: string description: Descrição da propriedade cadastrada como limite limit: type: number description: Quantidade máxima que pode ser atingida para o recurso format: double usage: type: number description: Quantidade utilizada para o recurso format: double freeTier: type: boolean description: Permite continuar gerando relatórios após limite máximo excedido generationStatus: type: object required: – ticketId – dynamicView – user – startTime – stage properties: ticketId: type: string description: Ticket da execução dynamicView: type: string description: Nome da visão dinâmica user: type: string description: Username que executor a visão dinâmica startTime: type: string description: Data e hora de inicio format: date-time stage: type: string description: Etapa da execução listInformation: type: object required: – totalElements – totalPages properties: totalElements: type: integer description: Quantidade total de resultados encontrados totalPages: type: integer description: Quantidade total de páginas encontradas genericError: properties: message: type: string description: Messaging describing the error. reason: type: string description: A symbolic code identifying the category of the reason of the error. enum: – BAD_REQUEST – UNAUTHORIZED – PAYMENT_REQUIRED – FORBIDDEN – OBJECT_NOT_FOUND – REQUEST_TIMEOUT – GONE – UNPROCESSABLE – INTERNAL_ERROR – NOT_IMPLEMENTED – SERVICE_UNAVAILABLE – INSUFFICIENT_STORAGE