init commit
This commit is contained in:
38
lib/workload_service/workload/queries.ex
Normal file
38
lib/workload_service/workload/queries.ex
Normal file
@@ -0,0 +1,38 @@
|
||||
defmodule WorkloadService.Workload.Queries do
|
||||
@moduledoc """
|
||||
Database query functions for tasks.
|
||||
"""
|
||||
|
||||
import Ecto.Query
|
||||
alias WorkloadService.Projections.Task
|
||||
alias WorkloadService.Repo
|
||||
|
||||
def list_tasks(params \\ %{}) do
|
||||
base_query()
|
||||
|> Flop.validate_and_run(params, for: Task)
|
||||
end
|
||||
|
||||
def list_tasks_by_org(org_id, params \\ %{}) do
|
||||
base_query()
|
||||
|> where(org_id: ^org_id)
|
||||
|> Flop.validate_and_run(params, for: Task)
|
||||
end
|
||||
|
||||
def get_task_by_id(id) do
|
||||
case Repo.get(Task, id) do
|
||||
nil -> {:error, :not_found}
|
||||
task -> {:ok, task}
|
||||
end
|
||||
end
|
||||
|
||||
def get_task_by_org_and_application(org_id, application_id) do
|
||||
case Repo.get_by(Task, org_id: org_id, application_id: application_id) do
|
||||
nil -> {:error, :not_found}
|
||||
task -> {:ok, task}
|
||||
end
|
||||
end
|
||||
|
||||
defp base_query do
|
||||
from(t in Task, as: :task)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user