Files
bDS2/lib/bds/import_definitions.ex

38 lines
1.1 KiB
Elixir

defmodule BDS.ImportDefinitions do
@moduledoc false
import Ecto.Query
alias BDS.ImportDefinitions.ImportDefinition
alias BDS.Persistence
alias BDS.Repo
def create_definition(attrs) do
now = Persistence.now_ms()
%ImportDefinition{}
|> ImportDefinition.changeset(%{
id: Ecto.UUID.generate(),
project_id: attr(attrs, :project_id),
name: attr(attrs, :name) || "",
wxr_file_path: attr(attrs, :wxr_file_path),
uploads_folder_path: attr(attrs, :uploads_folder_path),
last_analysis_result: attr(attrs, :last_analysis_result),
created_at: now,
updated_at: now
})
|> Repo.insert()
end
def list_definitions(project_id) do
Repo.all(
from definition in ImportDefinition,
where: definition.project_id == ^project_id,
order_by: [desc: definition.updated_at, desc: definition.created_at],
select: %{id: definition.id, title: definition.name, updated_at: definition.updated_at}
)
end
defp attr(attrs, key), do: Map.get(attrs, key) || Map.get(attrs, Atom.to_string(key))
end