Class: Readiness::SupportSuperFormProcessor::USGovIRSMSubscriptionsNFR

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

Overview

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



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 166

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 Self-managed NFR license request.
    </p>
    <p>
      The information for this is as follows:
    </p>
    <ul>
      <li>Contact's name: #{contact_name}</li>
      <li>Contact's email: #{contact_email}</li>
      <li>Contact's company: #{company}</li>
      <li>License end date: #{license_end_date}</li>
      <li>User count: #{current}</li>
      <li>Plan: #{plan}</li>
      <li>Trial: Yes</li>
      <li>GitLab Version: #{version}</li>
      <li>#{Readiness::SupportSuperFormProcessor::Shared.()}</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



111
112
113
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 111

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

.contact_emailObject

Sets the global variable contact_email

Author:

  • Jason Colyer

Since:

  • 1.0.42



102
103
104
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 102

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



93
94
95
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 93

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

.contextObject

Sets the global variable context

Author:

  • Jason Colyer

Since:

  • 1.0.42



84
85
86
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 84

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

.currentObject

Sets the global variable current

Author:

  • Jason Colyer

Since:

  • 1.0.42



129
130
131
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 129

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

.license_end_dateObject

Sets the global variable license_end_date

Author:

  • Jason Colyer

Since:

  • 1.0.42



120
121
122
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 120

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

.planObject

Sets the global variable plan

Author:

  • Jason Colyer

Since:

  • 1.0.42



138
139
140
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 138

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

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

Process a US Government Internal Request Self-Managed Subscriptions NFR 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
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.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)
  @license_issue_form = Readiness::Zendesk::TicketForms.find_by_name(@zendesk_client, 'License Issue', @ticket_forms)
  @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)
  requester
  zd_user
  unless zd_user.tags.include? 'partner_support_agent'
    Readiness::SupportSuperFormProcessor::Shared.not_partner_support_member(requester_email)
  end
  if current.to_i > 25 || Date.parse(license_end_date) > (Date.today + 1.years)
    Readiness::SupportSuperFormProcessor::Shared.invalid_nfr_request(requester_email)
  end
  ticket = Readiness::Zendesk::Tickets.new
  ticket.requester_id = zd_user.id
  ticket.submitter_id = zd_user.id
  ticket.comment = { html_body: body }
  ticket.subject = 'Internal Request - SM - NFR license request'
  ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_sm_license lnr_sm_nfr]
  ticket.priority = 'normal'
  ticket.status = 'new'
  ticket.ticket_form_id = @license_issue_form.id
  ticket.custom_fields = [
    { id: @ir_category_field.id, value: 'ir_sm_nfr' },
    { id: @ir_submitter_field.id,  value: zd_user.email }
  ]
  create = Readiness::Zendesk::Tickets.create!(@zendesk_client, ticket)
  puts "Ticket created: #{create.id}"
end

.requesterObject

Sets the global variable requester

Author:

  • Jason Colyer

Since:

  • 1.0.42



57
58
59
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 57

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



75
76
77
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 75

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

.sfdc_accountObject

Sets the global variable sfdc_account

Author:

  • Jason Colyer

Since:

  • 1.0.42



147
148
149
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 147

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

.versionObject

Sets the global variable version

Author:

  • Jason Colyer

Since:

  • 1.0.42



156
157
158
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 156

def self.version
  @version ||= ENV.fetch('SM_VERSION')
end

.zd_userObject

Sets the global variable zd_user

Author:

  • Jason Colyer

Since:

  • 1.0.42



66
67
68
# File 'lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb', line 66

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