- # Go through captchas and remove expired ones
- :ets.tab2list(@ets)
- |> Enum.each(fn {token, _, time_inserted} ->
- # time created + expiration time = time when the captcha should be removed
- remove_time = DateTime.add!(time_inserted, seconds_retained)
- if DateTime.after?(DateTime.now_utc(), remove_time), do: :ets.delete(@ets, token)
- end)
+ :ets.select_delete(
+ @ets,
+ [
+ {
+ {:_, :_, :"$1"},
+ [{:<, :"$1", {:const, delete_after}}],
+ [true]
+ }
+ ]
+ )