class Yoti::DynamicSharingService::LocationConstraintExtensionBuilder

Builder for LocationConstraintExtension

Public Instance Methods

build() click to toggle source
# File lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb, line 76
def build
  @radius ||= 150 unless @radius
  @uncertainty ||= 150 unless @uncertainty

  extension = LocationConstraintExtension.new
  extension.instance_variable_get(:@content)[:expected_device_location] = {
    latitude: @latitude,
    longitude: @longitude,
    radius: @radius,
    max_uncertainty_radius: @uncertainty
  }
  extension
end
with_latitude(latitude) click to toggle source
# File lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb, line 38
def with_latitude(latitude)
  raise ArgumentError, 'Latitude must be Integer or Float'\
    unless latitude.is_a?(Integer) || latitude.is_a?(Float)
  raise ArgumentError, 'Latitude must be between -90 and 90'\
    unless latitude >= -90 && latitude <= 90

  @latitude = latitude
  self
end
with_longitude(longitude) click to toggle source
# File lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb, line 48
def with_longitude(longitude)
  raise ArgumentError, 'Longitude must be Integer or Float'\
    unless longitude.is_a?(Integer) || longitude.is_a?(Float)
  raise ArgumentError, 'Longitude must be between -180 and 180'\
    unless longitude >= -180 && longitude <= 180

  @longitude = longitude
  self
end
with_max_uncertainty(uncertainty) click to toggle source
# File lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb, line 67
def with_max_uncertainty(uncertainty)
  raise ArgumentError, 'Uncertainty must be Integer or Float'\
    unless uncertainty.is_a?(Integer) || uncertainty.is_a?(Float)
  raise ArgumentError, 'Uncertainty must be >= 0' unless uncertainty >= 0

  @uncertainty = uncertainty
  self
end
with_radius(radius) click to toggle source
# File lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb, line 58
def with_radius(radius)
  raise ArgumentError, 'Radius must be Integer or Float'\
    unless radius.is_a?(Integer) || radius.is_a?(Float)
  raise ArgumentError, 'Radius must be >= 0' unless radius >= 0

  @radius = radius
  self
end