defmodule Kaffy.Cache.Client do use GenServer def start_link(args) do GenServer.start_link(__MODULE__, args, name: KaffyCache) end @impl true def init(_) do Kaffy.Cache.Table.create_table() {:ok, %{}} end def add_cache(key, suffix, value, expire_after \\ 600) do GenServer.call(KaffyCache, {:add, key, suffix, value, expire_after}) end def get_cache(key, suffix) do GenServer.call(KaffyCache, {:get, key, suffix}) end @impl true def handle_call({:add, key, suffix, value, expire_after}, _from, state) do result = Kaffy.Cache.Table.add_to_cache(key, suffix, value, expire_after) {:reply, result, state} end @impl true def handle_call({:get, key, suffix}, _from, state) do result = Kaffy.Cache.Table.get_from_cache(key, suffix) {:reply, result, state} end end