1
1
defmodule Cadet.GameStates do
2
2
import Ecto.Repo
3
3
4
+ # currently in this module no error handling function
5
+ # has been implemented yet
6
+
4
7
# simply return the game states of the user
5
8
def user_game_states ( user ) do
6
9
user . game_states
@@ -17,41 +20,41 @@ defmodule Cadet.GameStates do
17
20
end
18
21
19
22
def update_collectibles ( pic_nickname , pic_name , user ) do
20
- # to do
21
23
changeset =
22
24
Ecto.Changeset . cast ( user , % { game_states: % { collectibles: Map . put ( user_collectibles ( user ) , pic_nickname , pic_name ) ,
23
25
save_data: user_save_data ( user ) } } , [ :game_states ] )
24
26
Cadet.Repo . update! ( changeset )
25
- # really simple error handling action, to be further implemented
26
- '''
27
- with {:ok, _} <- Repo.update(changeset) do
28
- {:ok, nil}
29
- else
30
- {:error, _} ->
31
- {:error, {:internal_server_error, "Please try again later."}}
32
- end
33
- '''
34
- end
35
-
36
- # should be idle since we are not going to delete students' collectibles
37
- # but provide the function delete_collectibles here for future extension
38
- def delete_all_collectibles ( user ) do
27
+ end
28
+
29
+ def update_save_data ( action_sequence , start_location , user ) do
39
30
changeset =
40
- Ecto.Changeset . cast ( user , % { game_states: % { collectibles: % { } , save_data: user_save_data ( user ) } } , [ :game_states ] )
31
+ Ecto.Changeset . cast ( user , % { game_states: % { collectibles: user_collectibles ( user ) ,
32
+ save_data: % {
33
+ action_sequence: action_sequence ,
34
+ start_location: start_location
35
+ } } } , [ :game_states ] )
41
36
Cadet.Repo . update! ( changeset )
42
37
end
43
38
44
- '''
45
- # to implement when needed
46
-
47
- def update_save_data() do
48
- ... # to do the actual implementation
39
+ # functions below are for debugging and testing purposes
40
+ def clear_up ( user ) do
41
+ changeset =
42
+ Ecto.Changeset . cast ( user , % { game_states: % { collectibles: % { } ,
43
+ save_data: % { action_sequence: [ ] , start_location: "" } } } , [ :game_states ] )
44
+ Cadet.Repo . update! ( changeset )
49
45
end
50
46
51
- def delete_all_save_data() do
52
- ... # to do the actual implementation
47
+ def delete_all_collectibles ( user ) do
48
+ changeset =
49
+ Ecto.Changeset . cast ( user , % { game_states: % { collectibles: % { } , save_data: user_save_data ( user ) } } , [ :game_states ] )
50
+ Cadet.Repo . update! ( changeset )
53
51
end
54
52
55
- '''
53
+ def delete_save_data ( user ) do
54
+ changeset =
55
+ Ecto.Changeset . cast ( user , % { game_states: % { collectibles: user_collectibles ( user ) ,
56
+ save_data: % { action_sequence: [ ] , start_location: "" } } } , [ :game_states ] )
57
+ Cadet.Repo . update! ( changeset )
58
+ end
56
59
57
60
end
0 commit comments