Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. defmodule Porfiry.Quizzes do
  2. defstruct pid: 0, scheduled?: false
  3.  
  4. def start_link do
  5. Agent.start_link(fn -> %{} end, name: __MODULE__)
  6. end
  7.  
  8. @doc "Returns all saved quizzes."
  9. def get_quizzes do
  10. Agent.get(__MODULE__, &(&1))
  11. end
  12.  
  13. @doc "Returns a specific quiz by `quiz_id`."
  14. def get_quiz(quiz_id) do
  15. Agent.get(__MODULE__, &Map.get(&1, quiz_id))
  16. end
  17.  
  18. @doc "Adds a new quiz using `quiz_id` as it's key."
  19. def add_quiz(quiz_id) do
  20. Agent.update(__MODULE__, &Map.put(&1, quiz_id, %Quizzes{}))
  21. end
  22.  
  23. @doc "Deletes a specific quiz by `quiz_id`."
  24. def delete_quiz(quiz_id) do
  25. Agent.update(__MODULE__, &Map.delete(&1, quiz_id))
  26. end
  27.  
  28. @doc "Sets the `scheduled?` key of a quiz to `true`."
  29. def schedule_quiz(quiz_id) do
  30. IO.inspect quiz_id
  31. Agent.update(__MODULE__, &(put_in &1[quiz_id].scheduled?, true))
  32. end
  33.  
  34. @doc "Sets the `scheduled?` key of a quiz to `false`."
  35. def unschedule_quiz(quiz_id) do
  36. Agent.update(__MODULE__, &(put_in &1[quiz_id].scheduled?, false))
  37. end
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement