This commit is contained in:
17
lib/policy_service/policy/filters.ex
Normal file
17
lib/policy_service/policy/filters.ex
Normal file
@@ -0,0 +1,17 @@
|
||||
defmodule PolicyService.Filters.PolicyApplicationFilters do
|
||||
import Ecto.Query
|
||||
|
||||
def search(query, %Flop.Filter{value: value}, _opts) do
|
||||
term = "%#{value}%"
|
||||
|
||||
where(
|
||||
query,
|
||||
[p],
|
||||
fragment("?->>'name' ilike ?", p.applicant_info, ^term) or
|
||||
fragment("?->>'company_name' ilike ?", p.applicant_info, ^term) or
|
||||
fragment("?->>'document_id' ilike ?", p.applicant_info, ^term) or
|
||||
fragment("?->>'ruc' ilike ?", p.applicant_info, ^term) or
|
||||
ilike(p.policy_number, ^term)
|
||||
)
|
||||
end
|
||||
end
|
||||
21
lib/policy_service/policy/queries.ex
Normal file
21
lib/policy_service/policy/queries.ex
Normal file
@@ -0,0 +1,21 @@
|
||||
defmodule PolicyService.Queries.PolicyQueries do
|
||||
import Ecto.Query
|
||||
|
||||
alias PolicyService.Repo
|
||||
alias PolicyService.Projections.PolicyApplication
|
||||
|
||||
def list_by_org(org_id, params \\ %{}) do
|
||||
base = from(p in PolicyApplication, where: p.org_id == ^org_id)
|
||||
Flop.validate_and_run(base, params, for: PolicyApplication)
|
||||
end
|
||||
|
||||
def get_by_application_id(org_id, application_id) do
|
||||
case Repo.get_by(PolicyApplication,
|
||||
application_id: application_id,
|
||||
org_id: org_id
|
||||
) do
|
||||
nil -> {:error, :not_found}
|
||||
p -> {:ok, p}
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user