Current section
Files
Jump to
Current section
Files
lib/MAIL.ex
defmodule MAIL do
@moduledoc """
`MAIL` is the front API module for application.
It provides records defititions, KVS mentainformation and useful functions.
"""
require Record
require KVS
Enum.each(
Record.extract_all(from_lib: "mail/priv/ROSTER.hrl"),
fn {name, definition} ->
Record.defrecord(name, definition)
end
)
def init([]), do: {:ok, {{:one_for_one, 5, 10}, [ ] }}
def metainfo() do
KVS.schema(
name: :roster,
tables: [
KVS.table(
name: MAIL.Pub,
fields: Record.extract(:Pub, from_lib: "mail/priv/ROSTER.hrl")
)
]
)
end
def bin(key), do: :erlang.list_to_binary(:io_lib.format("~p", [key]))
def user(id) do
case :kvs.get(:writer, ~c"/mail/" ++ id) do
{:ok, _} -> true
{:error, _} -> false
end
end
end