Current section

Files

Jump to
exdjango lib utils redis.ex
Raw

lib/utils/redis.ex

defmodule ExDjango.Utils.Redis do
@moduledoc """
Helper functions for working with django redis sessions.
"""
alias ExDjango.Session
def default_session_key_prefix(), do: ":1:django.contrib.sessions.cache"
def key(key_prefix, sid), do: key_prefix <> sid
def get_session(sid), do: default_session_key_prefix() |> get_session(sid)
def get_session(key_prefix, sid) do
case Session.redis_pool().command(["GET", key(key_prefix, sid)]) do
{:ok, session} when session != nil -> session |> Session.decode()
_ -> %{}
end
end
def put_session(key_prefix, sid, data) do
{:ok, _} = Session.redis_pool().command(["SET", key(key_prefix, sid), Session.encode(data)])
sid
end
def delete_session(key_prefix, sid) do
{:ok, _} = Session.redis_pool().command(["DEL", key(key_prefix, sid)])
:ok
end
end