summaryrefslogtreecommitdiff
path: root/lib/irc/client/command/invite.ex
blob: 7a14cb890dcea171b55b58637078cda326e169e8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
defmodule Irc.Client.Command.Invite do
  alias Irc.Line

  @type invite :: {:invite, channel :: String.t(), inviter :: String.t(), invited_nick :: String.t()}
  @type invited :: {:invite, channel :: String.t, inviter :: Irc.Mask.t}
  @type t :: invite | invited

  def init(_) do
    {"INVITE", :invite, "invite-notify"}
  end

  def handle_line(_, %Line{command: "INVITE", source: inviter, args: [invited, channel]}) do
    {:event, {:invite, channel, inviter, invited}}
  end

  def handle_line(_, %Line{command: "INVITE", source: inviter, args: [channel]}) do
    {:event, {:invite, channel, inviter}}
  end

end