Sha256: eb801e9d8c35522db42c231c27c65839d7af399c4666f52d703107d5be732fe6

Contents?: true

Size: 1.48 KB

Versions: 22

Compression:

Stored size: 1.48 KB

Contents

class Ey::Core::Client
  class Real
    def create_untracked_address(params={})
      request(
        :body   => params,
        :method => :post,
        :path   => "/untracked-addresses",
        :url    => params.delete("url"),
      )
    end
  end # Real

  class Mock
    def create_untracked_address(params={})
      url         = params["url"]

      provider_id ||= params["provider"] || (url && path_params(url)["providers"])
      find(:providers, provider_id)

      resource = params["untracked_address"].dup

      require_parameters(resource, "location", "provisioned_id", "provisioner_id")
      existing_address = self.data[:addresses].find {|id, a| a['provisioned_id'] == resource["provisioned_id"] }

      if existing_address
        existing_id, existing_address = existing_address
        response(
          :body => {"errors" => ["Address '#{resource['provisioned_id']}' is tracked."],
                    "address" => url_for("/addresses/#{existing_id}")},
          :status => 409,
        )
      else
        tracked_address = self.addresses.create!(resource.merge("provider" => provider_id)).resource!

        resource.merge!(
          "provider" => url_for("/providers/#{provider_id}"),
          "location" => resource['location'],
          "address" => url_for("/addresses/#{tracked_address.id}"),
        )

        response(
          :body   => { "untracked_address" => resource },
          :status => 201,
        )
      end
    end
  end # Mock
end # Ey::Core::Client

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
ey-core-3.2.3 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.2.2 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.2.1 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.2.0 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.11 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.10 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.9 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.8 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.7 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.6 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.5 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.4 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.3 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.2 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.1 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.1.0 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.0.5 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.0.4 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.0.3 lib/ey-core/requests/create_untracked_address.rb
ey-core-3.0.2 lib/ey-core/requests/create_untracked_address.rb