Class: Readiness::SupportSuperFormProcessor::GlobalIROEMLicense

Inherits:
Client
  • Object
show all
Defined in:
lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb

Overview

Defines the class GlobalIRHackeroneLicense within the module Zendesk.

Author:

  • Jason Colyer

Since:

  • 1.0.42

Class Method Summary collapse

Methods inherited from Client

auth_error, bad_request_error, convert_actions, convert_conditions, convert_standard_names_to_ids, convert_ticket_form_agent_conditions, convert_ticket_form_brands, convert_ticket_form_end_user_conditions, convert_ticket_form_names_to_ids, convert_view_names_to_ids, convert_view_restrictions, covert_ticket_form_field_ids, create_package!, erb_renderer, handle_request_error, not_found_error, not_processible_error, put_into_archive, recursively_deflate_directory, timestamp_filename, to_clean_json, to_clean_json_with_key, to_hash, to_nearly_clean_json, to_nearly_clean_json_with_key, to_param_string, write_entries

Class Method Details

.bodyString

Returns the ticket body

Returns:

  • (String)

Author:

  • Jason Colyer

Since:

  • 1.0.42



192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 192

def self.body
  <<~STRING
    <p>
      Greetings
    </p>
    <p>
      Please note that this is an <b>INTERNAL</b> ticket and should <b>NEVER</b> be shared with anyone. Please do not CC, BCC, forward, or anything else that can send the information from this ticket. <b>NEVER</b> add <i>anyone</i> outside of GitLab to this ticket or communications stemming from this ticket.
    </p>
    <p>
      A request has been filed for OEM License.
    </p>
    <p>
      The information for this is as follows:
    </p>
    <ul>
      <li>Company name: #{company}</li>
      <li>#{Readiness::SupportSuperFormProcessor::Shared.sfdc_opportunity_string(opportunity)}</li>
      <li>#{Readiness::SupportSuperFormProcessor::Shared.()}</li>
      <li>Start date: #{start_date}</li>
      <li>End date: #{end_date}</li>
      <li>Current user count: #{current_count}</li>
      <li>Previous user count: #{previous_count}</li>
      <li>True-up count: #{trueup}</li>
    </ul>
    <p>
      Some additional context for this request is:
    </p>
    <pre>
      #{context}
    </pre>
  STRING
end

.companyObject

Sets the global variable company

Author:

  • Jason Colyer

Since:

  • 1.0.42



110
111
112
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 110

def self.company
  @company ||= ENV.fetch('OEM_CUSTOMER_COMPANY')
end

.contextObject

Sets the global variable context

Author:

  • Jason Colyer

Since:

  • 1.0.42



182
183
184
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 182

def self.context
  @context ||= ENV.fetch('LNR_OTHER_CONTEXT')
end

.current_countObject

Sets the global variable current_count

Author:

  • Jason Colyer

Since:

  • 1.0.42



146
147
148
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 146

def self.current_count
  @current_count ||= ENV.fetch('SEAT_COUNT')
end

.end_dateObject

Sets the global variable end_date

Author:

  • Jason Colyer

Since:

  • 1.0.42



137
138
139
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 137

def self.end_date
  @end_date ||= ENV.fetch('EXPIRATION_DATE')
end

.opportunityObject

Sets the global variable opportunity

Author:

  • Jason Colyer

Since:

  • 1.0.42



119
120
121
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 119

def self.opportunity
  @opportunity ||= ENV.fetch('SFDC_OPPORTUNITY')
end

.previous_countObject

Sets the global variable previous_count

Author:

  • Jason Colyer

Since:

  • 1.0.42



155
156
157
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 155

def self.previous_count
  @previous_count ||= ENV.fetch('PREVIOUS_COUNT')
end

.process!(gitlab_client, gitlab_admin_client, zendesk_client) ⇒ Object

Process a Global Internal Request OEM License request

Author:

  • Jason Colyer

Since:

  • 1.0.42



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 18

