Friendship ended with Postgresql now Cachex is my best friend

This commit is contained in:
Rin Toshaka 2018-12-30 20:00:01 +01:00
parent 535fddd286
commit c119ea3a57
2 changed files with 9 additions and 8 deletions

View file

@ -73,10 +73,10 @@ def delete(%Object{data: %{"id" => id}} = object) do
{:ok, object}
end
end
def get_cached_scrubbed_html(content, scrubbers, object) do
key = "#{generate_scrubber_signature(scrubbers)}|#{object.id}"
Cachex.fetch!(:scrubber_cache, key, fn(_key) -> ensure_scrubbed_html(content, scrubbers) end )
Cachex.fetch!(:scrubber_cache, key, fn _key -> ensure_scrubbed_html(content, scrubbers) end)
end
def get_cached_stripped_html(content, object) do
@ -87,22 +87,24 @@ def ensure_scrubbed_html(
content,
scrubbers
) do
{:commit, HTML.filter_tags(content, scrubbers)}
{:commit, HTML.filter_tags(content, scrubbers)}
end
defp generate_scrubber_signature(scrubber) when is_atom(scrubber) do
generate_scrubber_signature([scrubber])
end
defp generate_scrubber_signature(scrubbers) do
Enum.reduce(scrubbers, "", fn scrubber, signature ->
# If a scrubber does not have a version(e.g HtmlSanitizeEx.Scrubber) it is assumed it is always 0)
version = if Kernel.function_exported?(scrubber, :version, 0) do
# If a scrubber does not have a version(e.g HtmlSanitizeEx.Scrubber) it is assumed it is always 0)
version =
if Kernel.function_exported?(scrubber, :version, 0) do
scrubber.version
else
0
end
"#{signature}#{to_string(scrubber)}#{version}"
"#{signature}#{to_string(scrubber)}#{version}"
end)
end
end

View file

@ -261,5 +261,4 @@ def emoji_from_profile(%{info: _info} = user) do
}
end)
end
end