# preparation module
Ash.Query.before_transaction(query, fn query ->
api_data = make_external_api_call()
Ash.Query.put_context(query, :external_api_data, api_data)
end)
# calculation module
def calculate(records, _opts, context) do
api_data = context.source_context[:external_api_data]
Enum.map(records, fn record ->
# get apppropriate field from api_data
...
end)
end
# preparation module
Ash.Query.before_transaction(query, fn query ->
api_data = make_external_api_call()
Ash.Query.put_context(query, :external_api_data, api_data)
end)
# calculation module
def calculate(records, _opts, context) do
api_data = context.source_context[:external_api_data]
Enum.map(records, fn record ->
# get apppropriate field from api_data
...
end)
end