versatus-arch-framework v1.11.8
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");
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago