class GoodData::MandatoryUserFilter
Public Class Methods
Source
# File lib/gooddata/models/user_filters/mandatory_user_filter.rb, line 12 def [](id, options = { client: GoodData.connection, project: GoodData.project }) if id == :all all(options) else super end end
Calls superclass method
Source
# File lib/gooddata/models/user_filters/mandatory_user_filter.rb, line 20 def all(options = { client: GoodData.connection, project: GoodData.project }) c = client(options) project = options[:project] filters = query('userFilter', nil, options) count = 1_000 offset = 0 user_lookup = {} loop do result = c.get("/gdc/md/#{project.pid}/userfilters?count=#{count}&offset=#{offset}") result['userFilters']['items'].each do |item| item['userFilters'].each do |f| user_lookup[f] = user_lookup[f] ? Array(user_lookup[f]).concat([item['user']]) : item['user'] end end break if result['userFilters']['length'] < offset offset += count end mufs = filters.map do |filter_data| payload = { 'expression' => filter_data['userFilter']['content']['expression'], 'related' => user_lookup[filter_data['userFilter']['meta']['uri']], 'level' => :user, 'type' => :filter, 'uri' => filter_data['userFilter']['meta']['uri'] } c.create(GoodData::MandatoryUserFilter, payload, project: project) end mufs.enum_for end
Source
# File lib/gooddata/models/user_filters/mandatory_user_filter.rb, line 50 def count(options = { client: GoodData.connection, project: GoodData.project }) c = client(options) project = options[:project] c.get(project.md['query'] + '/userfilters/')['query']['entries'].count end
Public Instance Methods
Source
# File lib/gooddata/models/user_filters/mandatory_user_filter.rb, line 60 def save data = { 'userFilter' => { 'content' => { 'expression' => expression }, 'meta' => { 'category' => 'userFilter', 'title' => related_uri } } } res = client.post(project.md['obj'], data) @json[:uri] = res['uri'] end
Creates or updates the mandatory user filter on the server
@return [GoodData::MandatoryUserFilter]