class Gitlab::Triage::Resource::Base
Constants
- CONFIDENTIAL_TEXT
Attributes
parent[R]
resource[R]
Public Class Methods
define_field(name, &block)
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 13 def self.define_field(name, &block) define_method(name) do if redact_confidential_attributes? CONFIDENTIAL_TEXT else instance_eval(&block) end end end
new( resource, parent: nil, network: nil, redact_confidentials: true)
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 23 def initialize( resource, parent: nil, network: nil, redact_confidentials: true) @resource = resource @parent = parent @network = network @redact_confidentials = redact_confidentials end
Protected Instance Methods
network()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 38 def network parent&.network || @network end
redact_confidential_attributes?()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 33 def redact_confidential_attributes? parent&.redact_confidential_attributes? || (@redact_confidentials && resource[:confidential]) end
Private Instance Methods
build_url(params: {}, options: {})
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 75 def build_url(params: {}, options: {}) UrlBuilders::UrlBuilder.new( url_opts .merge(options) .merge(params: { per_page: 100 }.merge(params)) ).build end
expand_resource!(params: {})
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 44 def expand_resource!(params: {}) resource.merge!( network.query_api_cached(resource_url(params: params)).first) end
resource_id()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 61 def resource_id resource[:iid] end
resource_url(params: {}, sub_resource_type: nil)
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 65 def resource_url(params: {}, sub_resource_type: nil) build_url( params: params, options: { resource_id: resource_id, sub_resource_type: sub_resource_type } ) end
source()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 92 def source if resource[:project_id] 'projects' elsif resource[:group_id] 'groups' end end
source_resource()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 49 def source_resource @source_resource ||= network.query_api_cached(source_url).first end
source_url()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 53 def source_url build_url(options: { resource_type: nil }) end
url(params = {})
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 57 def url(params = {}) build_url(params: params) end
url_opts()
click to toggle source
# File lib/gitlab/triage/resource/base.rb, line 83 def url_opts { network_options: network.options, resource_type: self.class.name.demodulize.underscore.pluralize, source: source, source_id: resource[:"#{source.singularize}_id"] } end