summaryrefslogtreecommitdiff
path: root/lib/aggiedit/uploads.ex
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-04-06 12:55:12 -0600
committerLogan Hunt <loganhunt@simponic.xyz>2022-04-06 12:55:12 -0600
commit4067339e8cf9dbd624a8fa0183d7a29c73b2e762 (patch)
tree4f995e706c10bf5b9a58c078cfb843c76e31c8a0 /lib/aggiedit/uploads.ex
parent66d871e5461814dad58872eb832a58f2c3c5111b (diff)
downloadaggiedit-4067339e8cf9dbd624a8fa0183d7a29c73b2e762.tar.gz
aggiedit-4067339e8cf9dbd624a8fa0183d7a29c73b2e762.zip
Models for upload and post; generated liveview controller for posts
Diffstat (limited to 'lib/aggiedit/uploads.ex')
-rw-r--r--lib/aggiedit/uploads.ex104
1 files changed, 104 insertions, 0 deletions
diff --git a/lib/aggiedit/uploads.ex b/lib/aggiedit/uploads.ex
new file mode 100644
index 0000000..2dcdcc3
--- /dev/null
+++ b/lib/aggiedit/uploads.ex
@@ -0,0 +1,104 @@
+defmodule Aggiedit.Uploads do
+ @moduledoc """
+ The Uploads context.
+ """
+
+ import Ecto.Query, warn: false
+ alias Aggiedit.Repo
+
+ alias Aggiedit.Uploads.Upload
+
+ @doc """
+ Returns the list of uploads.
+
+ ## Examples
+
+ iex> list_uploads()
+ [%Upload{}, ...]
+
+ """
+ def list_uploads do
+ Repo.all(Upload)
+ end
+
+ @doc """
+ Gets a single upload.
+
+ Raises `Ecto.NoResultsError` if the Upload does not exist.
+
+ ## Examples
+
+ iex> get_upload!(123)
+ %Upload{}
+
+ iex> get_upload!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_upload!(id), do: Repo.get!(Upload, id)
+
+ @doc """
+ Creates a upload.
+
+ ## Examples
+
+ iex> create_upload(%{field: value})
+ {:ok, %Upload{}}
+
+ iex> create_upload(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_upload(attrs \\ %{}) do
+ %Upload{}
+ |> Upload.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a upload.
+
+ ## Examples
+
+ iex> update_upload(upload, %{field: new_value})
+ {:ok, %Upload{}}
+
+ iex> update_upload(upload, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_upload(%Upload{} = upload, attrs) do
+ upload
+ |> Upload.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a upload.
+
+ ## Examples
+
+ iex> delete_upload(upload)
+ {:ok, %Upload{}}
+
+ iex> delete_upload(upload)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_upload(%Upload{} = upload) do
+ Repo.delete(upload)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking upload changes.
+
+ ## Examples
+
+ iex> change_upload(upload)
+ %Ecto.Changeset{data: %Upload{}}
+
+ """
+ def change_upload(%Upload{} = upload, attrs \\ %{}) do
+ Upload.changeset(upload, attrs)
+ end
+end