Endpoint to receive full access requests

pull/16277/head
Rafa de la Torre 3 years ago
parent 79cbceea9f
commit fb22cc293b

@ -20,11 +20,11 @@ module Carto
before_action :load_user
before_action :load_filters, only: [:subscriptions]
before_action :load_id, only: [:subscription, :subscription_info, :subscribe, :unsubscribe]
before_action :load_type, only: [:subscription, :subscription_info, :subscribe]
before_action :load_id, only: [:subscription, :update_subscription, :subscription_info, :subscribe, :unsubscribe]
before_action :load_type, only: [:subscription, :update_subscription, :subscription_info, :subscribe]
before_action :load_http_client, only: [:subscription_info, :subscribe]
before_action :check_api_key_permissions
before_action :check_do_enabled, only: [:subscription, :subscription_info, :subscriptions]
before_action :check_do_enabled, only: [:subscription, :update_subscription, :subscription_info, :subscriptions]
setup_default_rescues
rescue_from Carto::SubscriptionNotFoundError, with: :rescue_from_subscription_not_found
@ -65,6 +65,15 @@ module Carto
render(json: bq_subscription)
end
def update_subscription
licensing_service = Carto::DoLicensingService.new(@user.username)
bq_subscription = licensing_service.subscription(@id)
allowed_params = params.slice(:full_access_status_bq, :full_access_status_azure, :full_access_status_aws)
updated_subscription = bq_subscription.merge(allowed_params)
licensing_service.update(updated_subscription)
render(json: updated_subscription)
end
def subscription_info
response = present_metadata(subscription_metadata(@id, @type))

@ -17,6 +17,12 @@ module Carto
add_to_redis(dataset)
end
def update(dataset)
# TODO: update it in central
#Cartodb::Central.new.update_do_datasets(username: @user.username, datasets: [dataset])
add_to_redis(dataset)
end
def unsubscribe(dataset_id)
Cartodb::Central.new.remove_do_dataset(username: @user.username, id: dataset_id)
remove_from_redis(dataset_id)

@ -659,6 +659,7 @@ CartoDB::Application.routes.draw do
get 'token' => 'data_observatory#token', as: :api_v4_do_token
get 'subscriptions' => 'data_observatory#subscriptions', as: :api_v4_do_subscriptions_show
get 'subscriptions/:subscription_id' => 'data_observatory#subscription', as: :api_v4_do_subscription_show, constraints: { subscription_id: /[\w\.\-]+/ }
put 'subscriptions/:subscription_id' => 'data_observatory#update_subscription', as: :api_v4_do_subscription_update, constraints: { subscription_id: /[\w\.\-]+/ }
post 'subscriptions' => 'data_observatory#subscribe', as: :api_v4_do_subscriptions_create
delete 'subscriptions' => 'data_observatory#unsubscribe', as: :api_v4_do_subscriptions_destroy
get 'subscription_info' => 'data_observatory#subscription_info', as: :api_v4_do_subscription_info

Loading…
Cancel
Save