Sha256: 1de82dac1ec15e5887155ebae075184baefd56a2fe6c10f525519dadddbb1a23

Contents?: true

Size: 774 Bytes

Versions: 6

Compression:

Stored size: 774 Bytes

Contents

# frozen_string_literal: true
class Zendesk2::MarkMembershipDefault
  include Zendesk2::Request

  request_method :put
  request_path { |r| "/users/#{r.user_id}/organization_memberships/#{r.identity}/make_default.json" }

  def identity
    params.fetch('membership').fetch('id')
  end

  def user_id
    params.fetch('membership').fetch('user_id').to_i
  end

  def mock
    if (membership = find!(:memberships, identity)) && (membership['user_id'] == user_id)
      # only one user can be default
      other_user_memberships = data[:memberships].values.select { |m| m['user_id'] == user_id }
      other_user_memberships.each { |i| i['default'] = false }
      membership['default'] = true

      mock_response(params)
    else
      error!(:not_found)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
zendesk2-1.15.0 lib/zendesk2/mark_membership_default.rb
zendesk2-1.13.1 lib/zendesk2/mark_membership_default.rb
zendesk2-1.13.0 lib/zendesk2/mark_membership_default.rb
zendesk2-1.12.0 lib/zendesk2/mark_membership_default.rb
zendesk2-1.11.0 lib/zendesk2/mark_membership_default.rb
zendesk2-1.10.0 lib/zendesk2/mark_membership_default.rb