revamp aggregate and use typestruct
All checks were successful
Build and Publish / build-release (push) Successful in 1m41s
All checks were successful
Build and Publish / build-release (push) Successful in 1m41s
This commit is contained in:
@@ -10,12 +10,11 @@ defmodule PolicyService.Projectors.PolicyProjector do
|
||||
ProviderQuoteReceived,
|
||||
AllQuotesReceived,
|
||||
QuoteAccepted,
|
||||
SolicitationSent,
|
||||
SolicitationRequestSent,
|
||||
PolicyIssued
|
||||
}
|
||||
|
||||
alias PolicyService.Projections.PolicyApplication
|
||||
alias PolicyService.Aggregates.PolicyId
|
||||
import Ecto.Query
|
||||
|
||||
project(%PolicyApplicationSubmitted{} = e, _meta, fn multi ->
|
||||
@@ -69,25 +68,20 @@ defmodule PolicyService.Projectors.PolicyProjector do
|
||||
end)
|
||||
|> Ecto.Multi.update(:policy_application, fn %{fetch: p} ->
|
||||
Ecto.Changeset.change(p,
|
||||
accepted_quote_id: e.quote.quote_id,
|
||||
accepted_plan_id: e.plan.plan_id,
|
||||
accepted_provider_id: e.provider.id,
|
||||
accepted_at: parse_datetime(e.accepted_at),
|
||||
status: "solicitation_sent"
|
||||
accepted_by: e.accepted_by
|
||||
)
|
||||
end)
|
||||
end)
|
||||
|
||||
project(%SolicitationSent{} = e, _meta, fn multi ->
|
||||
project(%SolicitationRequestSent{} = e, _meta, fn multi ->
|
||||
multi
|
||||
|> Ecto.Multi.run(:fetch, fn repo, _ ->
|
||||
{:ok, repo.get!(PolicyApplication, to_string(e.id))}
|
||||
end)
|
||||
|> Ecto.Multi.update(:policy_application, fn %{fetch: p} ->
|
||||
Ecto.Changeset.change(p,
|
||||
solicitation_id: e.solicitation_id,
|
||||
solicitation_s3_key: e.s3_key,
|
||||
solicitation_sent_at: parse_datetime(e.sent_at)
|
||||
status: "awaiting_policy"
|
||||
)
|
||||
end)
|
||||
end)
|
||||
@@ -99,7 +93,7 @@ defmodule PolicyService.Projectors.PolicyProjector do
|
||||
end)
|
||||
|> Ecto.Multi.update(:policy_application, fn %{fetch: p} ->
|
||||
Ecto.Changeset.change(p,
|
||||
policy_number: e.policy_number,
|
||||
provider_policy_number: e.provider_policy_number,
|
||||
effective_date: parse_date(e.effective_date),
|
||||
expiry_date: parse_date(e.expiry_date),
|
||||
issued_at: parse_datetime(e.issued_at),
|
||||
|
||||
Reference in New Issue
Block a user