class Zendesk2::CreateMembership

Public Class Methods

accepted_params() click to toggle source
# File lib/zendesk2/create_membership.rb, line 9
def self.accepted_params
  %w(user_id organization_id default)
end

Public Instance Methods

membership_params() click to toggle source
# File lib/zendesk2/create_membership.rb, line 13
def membership_params
  @_membership_params ||= Cistern::Hash.slice(params.fetch('membership'), *self.class.accepted_params)
end
mock() click to toggle source
# File lib/zendesk2/create_membership.rb, line 25
def mock
  user = find!(:users, user_id)
  find!(:organizations, organization_id,
        error: :invalid,
        details: {
          'organization' => [{ 'description' => 'Organization cannot be blank' }],
        })

  if data[:memberships].values.find { |m| m['user_id'] == user_id && m['organization_id'] == organization_id }
    error!(:invalid, description: { 'user_id' => [{ 'description' => 'User has already been taken' }] })
  end

  resource_id = cistern.serial_id

  default_membership = !data[:memberships].values.find { |m| m['user_id'] == user_id && m['default'] }

  resource = {
    'id'              => resource_id,
    'user_id'         => user_id,
    'organization_id' => organization_id,
    'default'         => default_membership,
  }

  data[:memberships][resource_id] = resource

  primary_organization = data[:memberships].values.find { |m| m['user_id'] == user_id && m['default'] }

  if primary_organization
    user['organization_id'] = primary_organization['organization_id']
  end

  mock_response('organization_membership' => resource)
end
organization_id() click to toggle source
# File lib/zendesk2/create_membership.rb, line 21
def organization_id
  params.fetch('membership').fetch('organization_id').to_i
end
user_id() click to toggle source
# File lib/zendesk2/create_membership.rb, line 17
def user_id
  params.fetch('membership').fetch('user_id').to_i
end