new tags endpoint in UsersController

pull/14645/head
Gonzalo Riestra 6 years ago
parent 6fc479f076
commit 64aab83d3e

@ -14,6 +14,7 @@ module Carto
include FrontendConfigHelper
include AccountTypeHelper
include AvatarHelper
include Carto::ControllerHelper
UPDATE_ME_FIELDS = [
:name, :last_name, :website, :description, :location, :twitter_username,
@ -31,6 +32,8 @@ module Carto
skip_before_action :api_authorization_required, only: [:me, :me_public, :get_authenticated_users]
skip_before_action :check_user_state, only: [:me, :delete_me]
rescue_from StandardError, with: :rescue_from_standard_error
def show
render json: Carto::Api::UserPresenter.new(uri_user).data
end
@ -138,6 +141,14 @@ module Carto
render_auth_users_data(session_user, referer, subdomain, referer_organization_username)
end
def tags
query_builder = Carto::TagQueryBuilder.new.with_user(current_viewer)
result = query_builder.build
tags = result.map { |tag| TagPresenter.new(tag).to_poro }
render json: tags
end
private
def google_plus_iframe_src

@ -656,6 +656,8 @@ CartoDB::Application.routes.draw do
resources :multifactor_auths, only: [:create, :destroy, :show, :index], constraints: { id: /[^\/]+/ } do
post 'verify_code', on: :member
end
get 'tags' => 'users#tags', as: :api_v3_users_tags
end
scope 'v2/' do

@ -433,4 +433,23 @@ describe Carto::Api::UsersController do
end
end
end
describe 'tags' do
it 'returns 401 if there is no authenticated user' do
get_json api_v3_users_tags_url, @headers do |response|
expect(response.status).to eq(401)
end
end
it 'returns a 200 response with the current user tags' do
user = @organization.owner
FactoryGirl.create(:derived_visualization, user_id: user.id, tags: ["ETIQUETA"])
expected_result = { tag: "ETIQUETA", maps: 1, datasets: 0 }.with_indifferent_access
get_json api_v3_users_tags_url(user_domain: user.username, api_key: user.api_key), @headers do |response|
expect(response.status).to eq(200)
expect(response.body).to eq [expected_result]
end
end
end
end

Loading…
Cancel
Save