fix routing key
All checks were successful
Build and Publish / build-release (push) Successful in 1m29s

This commit is contained in:
2026-04-20 15:31:24 -05:00
parent 079837a20b
commit 2fac2306e4

View File

@@ -9,7 +9,7 @@ defmodule PolicyService.Consumers.QuoteTaskConsumer do
@exchange "workload_service.events.quote_task_completed" @exchange "workload_service.events.quote_task_completed"
@queue "policy_service.quote_task_consumer" @queue "policy_service.quote_task_consumer"
@routing_key "quote_task_completed" @routing_key "quote_task.completed"
def start_link(opts \\ []), do: GenServer.start_link(__MODULE__, opts, name: __MODULE__) def start_link(opts \\ []), do: GenServer.start_link(__MODULE__, opts, name: __MODULE__)
@@ -32,6 +32,7 @@ defmodule PolicyService.Consumers.QuoteTaskConsumer do
Logger.error("QuoteTaskConsumer failed: #{inspect(reason)}") Logger.error("QuoteTaskConsumer failed: #{inspect(reason)}")
AMQP.Basic.nack(ch, tag, requeue: false) AMQP.Basic.nack(ch, tag, requeue: false)
end end
{:noreply, state} {:noreply, state}
end end
@@ -40,31 +41,63 @@ defmodule PolicyService.Consumers.QuoteTaskConsumer do
def handle_info({:basic_cancel_ok, _}, state), do: {:noreply, state} def handle_info({:basic_cancel_ok, _}, state), do: {:noreply, state}
defp dispatch(%{ defp dispatch(%{
"application_id" => %{"org_id" => org_id, "policy_type" => policy_type, "application_id" => app_id}, "application_id" => %{
"task_info" => %{"provider_id" => provider_id}, "org_id" => org_id,
"submission" => %{"quote_id" => quote_id, "recorded_by" => recorded_by, "valid_until" => valid_until, "plans" => plans} "policy_type" => policy_type,
}) do "application_id" => app_id
cmd = case policy_type do },
"car" -> %CarPolicy.RecordProviderQuote{ "task_info" => %{"provider_id" => provider_id},
id: PolicyId.new(org_id, policy_type, app_id), "submission" => %{
recorded_by: recorded_by || "system", "quote_id" => quote_id,
provider_id: provider_id, "recorded_by" => recorded_by,
quote_id: quote_id, "valid_until" => valid_until,
valid_until: parse_date(valid_until), "plans" => plans
plans: Enum.map(plans || [], &%{plan_id: &1["plan_id"], name: &1["name"], premium: &1["premium"], coverage_details: &1["coverage_details"]}) }
} }) do
"fire" -> %FirePolicy.RecordProviderQuote{ cmd =
id: PolicyId.new(org_id, policy_type, app_id), case policy_type do
recorded_by: recorded_by || "system", "car" ->
provider_id: provider_id, %CarPolicy.RecordProviderQuote{
quote_id: quote_id, id: PolicyId.new(org_id, policy_type, app_id),
valid_until: parse_date(valid_until), recorded_by: recorded_by || "system",
plans: Enum.map(plans || [], &%{plan_id: &1["plan_id"], name: &1["name"], premium: &1["premium"], coverage_details: &1["coverage_details"]}) provider_id: provider_id,
} quote_id: quote_id,
end valid_until: parse_date(valid_until),
plans:
Enum.map(
plans || [],
&%{
plan_id: &1["plan_id"],
name: &1["name"],
premium: &1["premium"],
coverage_details: &1["coverage_details"]
}
)
}
"fire" ->
%FirePolicy.RecordProviderQuote{
id: PolicyId.new(org_id, policy_type, app_id),
recorded_by: recorded_by || "system",
provider_id: provider_id,
quote_id: quote_id,
valid_until: parse_date(valid_until),
plans:
Enum.map(
plans || [],
&%{
plan_id: &1["plan_id"],
name: &1["name"],
premium: &1["premium"],
coverage_details: &1["coverage_details"]
}
)
}
end
CommandedApp.dispatch(cmd, consistency: :strong) CommandedApp.dispatch(cmd, consistency: :strong)
end end
defp parse_date(nil), do: nil defp parse_date(nil), do: nil
defp parse_date(s) when is_binary(s), do: Date.from_iso8601(s) |> elem(1) defp parse_date(s) when is_binary(s), do: Date.from_iso8601(s) |> elem(1)
end end