Class: Readiness::SupportSuperFormProcessor::GlobalIRSMTrialsExtension

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

Overview

Defines the class GlobalIRSMTrialsExtension 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



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 203

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 Extend an existing Self-managed trial.
    </p>
    <p>
      The information for this is as follows:
    </p>
    <ul>
      <li>Contact's name: #{contact_name}</li>
      <li>
        Contact's email: #{contact_email}
        <a href="https://www.zuora.com/platform/apps/search?searchTerm=#{contact_email}" target='_blank'>(Zuora Search)</a>
        <a href="https://customers.gitlab.com/admin/customer?model_name=customer&query=#{contact_email}" target='_blank'>(Portal Search)</a>
      </li>
      <li>Company: #{company}</li>
      <li>Current license: <a href='#{license_link}' target='_blank'>#{license_link}</a></li>
      <li>Desired expiration date: #{extension_date}</li>
      <li>User count: #{current}</li>
      <li>Plan: #{plan}</li>
      <li>Reason for extension: #{reason}</li>
    </ul>
    <p>
      <b>
        Verify the provided proof of approval of the extension before proceeding
      </b>
    </p>
    <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



139
140
141
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 139

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

.contact_emailObject

Sets the global variable contact_email

Author:

  • Jason Colyer

Since:

  • 1.0.42



130
131
132
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 130

def self.contact_email
  @contact_email ||= ENV.fetch('CONTACT_EMAIL')
end

.contact_nameObject

Sets the global variable contact_name

Author:

  • Jason Colyer

Since:

  • 1.0.42



121
122
123
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 121

def self.contact_name
  @contact_name ||= ENV.fetch('CONTACT_NAME')
end

.contextObject

Sets the global variable context

Author:

  • Jason Colyer

Since:

  • 1.0.42



112
113
114
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 112

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

.currentObject

Sets the global variable current

Author:

  • Jason Colyer

Since:

  • 1.0.42



157
158
159
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 157

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

.extension_dateObject

Sets the global variable extension_date

Author:

  • Jason Colyer

Since:

  • 1.0.42



175
176
177
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 175

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

Sets the global variable license_link

Author:

  • Jason Colyer

Since:

  • 1.0.42



148
149
150
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 148

def self.license_link
  @license_link ||= ENV.fetch('CDOT_LICENSE')
end

.planObject

Sets the global variable plan

Author:

  • Jason Colyer

Since:

  • 1.0.42



166
167
168
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 166

def self.plan
  @plan ||= ENV.fetch('SM_PLAN')
end

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

Process a Global Internal Request Self-Managed Trial Extension 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
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.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
  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 - Extend an existing trial'
  ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_sm_trial lnr_sm_trial_extension]
  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_extend_sm_trial' },
    { 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

.reasonObject

Sets the global variable reason

Author:

  • Jason Colyer

Since:

  • 1.0.42



193
194
195
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 193

def self.reason
  @reason ||= ENV.fetch('EXTENSION_REASON')
end

.request_priorityObject

Sets the global variable request_priority

Author:

  • Jason Colyer

Since:

  • 1.0.42



103
104
105
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 103

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

.requesterObject

Sets the global variable requester

Author:

  • Jason Colyer

Since:

  • 1.0.42



76
77
78
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 76

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



94
95
96
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 94

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



184
185
186
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 184

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

.zd_userObject

Sets the global variable zd_user

Author:

  • Jason Colyer

Since:

  • 1.0.42



85
86
87
# File 'lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb', line 85

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