11defmodule Todo.Store do
22
33 def start_link ( ) do
4- Agent . start_link ( fn -> HashDict . new end , name: __MODULE__ )
4+ Agent . start_link ( fn -> Map . new end , name: __MODULE__ )
55 end
66
77 def list ( ) do
88 Agent . get ( __MODULE__ , fn ( state ) ->
9- Enum . map ( Dict . to_list ( state ) , fn ( { key , value } ) ->
9+ Enum . map ( Map . to_list ( state ) , fn ( { key , value } ) ->
1010 value
1111 end )
1212 end )
1313 end
1414
1515 def add ( title ) do
1616 Agent . update ( __MODULE__ , fn ( state ) ->
17- Dict . put ( state , Set . size ( state ) , % Todo.Models.Todo { title: title , completed: false , id: Set . size ( state ) } )
17+ Map . put ( state , Set . size ( state ) , % Todo.Models.Todo { title: title , completed: false , id: Set . size ( state ) } )
1818 end )
1919 end
2020
2121 def update ( id , completed ) do
2222 Agent . update ( __MODULE__ , fn ( state ) ->
23- if Dict . has_key? ( state , id ) do
24- updated_todo = % { Dict . get ( state , id ) | completed: completed }
25- Dict . put ( state , id , updated_todo )
23+ if Map . has_key? ( state , id ) do
24+ updated_todo = % { Map . get ( state , id ) | completed: completed }
25+ Map . put ( state , id , updated_todo )
2626 else
2727 state
2828 end
@@ -31,8 +31,8 @@ defmodule Todo.Store do
3131
3232 def remove ( id ) do
3333 Agent . update ( __MODULE__ , fn ( state ) ->
34- if Dict . has_key? ( state , id ) do
35- Dict . delete ( state , id )
34+ if Map . has_key? ( state , id ) do
35+ Map . delete ( state , id )
3636 else
3737 state
3838 end
0 commit comments