agregamos redirect.ex y refactorizamos get_hash.ex en controller
This commit is contained in:
@ -7,6 +7,7 @@ defmodule ApiWeb.GetHash do
|
||||
# El token fue generado con generate_token(%{password: "1nf0rm3"})
|
||||
@valid_token "XHhlNmU3Y2RmYjAyOGZhNWM5NjVhZGNkOTNhOTQ0NDRkYmYwMWFkM2U3YjQ1NjE1YzU1ZDg0ZjlmMDQzNDRmNTUw"
|
||||
|
||||
|
||||
def index(conn, %{"study" => accessionnumber}) do
|
||||
Envar.load(".env")
|
||||
Envar.require_env_file(".env")
|
||||
@ -16,7 +17,25 @@ defmodule ApiWeb.GetHash do
|
||||
|> put_status(:unauthorized)
|
||||
|> json(%{error: "Token inválido o ausente"})
|
||||
else
|
||||
|
||||
Logger.info("Accession get hash -> #{accessionnumber}")
|
||||
hash = get_hash(accessionnumber)
|
||||
if hash == "nil" do
|
||||
|
||||
conn
|
||||
|> put_status(:not_found)
|
||||
|> json(%{error: "Estudio no encontrado"})
|
||||
else
|
||||
|
||||
conn
|
||||
|> put_status(:ok)
|
||||
|> json(%{hash: hash})
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def get_hash(accessionnumber) do
|
||||
|
||||
studyidentifier = Envar.get("IDENTIFIERFIELD") || "IDSTUDY"
|
||||
|
||||
@ -45,10 +64,7 @@ defmodule ApiWeb.GetHash do
|
||||
|
||||
case Repo.one(query) do
|
||||
nil ->
|
||||
conn
|
||||
|> put_status(:not_found)
|
||||
|> json(%{error: "Estudio no encontrado"})
|
||||
|
||||
"nil"
|
||||
res ->
|
||||
vencimiento = DateTime.add(DateTime.utc_now(), 2 * 24 * 60 * 60, :second)
|
||||
|
||||
@ -56,13 +72,11 @@ defmodule ApiWeb.GetHash do
|
||||
|
||||
token = generate_token(json_data)
|
||||
|
||||
conn
|
||||
|> put_status(:ok)
|
||||
|> json(%{hash: token})
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def generate_token(json) do
|
||||
json_string = Jason.encode!(json)
|
||||
query = "select encrypt('#{json_string}'::bytea, '1nf0rm3', 'aes')::text"
|
||||
|
||||
Reference in New Issue
Block a user