Olá seja bem-vindo(a)!

Sou Engenheiro de Software e Engenheiro Civil com Pós Graduação em Empreendedorismo e Novas Tecnologias.

Criei essa API Rest rapidamente, gostaria de ter tido mais tempo para fazer alguns ajustes e criar mais testes unitários. Logo deixarei 100%.

Utilizei: MySql, NodeJS e JavaScript.

O banco de dados esta hospedado no Google Cloud e a aplicação back-end esta no Heroku.

frameworks: bcryptjs, cors, dotenv, express, express-validator, Jest, jsonwebtoken e mysql2

Tecnologias & Ferramentas

Para acessar a AIP, deve ser chamada a rota: https://exameflavio.herokuapp.com/oapi/authenticate, usando o verbo POST, passando como parâmetro:

{ 
"user": "110677", 
"password": "110677" 
}

Será retornado um Token.

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
    eyJpZCI6MSwidXNlciI6IjExMDY3NyIsImlhdCI6MTYyMTI3MjI5NSwiZXhwIjoxNjIxMjc1ODk1fQ.
    55zzl5rlU-mf4uDEYkwr5eVt9kZnC4yKDGsofmbqs75"
} 

Atráves da rota POST https://exameflavio.herokuapp.com/api/resultInsert, juntamente com o token gerado, passamos o Authorization Bearer: token e os parâmetros de entrada para inserir e validar o valores.

Parâmetros de entrada:

{
"codigo_amostra": "99999999",
"cocaina": 0.678,
"anfetamina": 0.1,
"metanfetamina": 0.1,
"mda": 0.1,
"mdma": 0,
"thc": 0.1,
"morfina": 0.1,
"codeina": 0.1,
"heroina": 0.1,
"benzoilecgonina": 0,
"cocaetileno": 0,
"norcocaina": 0
}

Teremos como retorno um JSON com o a validação dessa amostra, exemplo:

{
"maiorQueReferencia": true ou false 
"valor": 0.00 - valor da amostra
"positivo": false ou false
}
[
    "99999999",
    {
        "cocaina": {
            "maiorQueReferencia": true,
            "valor": 0.678,
            "positivo": false
        },
        "anfetamina": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "metanfetamina": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "mda": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "mdma": {
            "maiorQueReferencia": false,
            "valor": 0,
            "positivo": false
        },
        "thc": {
            "maiorQueReferencia": true,
            "valor": 0.1,
            "positivo": true
        },
        "morfina": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "codeina": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "heroina": {
            "maiorQueReferencia": false,
            "valor": 0.1,
            "positivo": false
        },
        "benzoilecgonina": {
            "maiorQueReferencia": false,
            "valor": 0,
            "positivo": false
        },
        "cocaetileno": {
            "maiorQueReferencia": false,
            "valor": 0,
            "positivo": false
        },
        "norcocaina": {
            "maiorQueReferencia": false,
            "valor": 0,
            "positivo": false
        }
    }
]

Atráves da rota POST https://exameflavio.herokuapp.com/api/listResult, juntamente com o token gerado, passamos o Authorization Bearer: token com o parâmetro:

{
  codigo_amostra: "00000000"
} 

A API retorna o resultado desse codigo_amostra. Se não passarmos parâmetros, a API retorna uma lista TOP 100 das amostras cadastradas com seus resultados.