21 lines
		
	
	
		
			517 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			517 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class EjabberdApiClient
 | 
						|
  def initialize
 | 
						|
    @base_url = ENV["EJABBERD_API_URL"]
 | 
						|
  end
 | 
						|
 | 
						|
  def post(endpoint, payload)
 | 
						|
    res = Faraday.post("#{@base_url}/#{endpoint}", payload.to_json,
 | 
						|
                       "Content-Type" => "application/json")
 | 
						|
 | 
						|
    if res.status != 200
 | 
						|
      Rails.logger.error "[ejabberd] API request failed:"
 | 
						|
      Rails.logger.error res.body
 | 
						|
      #TODO add some kind of exception tracking/notifications
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def add_rosteritem(payload)
 | 
						|
    post "add_rosteritem", payload
 | 
						|
  end
 | 
						|
end
 |