@qualicorp_digital/utils

2.0.2 • Public • Published

Qualicorp Digital (funções úteis)

exemplo de uso:
const { setupEnvironment, responseStructs, AppError, AuthError, middlewares, validations, conversions } = require("@qualicorp_digital/utils");

setupEnviroment

setupEnviroment é uma função comumente usada na inicialização das APIs para atribuir as variáveis de ambiente de acordo com o arquivo .env correspondente ao ambiente da execução. Recomendável realizar a chamada da função setupEnviroment() antes do import das rotas. O parâmetro esperado é uma string contendo o path da pasta onde se encontram o(s) arquivo(s) de extensão env.
Caso não seja passado nada será utilizado como padrão o diretório raiz do projeto.

exemplo de uso:
const express = require("express");
const app = express();
const { setupEnviroment } = require("@qualicorp_digital/utils");
setupEnviroment("./config");

responseStructs

Um objeto que detém funções que padronizam as responses das APIs, são elas:

Formato da função:
responseSuccess(res, data, status = 200) {
  //res: é o objeto response do express.<br>
  //data: é o resultado da API, sendo geralmente um objeto ou um array.<br>
  //status: statusCode da response. Se não for atribuído assumirá 200 (sucesso).<br>
}
Formato da função:
responseError(res, error, status = 500) {
  //res: é o objeto response do express.<br>
  //error: é o objeto de erro externado pelo trow. Geralmente será uma string com o erro ou um objeto //contendo a propriedade message.<br>
  //status: statusCode da response. Se não for atribuído assumirá 500 (erro interno).<br>
}
Formato da função:
getErrorMessage(error) {
  //error: é o objeto de erro obtido pelo try-catch. A função irá avaliar o objeto e retornará a mensagem da melhor forma para o client requisitante.
}
Exemplo de uso das 3 funções acima:
app.get("/", (req, res) => {
  try {
    const dados = { message: "hello world" };
    responseSuccess(res, dados)
  } catch (error) {
    const msg = getErrorMessage(error);
    responseError(res, msg);
  }  
});

AppError

Ao importa-lo você recebe uma instância da classe AppError. Utilizado para lançar exceções intencionais da aplicação, diferenciando-as das exceções inexperadas.

Formato do objeto:
{
  message; // string
  statusCode; // number default: 400
}

AuthError

Ao importa-lo você recebe uma instância da classe AuthError. Utilizado para lançar exceções ocasionadas durante a autenticação.

Formato do objeto:
{
  message; // string
  statusCode; // number default: 401
}

middlewares

Um objeto que contém middlewares padrões no formato do express.

middlewares disponíveis:
Formato da função:
const handle404 = function (req, res, next) {
  // req: request
  // res: response
  // next: proxima função da stack
  res.status("404").json({ status: 404, message: "URL não encontrada." });
  next();
};
Formato da função:
const handleError = async (error, req, res, _) => {

}
Formato da função:
const validateAuth = function (req, res, next) {
  // req: request
  // res: response
  // next: proxima função da stack
  // Realiza a chamada da validação do JWT. Para isso é feito uma chamada http na API de acesso.
};

###### Exemplo de uso:
```js
const { middlewares } = require("@qualicorp_digital/utils");
const express = require("express");
const app = express();
app.use(routes);
app.use(middlewares.handle404); // deve sempre estar após as rotas

validations

Contém diversos objetos que possuem funções para diversos gêneros de validações:

1. dateValidations

  • isValidBRFormat(data)
  • isValidUAFormat(data)
  • isValidRange(dataInicio, dataFim)

2. documentsValidations
2.1 cpfValidations

  • unformat(cpf)
  • isValid(unformatedCpf)

3. emailValidations

  • isValid(value)

4. numberValidations

  • isNatural(value)

5. passwordValidations

  • isValid(value)

6. stringValidations

  • onlyLetters(value)
  • onlyNumbers(value)

conversions

Contém diversos objetos que possuem funções para diversos gêneros de conversões:

1. date

  • formatBrasil(data)
  • formatEUA(value)
  • formatEUAdateTime(value)
  • formatTimestamp(value)
  • getDiffBetweenDates(initialDate, finalDate)
  • clear(data, separator = "/")
  • reverse(data, separator = "/")
  • clearAndReverse(data, separator = "/")
  • getAge(birthDate, referenceDate)

2. inputs
2.1 query

  • parse(value)

3. hashs 3.1 base64

  • decode(base64Value)
  • encode(value);

4. number

  • round(decimalValue, places = 2)
  • trunc(decimalValue, places = 2)

5. string

  • getOnlyNumbers(str)
  • hasFileExtension(filename)
  • getFileExtension(filename)
  • normalize(value)

Readme

Keywords

none

Package Sidebar

Install

npm i @qualicorp_digital/utils

Weekly Downloads

52

Version

2.0.2

License

ISC

Unpacked Size

34.2 kB

Total Files

30

Last publish

Collaborators

  • celuladigitalqualicorp