Current section
Files
Jump to
Current section
Files
lib/request/request.ex
defmodule Burox.Request.Encabezado do
@moduledoc false
defstruct [
:codigo_de_producto,
:pais,
:clave_del_usuario
]
end
defmodule Burox.Request.Autenticacion do
@moduledoc false
defstruct [
:tipo_reporte,
:tipo_salida,
:referencia_del_operador,
:cuenta_con_tarjeta_de_credito,
:ultimos_cuatro_digitos,
:ha_ejercido_un_credito_hipotecario,
:ha_ejercido_un_credito_automotriz_en_los_ultimos_24_meses
]
end
defmodule Burox.Request.Persona do
@moduledoc false
defstruct [
:apellido_paterno,
:apellido_materno,
:primer_nombre,
:segundo_nombre,
:fecha_de_nacimiento,
:rfc
]
use Vex.Struct
end
defmodule Burox.Request.Direccion do
@moduledoc false
defstruct [
:primera_linea_de_direccion,
:colonia,
:municipio,
:ciudad,
:estado,
:codigo_postal,
:origen_del_domicilio
]
use Vex.Struct
validates(:primera_linea_de_direccion,
presence: true,
length: [max: 40],
format: ~r(^[[:alnum:]\s]+$)
)
validates(:colonia,
presence: true,
length: [max: 40],
format: ~r(^[[:alnum:]\s]+$)
)
validates(:municipio,
presence: true,
length: [max: 40],
format: ~r(^[[:alnum:]\s]+$)
)
validates(:ciudad,
presence: true,
length: [max: 40],
format: ~r(^[[:alnum:]\s]+$)
)
validates(:estado,
presence: true,
length: [max: 4],
format: ~r(^[[:alpha:]\s]+$)
)
validates(:codigo_postal,
presence: true,
length: [is: 5],
format: ~r(^[[:digit:]]+$)
)
validates(:origen_del_domicilio,
presence: true,
length: [is: 2],
format: ~r(^[A-Z]+$)
)
end
defmodule Burox.Request do
@moduledoc """
Estructura básica para hacer consultas al buró de crédito
"""
alias Burox.Request
@enforce_keys [:persona, :direccion]
defstruct autenticacion: %Request.Autenticacion{},
encabezado: %Request.Encabezado{},
persona: %Request.Persona{},
direccion: %Request.Direccion{}
use Vex.Struct
validates(:persona, presence: true)
validates(:direccion, presence: true)
end