Skip to content

Instantly share code, notes, and snippets.

@kdiogenes
Created November 13, 2018 15:01
Show Gist options
  • Save kdiogenes/4418ef686103056e45502a4d8fc63eee to your computer and use it in GitHub Desktop.
Save kdiogenes/4418ef686103056e45502a4d8fc63eee to your computer and use it in GitHub Desktop.
phoenix: find or create model
def find_or_create_upload(find_fields, create_attrs \\ %{}) do
filters = Map.take(create_attrs, find_fields) |> Map.to_list()
query = from(u in Upload, where: ^filters)
upload = Repo.one(query)
if upload == nil do
create_upload(create_attrs)
else
upload
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment