Current section
Files
Jump to
Current section
Files
lib/core/todo/todo_reactor.ex
defmodule Core.ToDo.Reactor do
use Perspective.Reactor
update(%Core.ToDoAdded{data: data, actor_id: actor_id}, _state) do
%Core.ToDo{}
|> Map.put(:id, data.todo_id)
|> Map.put(:name, data.name)
|> Map.put(:creator_id, actor_id)
|> Perspective.DomainPool.put!()
end
update(%Core.ToDoCompleted{data: data}, _state) do
Perspective.DomainPool.get!(data.todo_id)
|> Map.put(:completed, true)
|> Perspective.DomainPool.put!()
end
update(%Core.ToDoRenamed{data: data}, _state) do
Perspective.DomainPool.get!(data.todo_id)
|> Map.put(:name, data.name)
|> Perspective.DomainPool.put!()
end
end