lib/requests/payments/three_d_s.ex

defmodule Requests.Payments.ThreeDS do
  alias Requests.Payments.ThreeDS.{
    Integrated,
    StandAlone,
    ThirdParty
  }

  def build(%{type: "integrated"} = params), do: Integrated.build(params)

  def build(%{type: "stand_alone"} = params), do: StandAlone.build(params)

  def build(%{type: "third_party"} = params), do: ThirdParty.build(params)

  def build(_), do: nil
end