Class: UserAgentDetailService

Inherits:
Object
  • Object
show all
Defined in:
app/services/user_agent_detail_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(spammable:, perform_spam_check:, current_user:) ⇒ UserAgentDetailService

Returns a new instance of UserAgentDetailService.



4
5
6
7
8
# File 'app/services/user_agent_detail_service.rb', line 4

def initialize(spammable:, perform_spam_check:, current_user:)
  @spammable = spammable
  @perform_spam_check = perform_spam_check
  @current_user = current_user
end

Instance Method Details

#createObject



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/user_agent_detail_service.rb', line 10

def create
  spam_params = Gitlab::RequestContext.instance.spam_params
  if !perform_spam_check || spam_params&.user_agent.blank? || spam_params&.ip_address.blank?
    message = 'Skipped UserAgentDetail creation because necessary spam_params were not provided'
    return ServiceResponse.success(message: message)
  end

  spammable.create_user_agent_detail(
    ip_address: spam_params.ip_address,
    organization: ::Gitlab::Current::Organization.new(user: current_user).organization,
    user_agent: spam_params.user_agent
  )
end