make code more idiomatic

master
Rachel Fae Fox (foxiepaws) 2020-07-17 14:17:41 -04:00
parent 65dad89f5e
commit 08d41aa70f
1 changed files with 10 additions and 13 deletions

View File

@ -1,40 +1,37 @@
defmodule Discordirc.ChannelMap do defmodule Discordirc.ChannelMap do
@cmap Application.fetch_env!(:discordirc, :channels)
def discord(network, channel) do def discord(network, channel) do
cmap = Application.fetch_env!(:discordirc, :channels)
id = id =
cmap @cmap
|> Enum.filter(&(&1.ircnetwork == network and &1.ircchannel == channel)) |> Enum.filter(&(&1.ircnetwork == network and &1.ircchannel == channel))
|> List.first() |> List.first()
case id do case id do
x when is_map(x) -> %{discordid: discordid, ircnetwork: ^network, ircchannel: ^channel} ->
{:ok, Map.get(x, :discordid)} {:ok, discordid}
nil -> _ ->
{:error, "no mapping"} {:error, "no mapping"}
end end
end end
def irc(id) do def irc(id) do
cmap = Application.fetch_env!(:discordirc, :channels)
channel = channel =
cmap @cmap
|> Enum.filter(&(&1.discordid == id)) |> Enum.filter(&(&1.discordid == id))
|> List.first() |> List.first()
case channel do case channel do
x when is_map(x) -> %{discordid: ^id, ircnetwork: net, ircchannel: chan} ->
{:ok, channel.ircnetwork, channel.ircchannel} {:ok, net, chan}
nil -> _ ->
{:error, "no mapping"} {:error, "no mapping"}
end end
end end
def getircchannels(network) do def getircchannels(network) do
Application.fetch_env!(:discordirc, :channels) @cmap
|> Enum.filter(&(&1.ircnetwork == network)) |> Enum.filter(&(&1.ircnetwork == network))
|> Enum.map(& &1.ircchannel) |> Enum.map(& &1.ircchannel)
end end