Add service providers

Add provider configuration for users and organizations for the geocoder,
isolines and routing services.
pull/9012/head
Mario de Frutos 8 years ago
parent 2f4b8c6152
commit 5fd8402e3a

@ -36,6 +36,9 @@ module Carto
:obs_snapshot_block_price => @organization.obs_snapshot_block_price,
:obs_general_quota => @organization.obs_general_quota,
:obs_general_block_price => @organization.obs_general_block_price,
:geocoder_provider => @organization.geocoder_provider,
:isolines_provider => @organization.isolines_provider,
:routing_provider => @organization.routing_provider,
:map_view_quota => @organization.map_view_quota,
:twitter_datasource_quota => @organization.twitter_datasource_quota,
:map_view_block_price => @organization.map_view_block_price,

@ -105,6 +105,9 @@ module Carto
monthly_use: @user.organization_user? ? @user.organization.get_here_isolines_calls : @user.get_here_isolines_calls,
hard_limit: @user.hard_here_isolines_limit?
},
geocoder_provider: @user.geocoder_provider,
isolines_provider: @user.isolines_provider,
routing_provider: @user.routing_provider,
obs_snapshot: {
quota: @user.organization_user? ? @user.organization.obs_snapshot_quota : @user.obs_snapshot_quota,
block_price: @user.organization_user? ? @user.organization.obs_snapshot_block_price : @user.obs_snapshot_block_price,

@ -69,7 +69,8 @@ module Concerns
:google_maps_key, :google_maps_private_key, :auth_username_password_enabled,
:auth_google_enabled, :here_isolines_quota, :here_isolines_block_price,
:obs_snapshot_quota, :obs_snapshot_block_price, :obs_general_quota,
:obs_general_block_price, :salesforce_datasource_enabled]
:obs_general_block_price, :salesforce_datasource_enabled, :geocoder_provider,
:isolines_provider, :routing_provider]
when :update
[:seats, :viewer_seats, :quota_in_bytes, :display_name, :description, :website,
:discus_shortname, :twitter_username, :geocoding_quota, :map_view_quota,
@ -79,7 +80,8 @@ module Concerns
:google_maps_key, :google_maps_private_key, :auth_username_password_enabled,
:auth_google_enabled, :here_isolines_quota, :here_isolines_block_price,
:obs_snapshot_quota, :obs_snapshot_block_price, :obs_general_quota,
:obs_general_block_price, :salesforce_datasource_enabled]
:obs_general_block_price, :salesforce_datasource_enabled, :geocoder_provider,
:isolines_provider, :routing_provider]
end
elsif self.is_a?(::User)
[:account_type, :admin, :crypted_password, :database_host,
@ -100,7 +102,8 @@ module Concerns
:obs_general_quota, :obs_general_block_price, :soft_obs_general_limit,
:mobile_xamarin, :mobile_custom_watermark, :mobile_offline_maps,
:mobile_gis_extension, :mobile_max_open_users, :mobile_max_private_users,
:salesforce_datasource_enabled, :viewer]
:salesforce_datasource_enabled, :viewer, :geocoder_provider,
:isolines_provider, :routing_provider]
end
end
@ -126,7 +129,7 @@ module Concerns
:google_maps_key, :google_maps_private_key, :here_isolines_quota, :here_isolines_block_price,
:soft_here_isolines_limit, :obs_snapshot_quota, :obs_snapshot_block_price, :soft_obs_snapshot_limit,
:obs_general_quota, :obs_general_block_price, :soft_obs_general_limit,
:viewer
:viewer, :geocoder_provider, :isolines_provider, :routing_provider
)
case action
when :create

@ -289,6 +289,9 @@ class Organization < Sequel::Model
:obs_snapshot_block_price => self.obs_snapshot_block_price,
:obs_general_quota => self.obs_general_quota,
:obs_general_block_price => self.obs_general_block_price,
:geocoder_provider => self.geocoder_provider,
:isolines_provider => self.isolines_provider,
:routing_provider => self.routing_provider,
:seats => self.seats,
:twitter_username => self.twitter_username,
:location => self.twitter_username,
@ -409,7 +412,10 @@ class Organization < Sequel::Model
'obs_general_quota', obs_general_quota,
'google_maps_client_id', google_maps_key,
'google_maps_api_key', google_maps_private_key,
'period_end_date', period_end_date
'period_end_date', period_end_date,
'geocoder_provider', geocoder_provider,
'isolines_provider', isolines_provider,
'routing_provider', routing_provider
end
def require_organization_owner_presence!

@ -29,6 +29,9 @@ module CartoDB
quota: self.here_isolines_quota,
monthly_use: self.get_here_isolines_calls
},
geocoder_provider: self.geocoder_provider,
isolines_provider: self.isolines_provider,
routing_provider: self.routing_provider,
obs_snapshot: {
quota: obs_snapshot_quota,
monthly_use: get_obs_snapshot_calls

@ -898,7 +898,10 @@ class User < Sequel::Model
'soft_obs_general_limit', soft_obs_general_limit,
'google_maps_client_id', google_maps_key,
'google_maps_api_key', google_maps_private_key,
'period_end_date', period_end_date
'period_end_date', period_end_date,
'geocoder_provider', geocoder_provider,
'isolines_provider', isolines_provider,
'routing_provider', routing_provider
end
def get_auth_tokens

@ -44,6 +44,9 @@ module CartoDB
monthly_use: self.organization_user? ? self.organization.get_here_isolines_calls : self.get_here_isolines_calls,
hard_limit: self.hard_here_isolines_limit?
},
geocoder_provider: self.geocoder_provider,
isolines_provider: self.isolines_provider,
routing_provider: self.routing_provider,
obs_snapshot: {
quota: organization_user? ? organization.obs_snapshot_quota : obs_snapshot_quota,
block_price: organization_user? ? organization.obs_snapshot_block_price : obs_snapshot_block_price,

@ -0,0 +1,27 @@
Sequel.migration do
up do
alter_table(:users) do
add_column :geocoder_provider, :text
add_column :isolines_provider, :text
add_column :routing_provider, :text
end
alter_table(:organizations) do
add_column :geocoder_provider, :text
add_column :isolines_provider, :text
add_column :routing_provider, :text
end
end
down do
alter_table(:users) do
drop_column :geocoder_provider
drop_column :isolines_provider
drop_column :routing_provider
end
alter_table(:organizations) do
drop_column :geocoder_provider
drop_column :isolines_provider
drop_column :routing_provider
end
end
end

@ -159,6 +159,9 @@ describe Carto::Api::UserPresenter do
new_data[:new_dashboard_enabled].should == old_data[:new_dashboard_enabled]
new_data[:feature_flags].should == old_data[:feature_flags]
new_data[:base_url].should == old_data[:base_url]
new_data[:geocoder_provider].should == old_data[:geocoder_provider]
new_data[:isolines_provider].should == old_data[:isolines_provider]
new_data[:routing_provider].should == old_data[:routing_provider]
if org_user
new_data[:organization].keys.sort.should == old_data[:organization].keys.sort
@ -198,6 +201,9 @@ describe Carto::Api::UserPresenter do
#owner is excluded from the users list
new_data[:organization][:website].should == old_data[:organization][:website]
new_data[:organization][:avatar_url].should == old_data[:organization][:avatar_url]
new_data[:geocoder_provider].should == old_data[:geocoder_provider]
new_data[:isolines_provider].should == old_data[:isolines_provider]
new_data[:routing_provider].should == old_data[:routing_provider]
end
if mobile_sdk_enabled

Loading…
Cancel
Save