summaryrefslogtreecommitdiff
path: root/lib/irc/client/command/invite.ex
blob: 833c2fc1eb21507ab3b917eccaef14742d55bcad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
defmodule Irc.Client.Command.Invite do
  alias Irc.Parser.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