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)