defmodule LineMessage.EventHandle do use Maru.Router plug Plug.Logger plug Plug.Parsers, parsers: [:json], json_decoder: Poison get "/" do conn |> text("OK") end params do requires :events, type: List do requires :replyToken requires :type optional :timestamp requires :source, type: Map do requires :type requires :userId end optional :message, type: Map do requires :id requires :type optional :text end optional :beacon, type: Map do requires :hwid requires :type end end end post "/" do handle_events(params[:events]) conn |> text("OK") end def handle_events([]), do: {:ok} def handle_events([event|t]) do LineMessage.Event.notify(event) handle_events(t) end end