class EjabberdApiClient def initialize @base_url = Setting.ejabberd_api_url end def post(endpoint, payload) Faraday.post "#{@base_url}/#{endpoint}", payload.to_json, "Content-Type" => "application/json" end # # API endpoints # def add_rosteritem(payload) post "add_rosteritem", payload end def send_message(payload) post "send_message", payload end def send_stanza(payload) post "send_stanza", payload end def get_vcard2(user, name, subname) payload = { user: user.cn, host: user.ou, name: name, subname: subname } post "get_vcard2", payload end def private_get(user, element_name, namespace) payload = { user: user.cn, host: user.ou, element: element_name, ns: namespace } post "private_get", payload end def private_set(user, content) payload = { user: user.cn, host: user.ou, element: content } post "private_set", payload end end