@@ -8,6 +8,7 @@ defmodule Cadet.GameStates do
8
8
user . game_states
9
9
end
10
10
11
+ @ spec user_collectibles ( atom | % { game_states: nil | maybe_improper_list | map } ) :: any
11
12
def user_collectibles ( user ) do
12
13
user . game_states [ "collectibles" ]
13
14
end
@@ -17,18 +18,26 @@ defmodule Cadet.GameStates do
17
18
end
18
19
19
20
def update ( user , new_game_states ) do
20
- changeset =
21
- Ecto.Changeset . cast ( user , % { game_states:
22
- new_game_states } , [ :game_states ] )
23
- Cadet.Repo . update! ( changeset )
24
- { :ok , nil }
21
+ if user . role == "student" do
22
+ changeset =
23
+ Ecto.Changeset . cast ( user , % { game_states:
24
+ new_game_states } , [ :game_states ] )
25
+ Cadet.Repo . update! ( changeset )
26
+ { :ok , nil }
27
+ else
28
+ { :error , { :forbidden , "Please try again later." } }
29
+ end
25
30
end
26
31
27
32
def clear ( user ) do
28
- changeset =
29
- Ecto.Changeset . cast ( user , % { game_states: % { collectibles: % { } ,
30
- completed_quests: [ ] } } , [ :game_states ] )
31
- Cadet.Repo . update! ( changeset )
32
- { :ok , nil }
33
+ if user . role == "student" do
34
+ changeset =
35
+ Ecto.Changeset . cast ( user , % { game_states: % { collectibles: % { } ,
36
+ completed_quests: [ ] } } , [ :game_states ] )
37
+ Cadet.Repo . update! ( changeset )
38
+ { :ok , nil }
39
+ else
40
+ { :error , { :forbidden , "Please try again later." } }
41
+ end
33
42
end
34
43
end
0 commit comments