class XmppExchangeContactsJob < ApplicationJob queue_as :default def perform(inviter, invitee) return unless inviter.service_enabled?(:ejabberd) && invitee.service_enabled?(:ejabberd) && inviter.preferences[:xmpp_exchange_contacts_with_invitees] ejabberd = EjabberdApiClient.new ejabberd.add_rosteritem({ "localuser": invitee.cn, "localhost": invitee.ou, "user": inviter.cn, "host": inviter.ou, "nick": inviter.cn, "group": Setting.ejabberd_buddy_roster, "subs": "both" }) ejabberd.add_rosteritem({ "localuser": inviter.cn, "localhost": inviter.ou, "user": invitee.cn, "host": invitee.ou, "nick": invitee.cn, "group": Setting.ejabberd_buddy_roster, "subs": "both" }) end end