Current section
Files
Jump to
Current section
Files
lib/CHAT.ex
defmodule CHAT do
@moduledoc """
`CHAT` 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: "chat/include/roster.hrl"),
fn {name, definition} ->
Record.defrecord(name, definition)
end
)
def metainfo() do
KVS.schema(
name: :roster,
tables: [
KVS.table(
name: CHAT.Pub,
fields: Record.extract(:Pub, from_lib: "chat/include/roster.hrl")
)
]
)
end
def bin(key), do: :erlang.list_to_binary(:io_lib.format("~p", [key]))
def user(id) do
case :kvs.get(:writer, '/chat/' ++ id) do
{:ok, _} -> true
{:error, _} -> false
end
end
end