|
| 1 | +defmodule Radiator.Podcast do |
| 2 | + @moduledoc """ |
| 3 | + The Podcasts context. |
| 4 | + Handles repo operations for networks, shows and episodes. |
| 5 | + """ |
| 6 | + |
| 7 | + import Ecto.Query, warn: false |
| 8 | + alias Radiator.Repo |
| 9 | + |
| 10 | + alias Radiator.Podcast.{Episode, Network, Show} |
| 11 | + |
| 12 | + @doc """ |
| 13 | + Returns the list of networks. |
| 14 | +
|
| 15 | + ## Examples |
| 16 | +
|
| 17 | + iex> list_networks() |
| 18 | + [%Network{}, ...] |
| 19 | +
|
| 20 | + """ |
| 21 | + def list_networks do |
| 22 | + Repo.all(Network) |
| 23 | + end |
| 24 | + |
| 25 | + @doc """ |
| 26 | + Gets a single network. |
| 27 | +
|
| 28 | + Raises `Ecto.NoResultsError` if the Network does not exist. |
| 29 | +
|
| 30 | + ## Examples |
| 31 | +
|
| 32 | + iex> get_network!(123) |
| 33 | + %Network{} |
| 34 | +
|
| 35 | + iex> get_network!(456) |
| 36 | + ** (Ecto.NoResultsError) |
| 37 | +
|
| 38 | + """ |
| 39 | + def get_network!(id), do: Repo.get!(Network, id) |
| 40 | + |
| 41 | + @doc """ |
| 42 | + Creates a network. |
| 43 | +
|
| 44 | + ## Examples |
| 45 | +
|
| 46 | + iex> create_network(%{field: value}) |
| 47 | + {:ok, %Network{}} |
| 48 | +
|
| 49 | + iex> create_network(%{field: bad_value}) |
| 50 | + {:error, %Ecto.Changeset{}} |
| 51 | +
|
| 52 | + """ |
| 53 | + def create_network(attrs \\ %{}) do |
| 54 | + %Network{} |
| 55 | + |> Network.changeset(attrs) |
| 56 | + |> Repo.insert() |
| 57 | + end |
| 58 | + |
| 59 | + @doc """ |
| 60 | + Updates a network. |
| 61 | +
|
| 62 | + ## Examples |
| 63 | +
|
| 64 | + iex> update_network(network, %{field: new_value}) |
| 65 | + {:ok, %Network{}} |
| 66 | +
|
| 67 | + iex> update_network(network, %{field: bad_value}) |
| 68 | + {:error, %Ecto.Changeset{}} |
| 69 | +
|
| 70 | + """ |
| 71 | + def update_network(%Network{} = network, attrs) do |
| 72 | + network |
| 73 | + |> Network.changeset(attrs) |
| 74 | + |> Repo.update() |
| 75 | + end |
| 76 | + |
| 77 | + @doc """ |
| 78 | + Deletes a network. |
| 79 | +
|
| 80 | + ## Examples |
| 81 | +
|
| 82 | + iex> delete_network(network) |
| 83 | + {:ok, %Network{}} |
| 84 | +
|
| 85 | + iex> delete_network(network) |
| 86 | + {:error, %Ecto.Changeset{}} |
| 87 | +
|
| 88 | + """ |
| 89 | + def delete_network(%Network{} = network) do |
| 90 | + Repo.delete(network) |
| 91 | + end |
| 92 | + |
| 93 | + @doc """ |
| 94 | + Returns an `%Ecto.Changeset{}` for tracking network changes. |
| 95 | +
|
| 96 | + ## Examples |
| 97 | +
|
| 98 | + iex> change_network(network) |
| 99 | + %Ecto.Changeset{data: %Network{}} |
| 100 | +
|
| 101 | + """ |
| 102 | + def change_network(%Network{} = network, attrs \\ %{}) do |
| 103 | + Network.changeset(network, attrs) |
| 104 | + end |
| 105 | + |
| 106 | + @doc """ |
| 107 | + Returns the list of shows. |
| 108 | +
|
| 109 | + ## Examples |
| 110 | +
|
| 111 | + iex> list_shows() |
| 112 | + [%Show{}, ...] |
| 113 | +
|
| 114 | + """ |
| 115 | + def list_shows do |
| 116 | + Repo.all(Show) |
| 117 | + end |
| 118 | + |
| 119 | + @doc """ |
| 120 | + Gets a single show. |
| 121 | +
|
| 122 | + Raises `Ecto.NoResultsError` if the Show does not exist. |
| 123 | +
|
| 124 | + ## Examples |
| 125 | +
|
| 126 | + iex> get_show!(123) |
| 127 | + %Show{} |
| 128 | +
|
| 129 | + iex> get_show!(456) |
| 130 | + ** (Ecto.NoResultsError) |
| 131 | +
|
| 132 | + """ |
| 133 | + def get_show!(id), do: Repo.get!(Show, id) |
| 134 | + |
| 135 | + @doc """ |
| 136 | + Creates a show. |
| 137 | +
|
| 138 | + ## Examples |
| 139 | +
|
| 140 | + iex> create_show(%{field: value}) |
| 141 | + {:ok, %Show{}} |
| 142 | +
|
| 143 | + iex> create_show(%{field: bad_value}) |
| 144 | + {:error, %Ecto.Changeset{}} |
| 145 | +
|
| 146 | + """ |
| 147 | + def create_show(attrs \\ %{}) do |
| 148 | + %Show{} |
| 149 | + |> Show.changeset(attrs) |
| 150 | + |> Repo.insert() |
| 151 | + end |
| 152 | + |
| 153 | + @doc """ |
| 154 | + Updates a show. |
| 155 | +
|
| 156 | + ## Examples |
| 157 | +
|
| 158 | + iex> update_show(show, %{field: new_value}) |
| 159 | + {:ok, %Show{}} |
| 160 | +
|
| 161 | + iex> update_show(show, %{field: bad_value}) |
| 162 | + {:error, %Ecto.Changeset{}} |
| 163 | +
|
| 164 | + """ |
| 165 | + def update_show(%Show{} = show, attrs) do |
| 166 | + show |
| 167 | + |> Show.changeset(attrs) |
| 168 | + |> Repo.update() |
| 169 | + end |
| 170 | + |
| 171 | + @doc """ |
| 172 | + Deletes a show. |
| 173 | +
|
| 174 | + ## Examples |
| 175 | +
|
| 176 | + iex> delete_show(show) |
| 177 | + {:ok, %Show{}} |
| 178 | +
|
| 179 | + iex> delete_show(show) |
| 180 | + {:error, %Ecto.Changeset{}} |
| 181 | +
|
| 182 | + """ |
| 183 | + def delete_show(%Show{} = show) do |
| 184 | + Repo.delete(show) |
| 185 | + end |
| 186 | + |
| 187 | + @doc """ |
| 188 | + Returns an `%Ecto.Changeset{}` for tracking show changes. |
| 189 | +
|
| 190 | + ## Examples |
| 191 | +
|
| 192 | + iex> change_show(show) |
| 193 | + %Ecto.Changeset{data: %Show{}} |
| 194 | +
|
| 195 | + """ |
| 196 | + def change_show(%Show{} = show, attrs \\ %{}) do |
| 197 | + Show.changeset(show, attrs) |
| 198 | + end |
| 199 | + |
| 200 | + @doc """ |
| 201 | + Returns the list of episodes. |
| 202 | +
|
| 203 | + ## Examples |
| 204 | +
|
| 205 | + iex> list_episodes() |
| 206 | + [%Episode{}, ...] |
| 207 | +
|
| 208 | + """ |
| 209 | + def list_episodes do |
| 210 | + Repo.all(Episode) |
| 211 | + end |
| 212 | + |
| 213 | + @doc """ |
| 214 | + Gets a single episode. |
| 215 | +
|
| 216 | + Raises `Ecto.NoResultsError` if the Episode does not exist. |
| 217 | +
|
| 218 | + ## Examples |
| 219 | +
|
| 220 | + iex> get_episode!(123) |
| 221 | + %Episode{} |
| 222 | +
|
| 223 | + iex> get_episode!(456) |
| 224 | + ** (Ecto.NoResultsError) |
| 225 | +
|
| 226 | + """ |
| 227 | + def get_episode!(id), do: Repo.get!(Episode, id) |
| 228 | + |
| 229 | + @doc """ |
| 230 | + Creates a episode. |
| 231 | +
|
| 232 | + ## Examples |
| 233 | +
|
| 234 | + iex> create_episode(%{field: value}) |
| 235 | + {:ok, %Episode{}} |
| 236 | +
|
| 237 | + iex> create_episode(%{field: bad_value}) |
| 238 | + {:error, %Ecto.Changeset{}} |
| 239 | +
|
| 240 | + """ |
| 241 | + def create_episode(attrs \\ %{}) do |
| 242 | + %Episode{} |
| 243 | + |> Episode.changeset(attrs) |
| 244 | + |> Repo.insert() |
| 245 | + end |
| 246 | + |
| 247 | + @doc """ |
| 248 | + Updates a episode. |
| 249 | +
|
| 250 | + ## Examples |
| 251 | +
|
| 252 | + iex> update_episode(episode, %{field: new_value}) |
| 253 | + {:ok, %Episode{}} |
| 254 | +
|
| 255 | + iex> update_episode(episode, %{field: bad_value}) |
| 256 | + {:error, %Ecto.Changeset{}} |
| 257 | +
|
| 258 | + """ |
| 259 | + def update_episode(%Episode{} = episode, attrs) do |
| 260 | + episode |
| 261 | + |> Episode.changeset(attrs) |
| 262 | + |> Repo.update() |
| 263 | + end |
| 264 | + |
| 265 | + @doc """ |
| 266 | + Deletes a episode. |
| 267 | +
|
| 268 | + ## Examples |
| 269 | +
|
| 270 | + iex> delete_episode(episode) |
| 271 | + {:ok, %Episode{}} |
| 272 | +
|
| 273 | + iex> delete_episode(episode) |
| 274 | + {:error, %Ecto.Changeset{}} |
| 275 | +
|
| 276 | + """ |
| 277 | + def delete_episode(%Episode{} = episode) do |
| 278 | + Repo.delete(episode) |
| 279 | + end |
| 280 | + |
| 281 | + @doc """ |
| 282 | + Returns an `%Ecto.Changeset{}` for tracking episode changes. |
| 283 | +
|
| 284 | + ## Examples |
| 285 | +
|
| 286 | + iex> change_episode(episode) |
| 287 | + %Ecto.Changeset{data: %Episode{}} |
| 288 | +
|
| 289 | + """ |
| 290 | + def change_episode(%Episode{} = episode, attrs \\ %{}) do |
| 291 | + Episode.changeset(episode, attrs) |
| 292 | + end |
| 293 | +end |
0 commit comments