1.7.62 • Published 2 days ago

versatus-arch-framework v1.7.62

Weekly downloads
-
License
ISC
Repository
-
Last release
2 days ago

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");
1.7.58

2 days ago

1.7.59

2 days ago

1.7.60

2 days ago

1.7.61

2 days ago

1.7.62

2 days ago

1.7.52

7 days ago

1.7.53

7 days ago

1.7.54

7 days ago

1.7.55

7 days ago

1.7.56

7 days ago

1.7.57

7 days ago

1.7.50

8 days ago

1.7.51

8 days ago

1.7.47

9 days ago

1.7.48

9 days ago

1.7.49

9 days ago

1.7.44

10 days ago

1.7.45

10 days ago

1.7.46

10 days ago

1.7.34

13 days ago

1.7.35

13 days ago

1.7.36

13 days ago

1.7.37

13 days ago

1.7.38

13 days ago

1.7.39

13 days ago

1.7.40

13 days ago

1.7.41

13 days ago

1.7.42

13 days ago

1.7.43

13 days ago

1.7.33

14 days ago

1.7.31

18 days ago

1.7.32

18 days ago

1.7.28

23 days ago

1.7.29

23 days ago

1.7.30

22 days ago

1.7.23

24 days ago

1.7.24

24 days ago

1.7.25

24 days ago

1.7.26

24 days ago

1.7.27

24 days ago

1.7.22

1 month ago

1.7.17

2 months ago

1.7.18

2 months ago

1.7.19

2 months ago

1.7.20

2 months ago

1.7.21

2 months ago

1.7.15

2 months ago

1.7.16

2 months ago

1.7.13

2 months ago

1.7.14

2 months ago

1.7.12-beta

2 months ago

1.7.12-alpha

2 months ago

1.7.10

2 months ago

1.7.11

2 months ago

1.7.12

2 months ago

1.7.9

2 months ago

1.7.8

2 months ago

1.7.7

2 months ago

1.7.6

2 months ago

1.7.5

2 months ago

1.7.4

2 months ago

1.7.12-alpha1

2 months ago

1.7.3

3 months ago

1.7.2

3 months ago

1.7.1

3 months ago

1.7.0

3 months ago

1.6.9

3 months ago

1.6.7

3 months ago

1.6.4

3 months ago

1.6.3

3 months ago

1.6.6

3 months ago

1.6.5

3 months ago

1.6.2

3 months ago

1.6.0

3 months ago

1.5.9

3 months ago

1.5.8

3 months ago

1.5.7

3 months ago

1.5.6

3 months ago

1.5.5

3 months ago

1.5.4

3 months ago

1.5.3

3 months ago

1.5.2

3 months ago

1.5.1

3 months ago

1.5.0

3 months ago

1.4.9

3 months ago

1.4.8

3 months ago

1.4.7

3 months ago

1.4.6

3 months ago

1.3.7

3 months ago

1.4.5

3 months ago

1.4.4

3 months ago

1.3.5

3 months ago

1.4.3

3 months ago

1.4.2

3 months ago

1.3.3

3 months ago

1.4.1

3 months ago

1.4.0

3 months ago

1.3.2

4 months ago

1.3.1

4 months ago

1.3.0

4 months ago

1.2.0

4 months ago

1.2.4

4 months ago

1.2.3

4 months ago

1.2.2

4 months ago

1.2.1

4 months ago

1.1.1

4 months ago

1.1.0

4 months ago

1.1.9

4 months ago

1.1.8

4 months ago

1.0.9

4 months ago

1.1.7

4 months ago

1.0.8

4 months ago

1.1.6

4 months ago

1.0.7

4 months ago

1.0.6

4 months ago

1.1.4

4 months ago

1.0.5

4 months ago

1.1.3

4 months ago

1.0.4

4 months ago

1.1.2

4 months ago

1.0.3

4 months ago

1.0.2

4 months ago

1.0.1

4 months ago

1.0.0

4 months ago