DO Sync endpoints (WIP)

pull/15741/head
Javier Goizueta 4 years ago
parent dc72a125de
commit c9f9b98225

@ -76,6 +76,18 @@ module Carto
head :no_content
end
def sync_info
render json: Carto::DoSyncService.new(@user).sync(params[:subscription_id])
end
def create_sync
render json: Carto::DoSyncService.new(@user).create_sync!(params[:subscription_id], true)
end
def destroy_sync
render json: Carto::DoSyncService.new(@user).remove_sync!(params[:subscription_id])
end
private
def load_user

@ -615,6 +615,10 @@ CartoDB::Application.routes.draw do
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
get 'subscriptions/:subscription_id/sync' => 'data_observatory#sync_info', as: :api_v4_do_subscription_sync_info
post 'subscriptions/:subscription_id/sync' => 'data_observatory#create_sync', as: :api_v4_do_subscription_create_sync
delete 'subscriptions/:subscription_id/sync' => 'data_observatory#destroy_sync', as: :api_v4_do_subscription_destroy_sync
end
# Federated Tables

@ -549,6 +549,24 @@ describe Carto::Api::Public::DataObservatoryController do
end
end
describe 'sync_info' do
before(:each) do
@doss = mock
Carto::DoSyncService.stubs(:new).returns(@doss)
@doss.stubs(:sync).returns({sync_status: 'unsynced'})
# @doss.stubs(:create_sync!).returns({sync_status: 'syncing'})
end
# FIXME: proper tests
it 'returns 200 if the subscription_id is valid' do
@url_helper = 'api_v4_do_subscription_sync_info_url'
get_json endpoint_url(api_key: @master, subscription_id: 'wrong'), @headers do |response|
expect(response.status).to eq(200)
expect(response.body).to eq(sync_status: 'unsynced')
end
end
end
def populate_do_metadata
with_do_connection() do |connection|
queries = %{

Loading…
Cancel
Save