versatus-arch-framework v1.7.62
Para fazermos as validações que são possiveis no versatusFK, primeiro precisamos criar um contexto, e dentro do contexto podemos chamar qualquer função do versatusFK, siga o exemplo abaixo:
import VersatusFK, { VersatusFKInterface } from 'versatus-fk';
VersatusFK.loginContext("NOME-DE-USUARIO", "SENHA", "METODO-DA-CHAMADA", async (fk: VersatusFKInterface)=>{
//sua função
//chamando metodos do versatusFK
fk.validadeRole("foo");
fk.setCache("key", "value");
});
Ha tambem outra forma de criarmos o contexto, no lugar de usuario e senha, utilizamos o accessToken informado no momento da autenticação:
import VersatusFK, { VersatusFKInterface } from 'versatus-fk';
VersatusFK.context("ACCESS-TOKEN", "METODO-DA-CHAMADA", async (fk: VersatusFKInterface)=>{
//sua função
//chamando metodos do versatusFK
fk.validadeRole("foo");
fk.setCache("key", "value");
});
com o contexto criado, podemos ver quais modulos podemos utilizar:
fk.validate('FOO_TOGGLE', 'FOO_ROLE');
O metodo validate tambem valida se o accessToken é valido, e se ele esta expirado ou não.
É possivel tambem fazer validações especificas com os metodos:
//apenas as validações referente a toggle;
fk.validateToggle('FOO_TOGGLE');
//validações apenas das permissoes do usuario
fk.validadeRole('FOO_ROLE');
validações referentes ao accessToken
fk.validateToken();
//retorna o accessToken
fk.token();
//retorna o id do usuario
fk.loginId();
//retorna o ambiente do servico que esta sendo executado, ex (DEV, HML, PRD)
fk.environment();
//obtem valores de variaveis de ambiente, ou do arquivo dev-environment.json
fk.getEnv('FOO');
//persistindo dado no cache por 1800 segundos, caso a chave não exista sera criada
fk.setCache("key","value", 1800);
//buscando dados do cache pela chave, caso a chave não exista retornara null
fk.getCache("key");
//apagando uma chave no cache
fk.deleteCache("key);
No metodo setCache o parametro de tempo de expiração é opcional, caso ele não seja enviado o dado ficara em cache por 1 dia
const result = await fk.getPgPool().query<IUser[]>('SELECT * FROM USER');
Esta query esta sendo executada no banco default, que foi adicionado na variavel de ambiente PG_DB_DATABASE
No exemplo a seguir, vemos como consultar outro banco:
const config = {
user: "PG_USERNAME",
database: "DATABASE_NAME",
password: "PG_PASSWORD",
port: 5432,
host: "PG_PASSWORD",
ssl: false
}
const result = await fk.getPgPool(config).query<IUser[]>('SELECT * FROM USER');
Desta forma podemos acessar qualquer outro banco de dados.
const result = await fk.cassandraDb().execute('SELECT * FROM user');
neste caso acima, estamos fazendo uma busca no keyspace default, mas podemos tambem consultar outros keyspaces como no exemplo abaixo:
const result = await fk.cassandraDb('users_keyspace').execute('SELECT * FROM user');
Assim conseguimos consultar qualquer keyspace que esteja na mesma conexão o banco cassandra;
No exemplo a seguir podemos ver como enviar mensagem para uma fila chamada "FILA1":
fk.sendToQueue('FILA1', "hello world");
Se a fila: "FILA1" não existir, ela sera criada.
É possivel enviar para a fila, apenas dados no formato de string
É possivel tambem consumir mensagens das filas:
fk.queueConsumer('FILA1', (msg: ConsumeMessage | null)=>{
if(msg){
console.log(`content: ${msg.content.toString()}!!`);
}
})
Toda vez que for enviada uma mensagem para a fila FILA1, sera executada a função callback do metodo queueConsumer.
fk.warning("message");
fk.info("message");
fk.error("message");
fk.error("message", false);
Alem da mensagem, há tambem um segundo parametro que pode ser adicionado ao metodo, o parametro showLog, é um parametro booleano que define se o log sera exibido na tela ou não, por default ele é true, ou seja, caso o desenvolvedor não atribua o valor falso a este parametro, alem da mensagem de log ser enviada para o serviço de log, ela tambem sera exibida na tela.
import { cache } from 'versatus-fk';
cache.set("key", "value", 1800);
const result = await cache.getVal("key");
cache.del("key");
Neste caso, diferente de quando temos um contexto criado, no campo set, é obrigatorio adicionar um tempo de expiração em segundos para o dado que esta sendo adicionado ao cache.
import { getPgPool } from 'versatus-fk';
//banco de dados default do sistema
const result = await getPgPool().query<IUser[]>('SELECT * FROM USER');
//Banco de dados adicional
const config = {
user: "PG_USERNAME",
database: "DATABASE_NAME",
password: "PG_PASSWORD",
port: 5432,
host: "PG_PASSWORD",
ssl: false
}
const result = await getPgPool(config).query<IUser[]>('SELECT * FROM USER');
import { cassandraDb } from 'versatus-fk';
//keyspace default do sistema
const result = await cassandraDb().execute('SELECT * FROM user');
//keyspace adicional
const result = await cassandraDb('users_keyspace').execute('SELECT * FROM user');
import { queue } from 'versatus-fk';
//enviando um dado para a fila
queue.sendToQueue("FILA1", "CONTENT");
//consumindo um dado da fila
queue.consumer('FILA1', (msg: ConsumeMessage | null)=>{
if(msg){
console.log(`content: ${msg.content.toString()}!!`);
}
});
import { Log } from 'versatus-fk';
Log.setWarning("message");
Log.setInfo("message");
Log.setError("message");
//não exibir o log na tela
Log.setInfo("message", false);
import { getEnv } from 'versatus-fk';
//Obtendo o valor da variavel de ambiente ENVIRONMENT
const environment = getEnv("ENVIRONMENT");
import { TokenCore } from 'versatus-fk';
//atualizando o accessToken;
const newAccessToken = await TokenCore.refreshToken("REFRESH_TOKEN");
//gerando um accessToken a partir do usuario e senha
const newAccessToken = await TokenCore.generateToken({username: "username", password: "password"});
//obtendo as permissões do usuario para o client atual
const roles: string[] = TokenCore.getRoles("ACCESS_TOKEN");
//obtendo informacoes do usuario
const userData = await TokenCore.getUserInfo("ACCESS_TOKEN");
//validando se o token é valido, ou se expirou
const result = await TokenCore.validateToken("ACCESS_TOKEN");
2 days ago
2 days ago
2 days ago
2 days ago
2 days ago
7 days ago
7 days ago
7 days ago
7 days ago
7 days ago
7 days ago
8 days ago
8 days ago
9 days ago
9 days ago
9 days ago
10 days ago
10 days ago
10 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
13 days ago
14 days ago
18 days ago
18 days ago
23 days ago
23 days ago
22 days ago
24 days ago
24 days ago
24 days ago
24 days ago
24 days ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago