@@ -5,6 +5,7 @@ defmodule Burox do
55 alias Burox.Request.Encoder
66 alias Burox.Response.Parser
77 alias Burox.Utils
8+ alias Burox.Utils.Validator
89
910 require Logger
1011
@@ -16,12 +17,11 @@ defmodule Burox do
1617 {:ok, term}
1718
1819 """
19- @ spec solicitar ( Request . t ) :: { :ok , term } | { :error , term }
20+ @ spec solicitar ( Request . t ( ) ) :: { :ok , term } | { :error , term }
2021 def solicitar ( peticion ) do
2122 solicitar ( peticion , "507" )
2223 end
2324
24-
2525 @ doc """
2626 Solicita la información crediticia de una persona al buró de crédito
2727 ## Ejemplos
@@ -30,34 +30,24 @@ defmodule Burox do
3030 {:ok, term}
3131
3232 """
33- @ spec solicitar ( Request . t , String . t ) :: { :ok , term } | { :error , term }
33+ @ spec solicitar ( Request . t ( ) , String . t ( ) ) :: { :ok , term } | { :error , term }
3434 def solicitar ( data , codigo_producto ) do
35- peticion = Utils . to_struct ( data , Burox.Request )
36- Logger . info "Petición:\n #{ inspect peticion } "
37-
38- request_string = Encoder . encode_buro ( peticion , codigo_producto )
39- Logger . info "Cadena de petición:\n #{ inspect request_string } "
40-
41- buro_service = Application . get_env ( :burox , :buro_service )
4235
43- with { :ok , buro_response } <- buro_service . post ( request_string , codigo_producto ) do
44- Logger . info "Respuesta del buro: \n #{ buro_response } "
36+ with { :ok , request } <- Validator . valid? ( data ) do
37+ request_string = Encoder . encode_buro ( request , codigo_producto )
38+ buro_service = Application . get_env ( :burox , :buro_service )
4539
46- response = Parser . process_response ( buro_response )
47- Logger . info "Respuesta: \n #{ inspect response } "
40+ with { :ok , buro_response } <- buro_service . post ( request_string , codigo_producto ) do
41+ response = Parser . process_response ( buro_response )
4842
49- retorno = % {
50- cadena_peticion: request_string ,
51- respuesta: response ,
52- cadena_respuesta: String . slice ( buro_response , 0 .. - 2 )
53- }
43+ retorno = % {
44+ cadena_peticion: request_string ,
45+ respuesta: response ,
46+ cadena_respuesta: String . slice ( buro_response , 0 .. - 2 )
47+ }
5448
55- case peticion do
56- % Request { } -> { :ok , retorno }
57- _ -> { :error , retorno }
49+ { :ok , retorno }
5850 end
5951 end
60-
6152 end
62-
6353end
0 commit comments