defmodule Mix.Tasks.GetAccList do @moduledoc """ Get account list ~$ mix get_acc_list ~$ mix get_acc_list {acc_id} ~$ mix get_acc_id {trd_env} {trd_market} """ use Mix.Task def run(args) do Mix.Task.run("app.config") {:ok, _pid} = Futu.start(%{name: :mix_task}) opts = [ userID: 0 ] {:ok, res} = Futu.account_list(:mix_task, opts) case args do [] -> IO.inspect(res) [acc_id] -> %Trd_GetAccList.S2C{accList: list} = res acc = Enum.find(list, fn %Trd_Common.TrdAcc{accID: accID} -> accID == acc_id end) IO.inspect(acc) [trd_env, trd_market] -> %Trd_GetAccList.S2C{accList: list} = res accs = Enum.filter(list, fn %Trd_Common.TrdAcc{ trdEnv: trdEnv, trdMarketAuthList: trdMarketAuthList } -> trdEnv == String.to_integer(trd_env) and trdMarketAuthList == [String.to_integer(trd_market)] end) IO.inspect(accs) end end end