new DataSourceDef()
Definição de uma fonte de dados do sistema que poderá ser posteriormente instanciada por meio da classe DataSource.
Uma fonte de dados é declarada por meio de um arquivo da Virtual File System com extensão .ids. Ela pode ser declarada de duas formas:
- declarativa: o conteúdo do arquivo é um objeto literal contendo as mesmas propriedades desta classe. Essa é forma tradicional de definição de uma fonte de dados e a mais utilizada.
- imperativa: o conteúdo do arquivo é um script que cria uma instância da classe DataSourceDef, configura as suas propriedades e deixa o valor na pilha do script.
Examples
// Exemplo de uma definição declarativa { availableFilters: [ { classKey: -1898187809, // Usuários prefix: 'U' } ], availableColumns: [ { classKey: -1898187809, // Usuários prefix: 'U' } ], onGetQuery: function (dataSource, filters, columns) { var flts = filters.getIQueryFilters("U_*", "and"); var cols = columns.getIQueryColumns("U_*"); var iquery = IQuery.from(-1898187809) // Usuários .where(flts) .column(cols); return iquery.toSql(); } };
var DataSourceDef = require('@nginstack/datasource/lib/DataSourceDef'); var def = new DataSourceDef(); def.availableFilters = [ { classKey: -1898187809, // Usuários prefix: 'U' } ]; def.availableColumns = [ { classKey: -1898187809, // Usuários prefix: 'U' } ]; def.onGetQuery: function (dataSource, filters, columns) { var flts = filters.getIQueryFilters("U_*", "and"); var cols = columns.getIQueryColumns("U_*"); var iquery = IQuery.from(-1898187809) // Usuários .where(flts) .column(cols); return iquery.toSql(); }; def
Members
-
<non-null> availableColumns :Array.<Object>
-
Definição das colunas que estarão disponíveis no retorno das consultas que utilizam este DataSource.
Type:
- Array.<Object>
- See:
-
- DataSourceColumnDef
-
<non-null> availableFilters :Array.<Object>
-
Definição dos filtros que estarão disponíveis nas consultas que utilizam este DataSource.
Type:
- Array.<Object>
- See:
-
- DataSourceFilterDef
-
help :string
-
A ajuda do DataSource.
Type:
- string
-
includes :Array.<(number|string)>
-
Chaves ou caminhos dos scripts que serão inclusos via __includeOnce. Utilizados geralmente quando os métodos #onCreate, #onGetQuery ou #onMountDataSet necessitam de bibliotecas externas.
Type:
- Array.<(number|string)>
-
<nullable> onCreate :function
-
Se este método for declarado, será executado após a construção do DataSource. Recebe o próprio DataSource como único parâmetro.
Type:
- function
-
<nullable> onDefineColumns :function
-
Método utilizado para uma declaração especializada das colunas do datasource. Caso não haja necessidade de acessar outros scripts ou recursos fora do próprio datasource, a propriedade availableColumns poderá ser alimentada diretamente. Se este método for declarado, será executado no início da construção do datasource, logo após a etapa de inclusão dos scripts definidos na propriedade includes e do método onDefineFilters. Recebe o próprio DataSource como único parâmetro e é responsável por alimentar a propriedade this.availableColumns.
Type:
- function
-
<nullable> onDefineFilters :function
-
Método utilizado para uma declaração especializada dos filtros do datasource. Caso não haja necessidade de acessar outros scripts ou recursos fora do próprio datasource, a propriedade availableFilters poderá ser alimentada diretamente. Se este método for declarado, será executado no início da construção do datasource, logo após a etapa de inclusão dos scripts definidos na propriedade includes. Recebe o próprio DataSource como único parâmetro e é responsável por alimentar a propriedade this.availableFilters.
Type:
- function
-
onGetQuery :function
-
Este método recebe como parâmetros o próprio DataSource, uma instância de DataSourceFilters e uma de DataSourceColumns. Os dois últimos parâmetros são objetos montados pelo DataSource a partir de suas definições.
Este método deve retornar uma query SQL. Será executado durante a execução do método getDataSet das instâncias do DataSource.Type:
- function
-
<nullable> onMountDataSet :function
-
Se este método for declarado, ele será executado após a obtenção do DataSet no método DataSource#getDataSet. O DataSet obtido é informado como parâmetro, e o retorno deste método substitui o retorno do método getDataSet.
Type:
- function
-
public :boolean
-
Indica se a definição da fonte de dados é pública. Se a está propriedade for declarada como "true" outros sistemas poderão consumí-la. Optar por tornar uma fonte de dados pública é perigoso quando DataSourceDef#onGetQuery da definição da fonte de dados retorna uma consulta sql pois não serão testadas as permissões do usuário, no caso, recomenda-se definir como retorno, uma instância de IQuery em DataSourceDef#onGetQuery.
Type:
- boolean
-
securityMode :DataSourceSecurityMode
-
Determina o modo de segurança definido. O modo de segurança é aplicado a filtragem da consulta e ao acesso aos dados pelo consumo da fonte de dados. Caso não seja definido, só haverá permissões sobre os filtros informados, isto é somente serão considerados os filtros que forem informados na permissão da fonte de dados.
Há três modos de segurança disponíveis, consulte DataSourceSecurityMode para saber mais a respeito.
É fortemente recomendado que o modo de segurança seja definido na definição da fonte de dados, uma das possíveis motivações é a permissão da fonte de dados para ser consumida por sistemas de terceiros.
Type:
- DataSourceSecurityMode