Sha256: a5d383f1af8b8e11ed78d83e1d5c615c1c0a9a976e88023fe58618071f20b70d

Contents?: true

Size: 1.29 KB

Versions: 21

Compression:

Stored size: 1.29 KB

Contents

class Zendesk2::Client::CreateUserIdentity < Zendesk2::Client::Request
  request_method :post
  request_path { |r| "/users/#{r.user_id}/identities.json" }
  request_body { |r| { "identity" => r.user_identity_params } }

  def self.accepted_attributes
    %w[primary verified type value user_id]
  end

  def user_identity_params
    Cistern::Hash.slice(params.fetch("user_identity"), *self.class.accepted_attributes)
  end

  def user_id
    params.fetch("user_identity").fetch("user_id").to_i
  end

  def mock
    identity = service.serial_id

    record = {
      "id"         => identity,
      "url"        => url_for("/user/#{user_id}/identities/#{identity}.json"),
      "created_at" => Time.now.iso8601,
      "updated_at" => Time.now.iso8601,
      "verified"   => false,
      "primary"    => false,
      "user_id"    => user_id,
    }.merge(user_identity_params)

    record.merge("primary" => true) if service.data[:identities].values.find { |ui| ui["user_id"] == user_id }.nil?

    if service.data[:identities].values.find { |i| i["value"] == record["value"] }
      error!(:invalid, details: { "value" => [ { "description" => "Value: #{record["value"]} is already being used by another user" } ] })
    end

    service.data[:identities][identity] = record

    mock_response("identity" => record)
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
zendesk2-1.7.5 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.7.4 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.7.2 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.7.1 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.7.0 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.6.1 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.17 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.16 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.15 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.14 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.13 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.12 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.11 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.10 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.9 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.8 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.7 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.6 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.5 lib/zendesk2/client/requests/create_user_identity.rb
zendesk2-1.5.4 lib/zendesk2/client/requests/create_user_identity.rb