class ShareWorker
  include Sidekiq::Worker

  sidekiq_options queue: :share, retry: false

  # @param user_id [Integer] the user id
  # @param answer_id [Integer] the user id
  # @param services [Array] array containing strings
  def perform(user_id, answer_id, services)
    User.find(user_id).services.each do |service|
      begin
        service.post(Answer.find(answer_id)) if services.include? service.provider
      rescue => e
        logger.info "failed to post answer #{answer_id} to #{service.provider} for user #{user_id}: #{e.message}"
        NewRelic::Agent.notice_error(e)
      end
    end
  end
end