79926892cb4bf0ae764240b2f0befc743b4bea29
[akkoma] / lib / pleroma / migrators / hashtags_table_migrator / state.ex
1 defmodule Pleroma.Migrators.HashtagsTableMigrator.State do
2 use Agent
3
4 @init_state %{}
5
6 def start_link(_) do
7 Agent.start_link(fn -> @init_state end, name: __MODULE__)
8 end
9
10 def get do
11 Agent.get(__MODULE__, & &1)
12 end
13
14 def put(key, value) do
15 Agent.update(__MODULE__, fn state ->
16 Map.put(state, key, value)
17 end)
18 end
19
20 def increment(key, increment \\ 1) do
21 Agent.update(__MODULE__, fn state ->
22 updated_value = (state[key] || 0) + increment
23 Map.put(state, key, updated_value)
24 end)
25 end
26 end