Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- defmodule Porfiry.Quizzes do
- defstruct pid: 0, scheduled?: false
- def start_link do
- Agent.start_link(fn -> %{} end, name: __MODULE__)
- end
- @doc "Returns all saved quizzes."
- def get_quizzes do
- Agent.get(__MODULE__, &(&1))
- end
- @doc "Returns a specific quiz by `quiz_id`."
- def get_quiz(quiz_id) do
- Agent.get(__MODULE__, &Map.get(&1, quiz_id))
- end
- @doc "Adds a new quiz using `quiz_id` as it's key."
- def add_quiz(quiz_id) do
- Agent.update(__MODULE__, &Map.put(&1, quiz_id, %Quizzes{}))
- end
- @doc "Deletes a specific quiz by `quiz_id`."
- def delete_quiz(quiz_id) do
- Agent.update(__MODULE__, &Map.delete(&1, quiz_id))
- end
- @doc "Sets the `scheduled?` key of a quiz to `true`."
- def schedule_quiz(quiz_id) do
- IO.inspect quiz_id
- Agent.update(__MODULE__, &(put_in &1[quiz_id].scheduled?, true))
- end
- @doc "Sets the `scheduled?` key of a quiz to `false`."
- def unschedule_quiz(quiz_id) do
- Agent.update(__MODULE__, &(put_in &1[quiz_id].scheduled?, false))
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement