Get a list from a module to the database

I want to retrieve the list max_sell_order from the function below in MyApp.WorkA

def handle_info(:sell_order_fetch, state) do
        data = sell_order()
            |> Enum.sort_by(&(Map.get(&1, "price")), &>=/2)
            |> get_sell_head

            max_sell_order = data

        schedule_sell_order_fetch

        {:noreply, Map.put(state, :max_sell_order, max_sell_order)}
    end

and use it in another function in another module for some calculations. example

require MyApp.FunctionA
def new_function(max_sell_order) do: IO.inspect(max_sell_order)

But I keep getting undefined function max_sell_order.

Please, how can I call and use the list from another module inside another module?

{:noreply, Map.put(state, :max_sell_order, max_sell_order)}

The above statement is equivalent to {:noreply, state}, i.e. state is a Map where one of the keys is max_sell_order: and the value is the “max sell order data”.

state is managed as part of the running process - it is not part of the module.

So the only way you can provide the max_sell_order to another module is by calling the module function directly. So ultimately some code inside one of the process handlers (e.g. handle_whatever) or one of the functions called by a handler there will be something like:

with {:ok, max_sell_order} <- Map.fetch(state, :max_sell_order) do
  OtherModule.new_function(max_sell_order)
  # ... more code
end
3 Likes