Notificações
Exemplo de controller para receber notificações.
Neste exemplo não está sendo verificado o header ‘Authorization’ enviado pelo moip. Isto pode ser feito através de um plug.
defmodule MyApp.MoipController do
use MyApp.Web, :controller
require Logger
def notification(conn, params = %{"event" => "plan.created", "resource" => plan}) do
Logger.info "[MOIP NOTIFICATION] plan.created #{plan["code"]}"
Logger.debug inspect(plan)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "plan.updated", "resource" => plan}) do
Logger.info "[MOIP NOTIFICATION] plan.updated #{plan["code"]}"
Logger.debug inspect(plan)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "plan.activated", "resource" => plan}) do
Logger.info "[MOIP NOTIFICATION] plan.activated #{plan["code"]}"
Logger.debug inspect(plan)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "plan.inactivated", "resource" => plan}) do
Logger.info "[MOIP NOTIFICATION] plan.updated #{plan["inactivated"]}"
Logger.debug inspect(plan)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "subscription.created", "resource" => subscription}) do
Logger.info "[MOIP NOTIFICATION] subscription.created #{subscription["code"]}"
Logger.debug inspect(subscription)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "subscription.updated", "resource" => subscription}) do
Logger.info "[MOIP NOTIFICATION] subscription.updated #{subscription["code"]}"
Logger.debug inspect(subscription)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "subscription.activated", "resource" => subscription}) do
Logger.info "[MOIP NOTIFICATION] subscription.activated #{subscription["code"]}"
Logger.debug inspect(subscription)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "subscription.suspended", "resource" => subscription}) do
Logger.info "[MOIP NOTIFICATION] subscription.suspended #{subscription["code"]}"
Logger.debug inspect(subscription)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "subscription.canceled", "resource" => subscription}) do
Logger.info "[MOIP NOTIFICATION] subscription.canceled #{subscription["code"]}"
Logger.debug inspect(subscription)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "invoice.created", "resource" => invoice}) do
Logger.info "[MOIP NOTIFICATION] invoice.created #{invoice["id"]}"
Logger.debug inspect(invoice)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "invoice.status_updated", "resource" => invoice}) do
Logger.info "[MOIP NOTIFICATION] invoice.status_updated #{invoice["id"]}"
Logger.debug inspect(invoice)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "payment.created", "resource" => payment}) do
Logger.info "[MOIP NOTIFICATION] payment.created #{payment["id"]}"
Logger.debug inspect(payment)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params = %{"event" => "payment.status_updated", "resource" => payment}) do
Logger.info "[MOIP NOTIFICATION] payment.status_updated #{payment["id"]}"
Logger.debug inspect(payment)
#Do something
send_resp(conn, :no_content, "")
end
def notification(conn, params) do
Logger.info "[MOIP NOTIFICATION] not implemented"
Logger.info inspect(params)
#Do something
send_resp(conn, :no_content, "")
end
end