def self.process!(gitlab_client, gitlab_admin_client, zendesk_client)
  @gitlab_client = gitlab_client
  @gitlab_admin_client = gitlab_admin_client
  @zendesk_client = zendesk_client
  @ticket_forms = Readiness::Zendesk::TicketForms.list(@zendesk_client)
  @ticket_fields = Readiness::Zendesk::TicketFields.list(@zendesk_client)
  @lnr_form = Readiness::Zendesk::TicketForms.find_by_name(@zendesk_client, 'L&R', @ticket_forms)
  @area_of_focus_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Area of Focus', @ticket_fields)
  @ticket_stage_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Ticket Stage', @ticket_fields)
  @prfs_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Preferred Region for Support', @ticket_fields)
  @plan_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'GitLab Plan', @ticket_fields)
  @sales_name_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Sales contact name', @ticket_fields)
  @sales_email_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Sales contact email', @ticket_fields)
  @severity_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Customer Severity (maps to priority, do not change)', @ticket_fields)
  @arr_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Ticket ARR', @ticket_fields)
  @priority_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Customer Priority', @ticket_fields)
  @ir_category_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'IR Category', @ticket_fields)
  @ir_submitter_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'IR Submitter', @ticket_fields)
  @channel_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, 'Channel (Received at email)', @ticket_fields)
  search = Readiness::Zendesk::Users.find_many(@zendesk_client, [379855863520, 12816218763676])
  end_user = search.detect { |s| s.email == 'gitlab_support@example.com' }        
  requester
  zd_user
  unless zd_user.tags.include? 'oem_management_team'
    Readiness::SupportSuperFormProcessor::Shared.not_oem_member(requester_email)
  end
  ticket = Readiness::Zendesk::Tickets.new
  ticket.email_ccs = [
    { user_id: zd_user.id }
  ]
  ticket.requester_id = end_user.id
  ticket.submitter_id = end_user.id
  ticket.comment = { html_body: body }
  ticket.subject = 'Internal Request - SM - OEM License'
  ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_oem_license]
  ticket.priority = request_priority
  ticket.status = 'new'
  ticket.ticket_form_id = @lnr_form.id
  ticket.custom_fields = [
    { id: @area_of_focus_field.id, value: 'aof_lnr' },
    { id: @ticket_stage_field.id, value: 'stage-frt' },
    { id: @prfs_field.id, value: 'all_regions' },
    { id: @plan_field.id, value: 'free_plan' },
    { id: @sales_name_field.id, value: zd_user.name },
    { id: @sales_email_field.id, value: zd_user.email },
    { id: @severity_field.id, value: 'sev3' },
    { id: @arr_field.id, value: '0' },
    { id: @priority_field.id, value: 'medium' },
    { id: @ir_category_field.id, value: 'ir_oem' },
    { id: @ir_submitter_field.id, value: zd_user.email },
    { id: @channel_field.id, value: 'created_by_agent' }          
  ]
  create = Readiness::Zendesk::Tickets.create!(@zendesk_client, ticket)
  puts "Ticket created: #{create.id}"
end

.request_priorityObject

Since:

  • 1.0.42



101
102
103
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 101

def self.request_priority
  @request_priority ||= ENV.fetch('PRIORITY')
end

.requesterObject

Sets the global variable requester

Author:

  • Jason Colyer

Since:

  • 1.0.42



79
80
81
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 79

def self.requester
  @requester ||= Readiness::SupportSuperFormProcessor::Shared.gitlab_user_check(@gitlab_admin_client, requester_email)
end

.requester_emailObject

Sets the global variable requester_email

Author:

  • Jason Colyer

Since:

  • 1.0.42



97
98
99
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 97

def self.requester_email
  @requester_email ||= ENV.fetch('REQUESTER_EMAIL')
end

Sets the global variable sfdc_account_link

Author:

  • Jason Colyer

Since:

  • 1.0.42



173
174
175
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 173

def self.
  @sfdc_account_link ||= ENV.fetch('SFDC_ACCOUNT')
end

.start_dateObject

Sets the global variable start_date

Author:

  • Jason Colyer

Since:

  • 1.0.42



128
129
130
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 128

def self.start_date
  @start_date ||= ENV.fetch('START_DATE')
end

.trueupObject

Sets the global variable trueup

Author:

  • Jason Colyer

Since:

  • 1.0.42



164
165
166
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 164

def self.trueup
  @trueup ||= ENV.fetch('TRUEUP_COUNT')
end

.zd_userObject

Sets the global variable zd_user

Author:

  • Jason Colyer

Since:

  • 1.0.42



88
89
90
# File 'lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb', line 88

def self.zd_user
  @zd_user ||= Readiness::SupportSuperFormProcessor::Shared.zendesk_user_check(@zendesk_client, requester_email)
end