From 76f3f4e13a05ecad489db4098ddc6b7382e1e935 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Wed, 17 May 2023 09:34:47 -0400 Subject: [PATCH 01/68] Twilio Accordion HTML/CSS --- app/views/casa_org/edit.html.erb | 42 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/app/views/casa_org/edit.html.erb b/app/views/casa_org/edit.html.erb index 1b680abd5e..7d54c2b870 100644 --- a/app/views/casa_org/edit.html.erb +++ b/app/views/casa_org/edit.html.erb @@ -32,28 +32,38 @@ <%= form.label :court_report_template, "Court report template" %> <%= form.file_field :court_report_template, class: "form-control" %> -
- <%= form.label :twilio_phone_number, "Twilio Phone Number" %> - <%= form.text_field :twilio_phone_number, class: "form-control" %> -
-
- <%= form.label :twilio_account_sid, "Twilio Account SID" %> - <%= form.text_field :twilio_account_sid, class: "form-control" %> -
-
- <%= form.label :twilio_api_key_sid, "Twilio API Key SID" %> - <%= form.text_field :twilio_api_key_sid, class: "form-control" %> -
-
- <%= form.label :twilio_api_key_secret, "Twilio API Key Secret" %> - <%= form.text_field :twilio_api_key_secret, class: "form-control" %> -

Organization Features

<%= form.check_box :show_driving_reimbursement, class: 'form-check-input' %> <%= form.label :show_driving_reimbursement, "Show driving reimbursement", class: 'form-check-label mb-2' %>
+
+
+ + +
+
+
+
+ <%= form.label :twilio_phone_number, "Twilio Phone Number" %> + <%= form.text_field :twilio_phone_number, class: "form-control" %> +
+
+ <%= form.label :twilio_account_sid, "Twilio Account SID" %> + <%= form.text_field :twilio_account_sid, class: "form-control" %> +
+
+ <%= form.label :twilio_api_key_sid, "Twilio API Key SID" %> + <%= form.text_field :twilio_api_key_sid, class: "form-control" %> +
+
+ <%= form.label :twilio_api_key_secret, "Twilio API Key Secret" %> + <%= form.text_field :twilio_api_key_secret, class: "form-control" %> +
+
+
+
<%= button_tag( type: "submit", From 8a6371709deef30d306af762c6b76d754668f3ed Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Wed, 17 May 2023 09:39:44 -0400 Subject: [PATCH 02/68] add twilio_enabled boolean to casa_orgs table --- app/models/casa_org.rb | 1 + db/migrate/20230517133521_add_twilio_enabled_to_casa_orgs.rb | 5 +++++ db/schema.rb | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20230517133521_add_twilio_enabled_to_casa_orgs.rb diff --git a/app/models/casa_org.rb b/app/models/casa_org.rb index 1d4ff9c9f9..be6275302e 100644 --- a/app/models/casa_org.rb +++ b/app/models/casa_org.rb @@ -127,6 +127,7 @@ def normalize_phone_number # twilio_account_sid :string # twilio_api_key_secret :string # twilio_api_key_sid :string +# twilio_enabled :boolean default(FALSE) # twilio_phone_number :string # created_at :datetime not null # updated_at :datetime not null diff --git a/db/migrate/20230517133521_add_twilio_enabled_to_casa_orgs.rb b/db/migrate/20230517133521_add_twilio_enabled_to_casa_orgs.rb new file mode 100644 index 0000000000..dcf9c26262 --- /dev/null +++ b/db/migrate/20230517133521_add_twilio_enabled_to_casa_orgs.rb @@ -0,0 +1,5 @@ +class AddTwilioEnabledToCasaOrgs < ActiveRecord::Migration[7.0] + def change + add_column :casa_orgs, :twilio_enabled, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 8ccc79b8c1..f6f1af37eb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_04_20_212437) do +ActiveRecord::Schema[7.0].define(version: 2023_05_17_133521) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -140,6 +140,7 @@ t.string "twilio_account_sid" t.string "twilio_api_key_sid" t.string "twilio_api_key_secret" + t.boolean "twilio_enabled", default: false t.index ["slug"], name: "index_casa_orgs_on_slug", unique: true end From bdb406a3c636a7ed933d676d8368caa26846b768 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Wed, 17 May 2023 13:40:34 -0400 Subject: [PATCH 03/68] WIP JS file --- app/javascript/application.js | 1 + app/javascript/src/casa_org.js | 13 +++++++++ app/views/casa_org/edit.html.erb | 46 ++++++++++++++++---------------- 3 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 app/javascript/src/casa_org.js diff --git a/app/javascript/application.js b/app/javascript/application.js index 178513b4c7..031cda9217 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -33,3 +33,4 @@ require('./src/select') require('./src/sidebar') require('./src/tooltip') require('./src/session_timeout_poller.js') +require('./src/casa_org') diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js new file mode 100644 index 0000000000..9364bb9bb9 --- /dev/null +++ b/app/javascript/src/casa_org.js @@ -0,0 +1,13 @@ +//class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" +$('document').ready(() => { + if ($('#casa_org_twilio_enabled').is(":checked")){ + console.log("Check please") + $('#accordionTwilio').removeAttr('aria_expanded') + $('#accordionTwilio').removeClass('collapsed') + $('#collapseTwilio').addClass('show') + //$('#accordionTwilio').removeClass('collapse') + //$('#accordionTwilio').addClass('show') + }else{ + //$('#accordionTwilio').addClass('collapsed') + } +}) \ No newline at end of file diff --git a/app/views/casa_org/edit.html.erb b/app/views/casa_org/edit.html.erb index 7d54c2b870..332a326bfb 100644 --- a/app/views/casa_org/edit.html.erb +++ b/app/views/casa_org/edit.html.erb @@ -38,32 +38,32 @@ <%= form.check_box :show_driving_reimbursement, class: 'form-check-input' %> <%= form.label :show_driving_reimbursement, "Show driving reimbursement", class: 'form-check-label mb-2' %>
-
-
- - -
-
-
-
- <%= form.label :twilio_phone_number, "Twilio Phone Number" %> - <%= form.text_field :twilio_phone_number, class: "form-control" %> -
-
- <%= form.label :twilio_account_sid, "Twilio Account SID" %> - <%= form.text_field :twilio_account_sid, class: "form-control" %> -
-
- <%= form.label :twilio_api_key_sid, "Twilio API Key SID" %> - <%= form.text_field :twilio_api_key_sid, class: "form-control" %> -
-
- <%= form.label :twilio_api_key_secret, "Twilio API Key Secret" %> - <%= form.text_field :twilio_api_key_secret, class: "form-control" %> +
+
+ <%= form.check_box :twilio_enabled, class: 'form-check-input'%> + <%= form.label :twilio_enabled, "Enable Twilio", class: 'form-check-label mb-2' %> +
+
+
+
+ <%= form.label :twilio_phone_number, "Twilio Phone Number" %> + <%= form.text_field :twilio_phone_number, class: "form-control" %> +
+
+ <%= form.label :twilio_account_sid, "Twilio Account SID" %> + <%= form.text_field :twilio_account_sid, class: "form-control" %> +
+
+ <%= form.label :twilio_api_key_sid, "Twilio API Key SID" %> + <%= form.text_field :twilio_api_key_sid, class: "form-control" %> +
+
+ <%= form.label :twilio_api_key_secret, "Twilio API Key Secret" %> + <%= form.text_field :twilio_api_key_secret, class: "form-control" %> +
-
<%= button_tag( type: "submit", From fd528a7f041c639edc3af31180986a409b3edac2 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Wed, 17 May 2023 14:16:55 -0400 Subject: [PATCH 04/68] WIP frontend --- app/controllers/casa_org_controller.rb | 3 ++- app/javascript/src/casa_org.js | 14 +++++++++++--- app/views/casa_org/edit.html.erb | 4 ++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/controllers/casa_org_controller.rb b/app/controllers/casa_org_controller.rb index 87e3a4f8db..3a5d3c395f 100644 --- a/app/controllers/casa_org_controller.rb +++ b/app/controllers/casa_org_controller.rb @@ -49,7 +49,8 @@ def casa_org_update_params :twilio_account_sid, :twilio_phone_number, :twilio_api_key_sid, - :twilio_api_key_secret + :twilio_api_key_secret, + :twilio_enabled ) end diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 9364bb9bb9..48c73c20f2 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -1,13 +1,21 @@ //class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" $('document').ready(() => { - if ($('#casa_org_twilio_enabled').is(":checked")){ + //class='enable_twilio' class='form-check-input' data - bs - toggle="collapse" data - bs - target="#collapseTwilio" aria - expanded="true" + //$('.accordionTwilio').addClass("enable_twilio") + $('.accordionTwilio').attr('data-bs-toggle', "collapse") + $('.accordionTwilio').attr('data-bs-target', "#collapseTwilio") + $('.accordionTwilio').attr('aria-expanded', "true") + console.log("Accordion Twilio", $('.accordionTwilio').val()) + if ($('.accordionTwilio').is(":checked")){ console.log("Check please") - $('#accordionTwilio').removeAttr('aria_expanded') - $('#accordionTwilio').removeClass('collapsed') + //$('.accordionTwilio').val('1') + $('.accordionTwilio').removeAttr('aria_expanded') + $('.accordionTwilio').removeClass('collapsed') $('#collapseTwilio').addClass('show') //$('#accordionTwilio').removeClass('collapse') //$('#accordionTwilio').addClass('show') }else{ + //$('#accordionTwilio').val('0') //$('#accordionTwilio').addClass('collapsed') } }) \ No newline at end of file diff --git a/app/views/casa_org/edit.html.erb b/app/views/casa_org/edit.html.erb index 332a326bfb..65b94398c8 100644 --- a/app/views/casa_org/edit.html.erb +++ b/app/views/casa_org/edit.html.erb @@ -38,9 +38,9 @@ <%= form.check_box :show_driving_reimbursement, class: 'form-check-input' %> <%= form.label :show_driving_reimbursement, "Show driving reimbursement", class: 'form-check-label mb-2' %>
-
+
- <%= form.check_box :twilio_enabled, class: 'form-check-input'%> + <%= form.check_box :twilio_enabled, class: 'form-check-input accordionTwilio' %> <%= form.label :twilio_enabled, "Enable Twilio", class: 'form-check-label mb-2' %>
From 878952ec6336127ab323928d797f7926ccab80f9 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Wed, 17 May 2023 14:48:29 -0400 Subject: [PATCH 05/68] WIP, next step working with persisted data --- app/javascript/src/casa_org.js | 29 ++++++++++++++++++++++++++--- app/views/casa_org/edit.html.erb | 2 +- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 48c73c20f2..0802eb8716 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -1,4 +1,25 @@ //class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" + +const TWILIO_PHONE_NUMBER = "#casa_org_twilio_phone_number" + +function hello(){ + console.log("hello") + if ($('.accordionTwilio').is(":checked")) { + $("#casa_org_twilio_phone_number").attr("required", "true") + $("#casa_org_twilio_account_sid").attr("required", "true") + $("#casa_org_twilio_api_key_sid").attr("required", "true") + $("#casa_org_twilio_api_key_secret").attr("required", "true") + }else{ + $("#casa_org_twilio_phone_number").removeAttr("required", "false") + $("#casa_org_twilio_phone_number").attr("value", "") + $("#casa_org_twilio_account_sid").removeAttr("required", "false") + $("#casa_org_twilio_account_sid").attr("value", "") + $("#casa_org_twilio_api_key_sid").removeAttr("required", "false") + $("#casa_org_twilio_api_key_sid").attr("value", "") + $("#casa_org_twilio_api_key_secret").removeAttr("required", "false") + $("#casa_org_twilio_api_key_secret").attr("value", "") + } +} $('document').ready(() => { //class='enable_twilio' class='form-check-input' data - bs - toggle="collapse" data - bs - target="#collapseTwilio" aria - expanded="true" //$('.accordionTwilio').addClass("enable_twilio") @@ -12,10 +33,12 @@ $('document').ready(() => { $('.accordionTwilio').removeAttr('aria_expanded') $('.accordionTwilio').removeClass('collapsed') $('#collapseTwilio').addClass('show') + //$('#accordionTwilio').removeClass('collapse') //$('#accordionTwilio').addClass('show') - }else{ - //$('#accordionTwilio').val('0') - //$('#accordionTwilio').addClass('collapsed') } + ($('.accordionTwilio').on('click', hello)) + + + }) \ No newline at end of file diff --git a/app/views/casa_org/edit.html.erb b/app/views/casa_org/edit.html.erb index 65b94398c8..12f72abcc0 100644 --- a/app/views/casa_org/edit.html.erb +++ b/app/views/casa_org/edit.html.erb @@ -47,7 +47,7 @@
<%= form.label :twilio_phone_number, "Twilio Phone Number" %> - <%= form.text_field :twilio_phone_number, class: "form-control" %> + <%= form.text_field :twilio_phone_number, class: "form-control", autocomplete: :on %>
<%= form.label :twilio_account_sid, "Twilio Account SID" %> From 81a1ee4dc16bcf5e503a5167734628977a6c4c46 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Fri, 19 May 2023 12:04:57 -0400 Subject: [PATCH 06/68] form works? --- app/javascript/src/casa_org.js | 30 ++++++++++++++++++------------ app/views/casa_org/edit.html.erb | 6 +++--- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 0802eb8716..6aec266637 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -5,19 +5,25 @@ const TWILIO_PHONE_NUMBER = "#casa_org_twilio_phone_number" function hello(){ console.log("hello") if ($('.accordionTwilio').is(":checked")) { - $("#casa_org_twilio_phone_number").attr("required", "true") - $("#casa_org_twilio_account_sid").attr("required", "true") - $("#casa_org_twilio_api_key_sid").attr("required", "true") - $("#casa_org_twilio_api_key_secret").attr("required", "true") + console.log("checked") + $("#casa_org_twilio_phone_number").attr("required", true) + $("#casa_org_twilio_phone_number").removeAttr("disabled") + $("#casa_org_twilio_account_sid").attr("required", true) + $("#casa_org_twilio_account_sid").removeAttr("disabled") + $("#casa_org_twilio_api_key_sid").attr("required", true) + $("#casa_org_twilio_api_key_sid").removeAttr("disabled") + $("#casa_org_twilio_api_key_secret").attr("required", true) + $("#casa_org_twilio_api_key_secret").removeAttr("disabled") }else{ - $("#casa_org_twilio_phone_number").removeAttr("required", "false") - $("#casa_org_twilio_phone_number").attr("value", "") - $("#casa_org_twilio_account_sid").removeAttr("required", "false") - $("#casa_org_twilio_account_sid").attr("value", "") - $("#casa_org_twilio_api_key_sid").removeAttr("required", "false") - $("#casa_org_twilio_api_key_sid").attr("value", "") - $("#casa_org_twilio_api_key_secret").removeAttr("required", "false") - $("#casa_org_twilio_api_key_secret").attr("value", "") + console.log("unchecked") + $("#casa_org_twilio_phone_number").removeAttr("required", false) + $("#casa_org_twilio_phone_number").attr("disabled", true) + $("#casa_org_twilio_account_sid").removeAttr("required", false) + $("#casa_org_twilio_account_sid").attr("disabled", true) + $("#casa_org_twilio_api_key_sid").removeAttr("required", false) + $("#casa_org_twilio_api_key_sid").attr("disabled", true) + $("#casa_org_twilio_api_key_secret").removeAttr("required", false) + $("#casa_org_twilio_api_key_secret").attr("disabled", true) } } $('document').ready(() => { diff --git a/app/views/casa_org/edit.html.erb b/app/views/casa_org/edit.html.erb index 12f72abcc0..fcc59a3559 100644 --- a/app/views/casa_org/edit.html.erb +++ b/app/views/casa_org/edit.html.erb @@ -51,15 +51,15 @@
<%= form.label :twilio_account_sid, "Twilio Account SID" %> - <%= form.text_field :twilio_account_sid, class: "form-control" %> + <%= form.text_field :twilio_account_sid, class: "form-control", autocomplete: :on %>
<%= form.label :twilio_api_key_sid, "Twilio API Key SID" %> - <%= form.text_field :twilio_api_key_sid, class: "form-control" %> + <%= form.text_field :twilio_api_key_sid, class: "form-control", autocomplete: :on %>
<%= form.label :twilio_api_key_secret, "Twilio API Key Secret" %> - <%= form.text_field :twilio_api_key_secret, class: "form-control" %> + <%= form.text_field :twilio_api_key_secret, class: "form-control", autocomplete: :on %>
From a7c423d46105c99be9a97c7f7b3201eb98e42a5e Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Fri, 19 May 2023 12:10:25 -0400 Subject: [PATCH 07/68] adding twilio_enabled bool to CasaOrg model#validate_twilio_credentials --- app/models/casa_org.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/casa_org.rb b/app/models/casa_org.rb index be6275302e..2fc8e197a1 100644 --- a/app/models/casa_org.rb +++ b/app/models/casa_org.rb @@ -8,7 +8,7 @@ class CasaOrg < ApplicationRecord validates :name, presence: true, uniqueness: true validates_with CasaOrgValidator - validate :validate_twilio_credentials, if: -> { twilio_account_sid.present? || twilio_api_key_sid.present? || twilio_api_key_secret.present? }, on: :update + validate :validate_twilio_credentials, if: -> { twilio_enabled || twilio_account_sid.present? || twilio_api_key_sid.present? || twilio_api_key_secret.present? }, on: :update has_many :users, dependent: :destroy has_many :casa_cases, dependent: :destroy From 770ae542d4c18e50bb1961c382f876f170cf2323 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Mon, 22 May 2023 10:18:15 -0400 Subject: [PATCH 08/68] twilio checks, code comments, twilio flash notices --- app/controllers/application_controller.rb | 31 +++++++++++-------- app/controllers/casa_admins_controller.rb | 2 +- app/controllers/supervisors_controller.rb | 2 +- app/controllers/users/passwords_controller.rb | 18 ++++++----- app/controllers/volunteers_controller.rb | 28 ++++++++++------- app/notifications/delivery_methods/sms.rb | 10 ++++-- .../court_report_due_sms_reminder_service.rb | 2 +- .../no_contact_made_sms_reminder_service.rb | 2 +- app/services/sms_reminder_service.rb | 2 +- lib/tasks/case_contact_types_reminder.rb | 6 ++-- 10 files changed, 61 insertions(+), 42 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9049eda502..51a8dd2156 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -56,19 +56,24 @@ def deliver_sms_to(resource, body_msg) to = resource.phone_number from = current_user.casa_org.twilio_phone_number - twilio = TwilioService.new(api_key, api_secret, acc_sid) - req_params = { - From: from, - Body: body, - To: to - } - - begin - twilio_res = twilio.send_sms(req_params) - twilio_res.error_code.nil? ? "sent" : "error" - rescue Twilio::REST::RestError - "error" - end + twilio_enabled = current_user.casa_org.twilio_enabled? + if twilio_enabled + twilio = TwilioService.new(api_key, api_secret, acc_sid) + req_params = { + From: from, + Body: body, + To: to + } + + begin + twilio_res = twilio.send_sms(req_params) + twilio_res.error_code.nil? ? "sent" : "error" + rescue Twilio::REST::RestError + "error" + end + else + flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" + end end def sms_acct_creation_notice(resource_name, sms_status) diff --git a/app/controllers/casa_admins_controller.rb b/app/controllers/casa_admins_controller.rb index 515f8fed9b..df77a39434 100644 --- a/app/controllers/casa_admins_controller.rb +++ b/app/controllers/casa_admins_controller.rb @@ -51,7 +51,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = handle_short_url([invitation_url, base_domain]) body_msg = account_activation_msg("admin", hash_of_short_urls) - sms_status = deliver_sms_to casa_admin, body_msg + sms_status = deliver_sms_to casa_admin, body_msg###checks for twilio_enabled### end respond_to do |format| format.html { redirect_to casa_admins_path, notice: sms_acct_creation_notice("admin", sms_status) } diff --git a/app/controllers/supervisors_controller.rb b/app/controllers/supervisors_controller.rb index dc7327c316..aebe1a28a1 100644 --- a/app/controllers/supervisors_controller.rb +++ b/app/controllers/supervisors_controller.rb @@ -31,7 +31,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @supervisor.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("supervisor", hash_of_short_urls) - sms_status = deliver_sms_to @supervisor, body_msg + sms_status = deliver_sms_to @supervisor, body_msg###checks for twilio_enabled### redirect_to edit_supervisor_path(@supervisor), notice: sms_acct_creation_notice("supervisor", sms_status) else render new_supervisor_path diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 93f1fd65b2..df1220a5e3 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -35,13 +35,17 @@ def send_password_reset_sms @reset_token ||= @resource.generate_password_reset_token create_short_url - twilio_service = TwilioService.new(@resource.casa_org.twilio_api_key_sid, @resource.casa_org.twilio_api_key_secret, @resource.casa_org.twilio_account_sid) - sms_params = { - From: @resource.casa_org.twilio_phone_number, - Body: password_reset_msg(@resource.display_name, @short_io_service.short_url), - To: @phone_number - } - twilio_service.send_sms(sms_params) + if @resource.casa_org.twilio_enabled? + twilio_service = TwilioService.new(@resource.casa_org.twilio_api_key_sid, @resource.casa_org.twilio_api_key_secret, @resource.casa_org.twilio_account_sid) + sms_params = { + From: @resource.casa_org.twilio_phone_number, + Body: password_reset_msg(@resource.display_name, @short_io_service.short_url), + To: @phone_number + } + twilio_service.send_sms(sms_params) + else + flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" + end end def valid_params?(email, phone_number) diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 84f1e6e171..73a1e129b2 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -37,7 +37,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @volunteer.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("volunteer", hash_of_short_urls) - sms_status = deliver_sms_to @volunteer, body_msg + sms_status = deliver_sms_to @volunteer, body_msg###checks for twilio_enabled### redirect_to edit_volunteer_path(@volunteer), notice: sms_acct_creation_notice("volunteer", sms_status) else render :new @@ -99,6 +99,7 @@ def resend_invitation def send_reactivation_alert authorize @volunteer if @volunteer.save + ###checks for twilio_enabled### send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" else @@ -162,15 +163,20 @@ def volunteers_phone_number end def send_sms_to(phone_number, body) - twilio = TwilioService.new(current_user.casa_org.twilio_api_key_sid, current_user.casa_org.twilio_api_key_secret, current_user.casa_org.twilio_account_sid) - req_params = {From: current_user.casa_org.twilio_phone_number, Body: body, To: phone_number} - twilio_res = twilio.send_sms(req_params) - - # Error handling for spec test purposes - if twilio_res.error_code.nil? - "SMS has been sent to Volunteer!" - else - "SMS was not sent to Volunteer due to an error." - end + twilio_enabled = current_user.casa_org.twilio_enabled + if twilio_enabled + twilio = TwilioService.new(current_user.casa_org.twilio_api_key_sid, current_user.casa_org.twilio_api_key_secret, current_user.casa_org.twilio_account_sid) + req_params = {From: current_user.casa_org.twilio_phone_number, Body: body, To: phone_number} + twilio_res = twilio.send_sms(req_params) + + # Error handling for spec test purposes + if twilio_res.error_code.nil? + "SMS has been sent to Volunteer!" + else + "SMS was not sent to Volunteer due to an error." + end + else + flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" + end end end diff --git a/app/notifications/delivery_methods/sms.rb b/app/notifications/delivery_methods/sms.rb index 7ed412b89b..ac93fccc6a 100644 --- a/app/notifications/delivery_methods/sms.rb +++ b/app/notifications/delivery_methods/sms.rb @@ -1,12 +1,16 @@ class DeliveryMethods::Sms < Noticed::DeliveryMethods::Base include SmsBodyHelper def deliver - if sender.casa_admin? || sender.supervisor? + if sender.casa_org.twilio_enabled? && (sender.casa_admin? || sender.supervisor?) short_io_api = ShortUrlService.new short_io_api.create_short_url(case_contact_url) shortened_url = short_io_api.short_url - twilio_api = TwilioService.new(sender.casa_org.twilio_api_key_sid, sender.casa_org.twilio_api_key_secret, sender.casa_org.twilio_account_sid) - twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) + if sender.casa_org.twilio_enabled? + twilio_api = TwilioService.new(sender.casa_org.twilio_api_key_sid, sender.casa_org.twilio_api_key_secret, sender.casa_org.twilio_account_sid) + twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) + else + flash[:notice] = "SMS notice was not sent. Twilio is not Enabled." + end end end diff --git a/app/services/court_report_due_sms_reminder_service.rb b/app/services/court_report_due_sms_reminder_service.rb index 30dcaebd56..ae6c675e58 100644 --- a/app/services/court_report_due_sms_reminder_service.rb +++ b/app/services/court_report_due_sms_reminder_service.rb @@ -8,6 +8,6 @@ module CourtReportDueSmsReminderService def court_report_reminder(user, report_due_date) short_link = create_short_link(GENERATE_CASE_COURT_REPORT_LINK) message = court_report_due_msg(report_due_date, short_link) - send_reminder(user, message) + send_reminder(user, message)###checks for twilio_enabled### end end diff --git a/app/services/no_contact_made_sms_reminder_service.rb b/app/services/no_contact_made_sms_reminder_service.rb index e167a7891e..4aae3d8c28 100644 --- a/app/services/no_contact_made_sms_reminder_service.rb +++ b/app/services/no_contact_made_sms_reminder_service.rb @@ -8,6 +8,6 @@ module NoContactMadeSmsReminderService def no_contact_made_reminder(user, contact_type) short_link = create_short_link(NEW_CASE_CONTACT_LINK) message = no_contact_made_msg(contact_type, short_link) - send_reminder(user, message) + send_reminder(user, message)###checks for twilio_enabled### end end diff --git a/app/services/sms_reminder_service.rb b/app/services/sms_reminder_service.rb index 02d828ea23..33b42d5b2e 100644 --- a/app/services/sms_reminder_service.rb +++ b/app/services/sms_reminder_service.rb @@ -3,7 +3,7 @@ module SmsReminderService BASE_URL = Rails.application.credentials[:BASE_URL] def send_reminder(user, message) - return if !user[:receive_sms_notifications] || user[:phone_number].blank? + return if !user.casa_org.twilio_enabled? || !user[:receive_sms_notifications] || user[:phone_number].blank? user_casa_org = user.casa_org twilio_service = TwilioService.new(user_casa_org.twilio_api_key_sid, user_casa_org.twilio_api_key_secret, user_casa_org.twilio_account_sid) diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index 24960959f0..5deda04140 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -37,10 +37,10 @@ def uncontacted_case_contact_types(volunteer) def send_sms_messages(volunteer, uncontacted_case_contact_type_names) volunteer_casa_org = volunteer.casa_org - if !valid_casa_twilio_creds(volunteer_casa_org) + if !valid_casa_twilio_creds(volunteer_casa_org)###checks for twilio_enabled### return end - + twilio_service = TwilioService.new(volunteer_casa_org.twilio_api_key_sid, volunteer_casa_org.twilio_api_key_secret, volunteer_casa_org.twilio_account_sid) sms_params = { From: volunteer_casa_org.twilio_phone_number, @@ -64,7 +64,7 @@ def send_sms_messages(volunteer, uncontacted_case_contact_type_names) end def valid_casa_twilio_creds(casa_org) - casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? + casa_org.twilio_enabled? && casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? end def last_reminder_within_quarter(volunteer) From 84f2adf0c1bde6d2fa2a7e50e2cdfeb2f99bda3d Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Mon, 22 May 2023 12:15:33 -0400 Subject: [PATCH 09/68] lint and casa_org factory add twilio_enabled --- app/controllers/application_controller.rb | 4 +- app/controllers/casa_admins_controller.rb | 2 +- app/controllers/supervisors_controller.rb | 2 +- app/controllers/users/passwords_controller.rb | 4 +- app/controllers/volunteers_controller.rb | 19 ++-- app/javascript/src/casa_org.js | 87 +++++++++---------- app/notifications/delivery_methods/sms.rb | 4 +- .../court_report_due_sms_reminder_service.rb | 2 +- .../no_contact_made_sms_reminder_service.rb | 2 +- lib/tasks/case_contact_types_reminder.rb | 4 +- spec/factories/casa_orgs.rb | 1 + 11 files changed, 66 insertions(+), 65 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 51a8dd2156..3cc85081e1 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -71,9 +71,9 @@ def deliver_sms_to(resource, body_msg) rescue Twilio::REST::RestError "error" end - else + else flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" - end + end end def sms_acct_creation_notice(resource_name, sms_status) diff --git a/app/controllers/casa_admins_controller.rb b/app/controllers/casa_admins_controller.rb index df77a39434..335ac2ed79 100644 --- a/app/controllers/casa_admins_controller.rb +++ b/app/controllers/casa_admins_controller.rb @@ -51,7 +51,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = handle_short_url([invitation_url, base_domain]) body_msg = account_activation_msg("admin", hash_of_short_urls) - sms_status = deliver_sms_to casa_admin, body_msg###checks for twilio_enabled### + sms_status = deliver_sms_to casa_admin, body_msg # ##checks for twilio_enabled### end respond_to do |format| format.html { redirect_to casa_admins_path, notice: sms_acct_creation_notice("admin", sms_status) } diff --git a/app/controllers/supervisors_controller.rb b/app/controllers/supervisors_controller.rb index aebe1a28a1..fbf7b42128 100644 --- a/app/controllers/supervisors_controller.rb +++ b/app/controllers/supervisors_controller.rb @@ -31,7 +31,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @supervisor.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("supervisor", hash_of_short_urls) - sms_status = deliver_sms_to @supervisor, body_msg###checks for twilio_enabled### + sms_status = deliver_sms_to @supervisor, body_msg # ##checks for twilio_enabled### redirect_to edit_supervisor_path(@supervisor), notice: sms_acct_creation_notice("supervisor", sms_status) else render new_supervisor_path diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index df1220a5e3..4f19de003a 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -43,9 +43,9 @@ def send_password_reset_sms To: @phone_number } twilio_service.send_sms(sms_params) - else + else flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" - end + end end def valid_params?(email, phone_number) diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 73a1e129b2..8499ca83ce 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -37,7 +37,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @volunteer.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("volunteer", hash_of_short_urls) - sms_status = deliver_sms_to @volunteer, body_msg###checks for twilio_enabled### + sms_status = deliver_sms_to @volunteer, body_msg # ##checks for twilio_enabled### redirect_to edit_volunteer_path(@volunteer), notice: sms_acct_creation_notice("volunteer", sms_status) else render :new @@ -99,11 +99,14 @@ def resend_invitation def send_reactivation_alert authorize @volunteer if @volunteer.save - ###checks for twilio_enabled### + # ##checks for twilio_enabled### send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") - redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - else - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed" + # ##refactor here, ntoice + if @volunteer.casa_org.twilio_enabled? + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" + else + redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed." + end end end @@ -175,8 +178,8 @@ def send_sms_to(phone_number, body) else "SMS was not sent to Volunteer due to an error." end - else - flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" - end + else + flash[:notice] = "SMS notice was not sent. Twilio Is Not Enabled" + end end end diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 6aec266637..e853bce63d 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -1,50 +1,47 @@ -//class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" +// class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" -const TWILIO_PHONE_NUMBER = "#casa_org_twilio_phone_number" +// const TWILIO_PHONE_NUMBER = '#casa_org_twilio_phone_number' -function hello(){ - console.log("hello") - if ($('.accordionTwilio').is(":checked")) { - console.log("checked") - $("#casa_org_twilio_phone_number").attr("required", true) - $("#casa_org_twilio_phone_number").removeAttr("disabled") - $("#casa_org_twilio_account_sid").attr("required", true) - $("#casa_org_twilio_account_sid").removeAttr("disabled") - $("#casa_org_twilio_api_key_sid").attr("required", true) - $("#casa_org_twilio_api_key_sid").removeAttr("disabled") - $("#casa_org_twilio_api_key_secret").attr("required", true) - $("#casa_org_twilio_api_key_secret").removeAttr("disabled") - }else{ - console.log("unchecked") - $("#casa_org_twilio_phone_number").removeAttr("required", false) - $("#casa_org_twilio_phone_number").attr("disabled", true) - $("#casa_org_twilio_account_sid").removeAttr("required", false) - $("#casa_org_twilio_account_sid").attr("disabled", true) - $("#casa_org_twilio_api_key_sid").removeAttr("required", false) - $("#casa_org_twilio_api_key_sid").attr("disabled", true) - $("#casa_org_twilio_api_key_secret").removeAttr("required", false) - $("#casa_org_twilio_api_key_secret").attr("disabled", true) - } +function hello () { + console.log('hello') + if ($('.accordionTwilio').is(':checked')) { + console.log('checked') + $('#casa_org_twilio_phone_number').attr('required', true) + $('#casa_org_twilio_phone_number').removeAttr('disabled') + $('#casa_org_twilio_account_sid').attr('required', true) + $('#casa_org_twilio_account_sid').removeAttr('disabled') + $('#casa_org_twilio_api_key_sid').attr('required', true) + $('#casa_org_twilio_api_key_sid').removeAttr('disabled') + $('#casa_org_twilio_api_key_secret').attr('required', true) + $('#casa_org_twilio_api_key_secret').removeAttr('disabled') + } else { + console.log('unchecked') + $('#casa_org_twilio_phone_number').removeAttr('required', false) + $('#casa_org_twilio_phone_number').attr('disabled', true) + $('#casa_org_twilio_account_sid').removeAttr('required', false) + $('#casa_org_twilio_account_sid').attr('disabled', true) + $('#casa_org_twilio_api_key_sid').removeAttr('required', false) + $('#casa_org_twilio_api_key_sid').attr('disabled', true) + $('#casa_org_twilio_api_key_secret').removeAttr('required', false) + $('#casa_org_twilio_api_key_secret').attr('disabled', true) + } } $('document').ready(() => { - //class='enable_twilio' class='form-check-input' data - bs - toggle="collapse" data - bs - target="#collapseTwilio" aria - expanded="true" - //$('.accordionTwilio').addClass("enable_twilio") - $('.accordionTwilio').attr('data-bs-toggle', "collapse") - $('.accordionTwilio').attr('data-bs-target', "#collapseTwilio") - $('.accordionTwilio').attr('aria-expanded', "true") - console.log("Accordion Twilio", $('.accordionTwilio').val()) - if ($('.accordionTwilio').is(":checked")){ - console.log("Check please") - //$('.accordionTwilio').val('1') - $('.accordionTwilio').removeAttr('aria_expanded') - $('.accordionTwilio').removeClass('collapsed') - $('#collapseTwilio').addClass('show') - - //$('#accordionTwilio').removeClass('collapse') - //$('#accordionTwilio').addClass('show') - } - ($('.accordionTwilio').on('click', hello)) + // class='enable_twilio' class='form-check-input' data - bs - toggle="collapse" data - bs - target="#collapseTwilio" aria - expanded="true" + // $('.accordionTwilio').addClass("enable_twilio") + $('.accordionTwilio').attr('data-bs-toggle', 'collapse') + $('.accordionTwilio').attr('data-bs-target', '#collapseTwilio') + $('.accordionTwilio').attr('aria-expanded', 'true') + console.log('Accordion Twilio', $('.accordionTwilio').val()) + if ($('.accordionTwilio').is(':checked')) { + console.log('Check please') + // $('.accordionTwilio').val('1') + $('.accordionTwilio').removeAttr('aria_expanded') + $('.accordionTwilio').removeClass('collapsed') + $('#collapseTwilio').addClass('show') - - -}) \ No newline at end of file + // $('#accordionTwilio').removeClass('collapse') + // $('#accordionTwilio').addClass('show') + } + ($('.accordionTwilio').on('click', hello)) +}) diff --git a/app/notifications/delivery_methods/sms.rb b/app/notifications/delivery_methods/sms.rb index ac93fccc6a..f98587e7e8 100644 --- a/app/notifications/delivery_methods/sms.rb +++ b/app/notifications/delivery_methods/sms.rb @@ -8,9 +8,9 @@ def deliver if sender.casa_org.twilio_enabled? twilio_api = TwilioService.new(sender.casa_org.twilio_api_key_sid, sender.casa_org.twilio_api_key_secret, sender.casa_org.twilio_account_sid) twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) - else + else flash[:notice] = "SMS notice was not sent. Twilio is not Enabled." - end + end end end diff --git a/app/services/court_report_due_sms_reminder_service.rb b/app/services/court_report_due_sms_reminder_service.rb index ae6c675e58..0dbd231bb4 100644 --- a/app/services/court_report_due_sms_reminder_service.rb +++ b/app/services/court_report_due_sms_reminder_service.rb @@ -8,6 +8,6 @@ module CourtReportDueSmsReminderService def court_report_reminder(user, report_due_date) short_link = create_short_link(GENERATE_CASE_COURT_REPORT_LINK) message = court_report_due_msg(report_due_date, short_link) - send_reminder(user, message)###checks for twilio_enabled### + send_reminder(user, message) # ##checks for twilio_enabled### end end diff --git a/app/services/no_contact_made_sms_reminder_service.rb b/app/services/no_contact_made_sms_reminder_service.rb index 4aae3d8c28..7259f7159d 100644 --- a/app/services/no_contact_made_sms_reminder_service.rb +++ b/app/services/no_contact_made_sms_reminder_service.rb @@ -8,6 +8,6 @@ module NoContactMadeSmsReminderService def no_contact_made_reminder(user, contact_type) short_link = create_short_link(NEW_CASE_CONTACT_LINK) message = no_contact_made_msg(contact_type, short_link) - send_reminder(user, message)###checks for twilio_enabled### + send_reminder(user, message) # ##checks for twilio_enabled### end end diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index 5deda04140..7d85e7728f 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -37,10 +37,10 @@ def uncontacted_case_contact_types(volunteer) def send_sms_messages(volunteer, uncontacted_case_contact_type_names) volunteer_casa_org = volunteer.casa_org - if !valid_casa_twilio_creds(volunteer_casa_org)###checks for twilio_enabled### + if !valid_casa_twilio_creds(volunteer_casa_org) # ##checks for twilio_enabled### return end - + twilio_service = TwilioService.new(volunteer_casa_org.twilio_api_key_sid, volunteer_casa_org.twilio_api_key_secret, volunteer_casa_org.twilio_account_sid) sms_params = { From: volunteer_casa_org.twilio_phone_number, diff --git a/spec/factories/casa_orgs.rb b/spec/factories/casa_orgs.rb index 4ee21d68f3..9f0d0020d6 100644 --- a/spec/factories/casa_orgs.rb +++ b/spec/factories/casa_orgs.rb @@ -8,5 +8,6 @@ twilio_api_key_secret { "open sesame" } twilio_api_key_sid { "Aladdin" } twilio_phone_number { "+15555555555" } + twilio_enabled { true } # #must add tests to take into account when this is false, currently this only gets current tests passing## end end From 06d82c98d79455b57a09d6bade918fa5053419f5 Mon Sep 17 00:00:00 2001 From: Shami Tomita Date: Tue, 23 May 2023 09:42:22 -0400 Subject: [PATCH 10/68] clean up on aisle casa_org.js --- app/javascript/src/casa_org.js | 48 ++++++++++++++++------------------ 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index e853bce63d..b413c1be50 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -6,42 +6,40 @@ function hello () { console.log('hello') if ($('.accordionTwilio').is(':checked')) { console.log('checked') - $('#casa_org_twilio_phone_number').attr('required', true) - $('#casa_org_twilio_phone_number').removeAttr('disabled') - $('#casa_org_twilio_account_sid').attr('required', true) - $('#casa_org_twilio_account_sid').removeAttr('disabled') - $('#casa_org_twilio_api_key_sid').attr('required', true) - $('#casa_org_twilio_api_key_sid').removeAttr('disabled') - $('#casa_org_twilio_api_key_secret').attr('required', true) - $('#casa_org_twilio_api_key_secret').removeAttr('disabled') + addCheckedAttr($('#casa_org_twilio_phone_number')); + addCheckedAttr($('#casa_org_twilio_account_sid')); + addCheckedAttr($('#casa_org_twilio_api_key_sid')); + addCheckedAttr($('#casa_org_twilio_api_key_secret')); } else { console.log('unchecked') - $('#casa_org_twilio_phone_number').removeAttr('required', false) - $('#casa_org_twilio_phone_number').attr('disabled', true) - $('#casa_org_twilio_account_sid').removeAttr('required', false) - $('#casa_org_twilio_account_sid').attr('disabled', true) - $('#casa_org_twilio_api_key_sid').removeAttr('required', false) - $('#casa_org_twilio_api_key_sid').attr('disabled', true) - $('#casa_org_twilio_api_key_secret').removeAttr('required', false) - $('#casa_org_twilio_api_key_secret').attr('disabled', true) + removeCheckedAttr($('#casa_org_twilio_phone_number')); + removeCheckedAttr($('#casa_org_twilio_account_sid')); + removeCheckedAttr($('#casa_org_twilio_api_key_sid')); + removeCheckedAttr($('#casa_org_twilio_api_key_secret')); } } + +function addCheckedAttr(el){ + el.attr('required', true); + el.setAttribute('aria-disabled', false); + el.removeAttr('disabled'); +} + +function removeCheckedAttr(el){ + el.removeAttr('disabled'); + el.attr('disabled', true); + el.removeAttribute('aria-disabled', true); +} + $('document').ready(() => { - // class='enable_twilio' class='form-check-input' data - bs - toggle="collapse" data - bs - target="#collapseTwilio" aria - expanded="true" - // $('.accordionTwilio').addClass("enable_twilio") $('.accordionTwilio').attr('data-bs-toggle', 'collapse') $('.accordionTwilio').attr('data-bs-target', '#collapseTwilio') - $('.accordionTwilio').attr('aria-expanded', 'true') + $('.accordionTwilio').attr('aria-expanded', 'false') console.log('Accordion Twilio', $('.accordionTwilio').val()) if ($('.accordionTwilio').is(':checked')) { - console.log('Check please') - // $('.accordionTwilio').val('1') - $('.accordionTwilio').removeAttr('aria_expanded') + $('.accordionTwilio').attr('aria_expanded') $('.accordionTwilio').removeClass('collapsed') $('#collapseTwilio').addClass('show') - - // $('#accordionTwilio').removeClass('collapse') - // $('#accordionTwilio').addClass('show') } ($('.accordionTwilio').on('click', hello)) }) From 96ef969f7afabfb0fe4b397f8a45150e1c4465ec Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 09:58:09 -0400 Subject: [PATCH 11/68] Twilio redo --- app/controllers/application_controller.rb | 53 +++++++++++-------- app/controllers/users/passwords_controller.rb | 2 +- app/controllers/volunteers_controller.rb | 27 +++++----- app/notifications/delivery_methods/sms.rb | 2 +- app/services/sms_reminder_service.rb | 4 +- app/services/twilio_service.rb | 29 +++++++--- lib/tasks/case_contact_types_reminder.rb | 6 +-- .../tasks/case_contact_types_reminder_spec.rb | 13 ++++- spec/requests/supervisors_spec.rb | 13 +++++ spec/requests/users/passwords_spec.rb | 2 +- spec/requests/volunteers_spec.rb | 25 +++++++++ ...rt_report_due_sms_reminder_service_spec.rb | 10 ++++ spec/services/twilio_service_spec.rb | 15 ++++-- spec/system/casa_org/edit_spec.rb | 1 + 14 files changed, 145 insertions(+), 57 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3cc85081e1..d204c2dba4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -49,30 +49,26 @@ def deliver_sms_to(resource, body_msg) if resource.phone_number.blank? return "blank" end - acc_sid = current_user.casa_org.twilio_account_sid - api_key = current_user.casa_org.twilio_api_key_sid - api_secret = current_user.casa_org.twilio_api_key_secret + #acc_sid = current_user.casa_org.twilio_account_sid + #api_key = current_user.casa_org.twilio_api_key_sid + #api_secret = current_user.casa_org.twilio_api_key_secret body = body_msg to = resource.phone_number from = current_user.casa_org.twilio_phone_number - - twilio_enabled = current_user.casa_org.twilio_enabled? - if twilio_enabled - twilio = TwilioService.new(api_key, api_secret, acc_sid) - req_params = { - From: from, - Body: body, - To: to - } - - begin - twilio_res = twilio.send_sms(req_params) - twilio_res.error_code.nil? ? "sent" : "error" - rescue Twilio::REST::RestError - "error" - end - else - flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" + begin + twilio = TwilioService.new(resource.casa_org) + req_params = { + From: from, + Body: body, + To: to + } + twilio_res = twilio.send_sms(req_params) + twilio_res.error_code.nil? ? "sent" : "error" + rescue TwilioService::TwilioCasaOrgError => error + @error = error + "twilio_not_enabled" + rescue Twilio::REST::RestError + "error" end end @@ -84,8 +80,11 @@ def sms_acct_creation_notice(resource_name, sms_status) return "New #{resource_name} created successfully. SMS not sent due to error." end if sms_status === "sent" - "New #{resource_name} created successfully. SMS has been sent!" + return "New #{resource_name} created successfully. SMS has been sent!" end + if sms_status === "twilio_not_enabled" + return "New #{resource_name} created successfully. SMS not sent due to #{@error}." + end end private @@ -120,4 +119,14 @@ def check_unconfirmed_email_notice(user) end notice end + + def check_twilio_enabled?(resource) + if !resource&.casa_org.twilio_enabled? + false + #is there a way to stop a parent method from continuing? + else + #is there a way to stop a parent method from continuing? + true + end + end end diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 4f19de003a..212b6ee59b 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -36,7 +36,7 @@ def send_password_reset_sms create_short_url if @resource.casa_org.twilio_enabled? - twilio_service = TwilioService.new(@resource.casa_org.twilio_api_key_sid, @resource.casa_org.twilio_api_key_secret, @resource.casa_org.twilio_account_sid) + twilio_service = TwilioService.new(@resource.casa_org) sms_params = { From: @resource.casa_org.twilio_phone_number, Body: password_reset_msg(@resource.display_name, @short_io_service.short_url), diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 8499ca83ce..c9d20ca32d 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -37,7 +37,9 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @volunteer.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("volunteer", hash_of_short_urls) + ### sms_status = deliver_sms_to @volunteer, body_msg # ##checks for twilio_enabled### + ### redirect_to edit_volunteer_path(@volunteer), notice: sms_acct_creation_notice("volunteer", sms_status) else render :new @@ -100,13 +102,13 @@ def send_reactivation_alert authorize @volunteer if @volunteer.save # ##checks for twilio_enabled### - send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") - # ##refactor here, ntoice - if @volunteer.casa_org.twilio_enabled? + begin + send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - else - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed." - end + rescue => e + error = e + redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed due to #{error}" + end end end @@ -166,20 +168,15 @@ def volunteers_phone_number end def send_sms_to(phone_number, body) - twilio_enabled = current_user.casa_org.twilio_enabled - if twilio_enabled - twilio = TwilioService.new(current_user.casa_org.twilio_api_key_sid, current_user.casa_org.twilio_api_key_secret, current_user.casa_org.twilio_account_sid) + twilio = TwilioService.new(current_user.casa_org) req_params = {From: current_user.casa_org.twilio_phone_number, Body: body, To: phone_number} twilio_res = twilio.send_sms(req_params) # Error handling for spec test purposes - if twilio_res.error_code.nil? - "SMS has been sent to Volunteer!" - else - "SMS was not sent to Volunteer due to an error." - end + if twilio_res.error_code.nil? + "SMS has been sent to Volunteer!" else - flash[:notice] = "SMS notice was not sent. Twilio Is Not Enabled" + "SMS was not sent to Volunteer due to an error." end end end diff --git a/app/notifications/delivery_methods/sms.rb b/app/notifications/delivery_methods/sms.rb index f98587e7e8..8f1d71774c 100644 --- a/app/notifications/delivery_methods/sms.rb +++ b/app/notifications/delivery_methods/sms.rb @@ -1,7 +1,7 @@ class DeliveryMethods::Sms < Noticed::DeliveryMethods::Base include SmsBodyHelper def deliver - if sender.casa_org.twilio_enabled? && (sender.casa_admin? || sender.supervisor?) + if sender.casa_admin? || sender.supervisor? short_io_api = ShortUrlService.new short_io_api.create_short_url(case_contact_url) shortened_url = short_io_api.short_url diff --git a/app/services/sms_reminder_service.rb b/app/services/sms_reminder_service.rb index 33b42d5b2e..008b786e8b 100644 --- a/app/services/sms_reminder_service.rb +++ b/app/services/sms_reminder_service.rb @@ -3,10 +3,10 @@ module SmsReminderService BASE_URL = Rails.application.credentials[:BASE_URL] def send_reminder(user, message) - return if !user.casa_org.twilio_enabled? || !user[:receive_sms_notifications] || user[:phone_number].blank? + return if !user[:receive_sms_notifications] || user[:phone_number].blank? user_casa_org = user.casa_org - twilio_service = TwilioService.new(user_casa_org.twilio_api_key_sid, user_casa_org.twilio_api_key_secret, user_casa_org.twilio_account_sid) + twilio_service = TwilioService.new(user_casa_org) sms_params = { From: user_casa_org.twilio_phone_number, Body: message, diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index b135d64b10..1939e86b1f 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -1,14 +1,28 @@ require "json" require "twilio-ruby" -class TwilioService - attr_writer :api_key, :api_secret, :acc_sid +class TwilioService #just a plain ol regular ruby class + class TwilioCasaOrgError < StandardError; end #metaprogramming, within the scope, thats where we want to define this + attr_writer :api_key, :api_secret, :acc_sid, :casa_org - def initialize(api_key, api_secret, acc_sid) - @api_key = api_key - @api_secret = api_secret - @acc_sid = acc_sid - @client = Twilio::REST::Client.new(api_key, api_secret, acc_sid) + # def new + #overwrite .new for this class, get the client, if not return nil/error + #super? + #end + + def initialize(casa_org) #api_key, api_secret, acc_sid, this is getting called during new, poro! + #this must have a casa_org passed into it! + #dont pass this line unless good to go, fail early!!! + #this error gets raised, but + raise TwilioCasaOrgError.new "Twilio not enabled for #{casa_org.name}" unless casa_org.twilio_enabled? + + @api_key = casa_org.twilio_api_key_sid + @api_secret = casa_org.twilio_api_key_secret + @acc_sid = casa_org.twilio_account_sid + + #custom error message here!!! StandardError + @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) + #failing gracefully, end # this method takes in a hash @@ -27,6 +41,7 @@ def send_sms(params) to: to ) rescue => e + debugger Rails.logger.error("send SMS failed: #{e}") end end diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index 7d85e7728f..087c80aa8c 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -40,8 +40,8 @@ def send_sms_messages(volunteer, uncontacted_case_contact_type_names) if !valid_casa_twilio_creds(volunteer_casa_org) # ##checks for twilio_enabled### return end - - twilio_service = TwilioService.new(volunteer_casa_org.twilio_api_key_sid, volunteer_casa_org.twilio_api_key_secret, volunteer_casa_org.twilio_account_sid) + debugger + twilio_service = TwilioService.new(volunteer_casa_org) sms_params = { From: volunteer_casa_org.twilio_phone_number, Body: nil, @@ -64,7 +64,7 @@ def send_sms_messages(volunteer, uncontacted_case_contact_type_names) end def valid_casa_twilio_creds(casa_org) - casa_org.twilio_enabled? && casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? + casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? end def last_reminder_within_quarter(volunteer) diff --git a/spec/lib/tasks/case_contact_types_reminder_spec.rb b/spec/lib/tasks/case_contact_types_reminder_spec.rb index 9762fc606b..f6889d3452 100644 --- a/spec/lib/tasks/case_contact_types_reminder_spec.rb +++ b/spec/lib/tasks/case_contact_types_reminder_spec.rb @@ -48,7 +48,7 @@ end context "volunteer with contacted contact types within last 60 days, sms notifications on, and no reminder in last quarter" do - it "should send not sms reminder" do + it "should not send sms reminder" do CaseContact.update_all(occurred_at: 1.months.ago) responses = CaseContactTypesReminder.new.send! expect(responses.count).to match 0 @@ -85,4 +85,15 @@ expect(responses[0][:messages][2].body).to match CaseContactTypesReminder::THIRD_MESSAGE + "https://42ni.short.gy/jzTwdF" end end + + context "volunteer with a casa_org that doesn't have Twilio enabled" do + it "should not send a sms reminder" do + pending 'Failure/Error: client.messages.list(limit: 1) WebMock::NetConnectNotAllowedError:' + + casa_org.update(twilio_enabled: false) + uncontacted_case_contact_type_names = uncontacted_case_contact_types(volunteer) + response = CaseContactTypesReminder.send_sms_messages(volunteer, uncontacted_case_contact_type_names) + expect(response).to be_nil + end + end end diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 878b5a4c5b..85513e4a4b 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -265,6 +265,19 @@ follow_redirect! expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to error./) end + + it "does not send a SMS if the casa_org does not have Twilio enabled" do + org = create(:casa_org, twilio_enabled: false); + admin = build(:casa_admin, casa_org: org) + + sign_in admin + + params[:supervisor][:phone_number] = "+12222222222" + post supervisors_url, params: params + expect(response).to have_http_status(:redirect) + follow_redirect! + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to Twilio not enabled for #{org.name}./) + end end describe "PATCH /activate" do diff --git a/spec/requests/users/passwords_spec.rb b/spec/requests/users/passwords_spec.rb index 9fc523a6db..dfc3b30c4e 100644 --- a/spec/requests/users/passwords_spec.rb +++ b/spec/requests/users/passwords_spec.rb @@ -10,7 +10,7 @@ before do allow(TwilioService).to( receive(:new).with( - org.twilio_api_key_sid, org.twilio_api_key_secret, org.twilio_account_sid + org ).and_return(twillio_service_double) ) diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 5e091f3c38..9515f85280 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -181,6 +181,19 @@ follow_redirect! expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to error./) end + + it "does not send a SMS if the casa_org does not have Twilio enabled" do + org = create(:casa_org, twilio_enabled: false); + admin = build(:casa_admin, casa_org: org) + + sign_in admin + + params[:volunteer][:phone_number] = "+12222222222" + post volunteers_url, params: params + expect(response).to have_http_status(:redirect) + follow_redirect! + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to Twilio not enabled for #{org.name}/) + end end context "with invalid parameters" do @@ -367,6 +380,18 @@ expect(response).to redirect_to(edit_volunteer_path(volunteer)) expect(response.status).to match 302 end + + it "does not send a reactivation SMS when Casa Org has Twilio disabled" do + org = create(:casa_org, twilio_enabled: false); + adm = create(:casa_admin, casa_org: org) + vol = create(:volunteer, casa_org: org) + + sign_in adm + + get send_reactivation_alert_volunteer_path(vol) + expect(response).to redirect_to(edit_volunteer_path(vol)) + expect(flash[:alert]).to match(/Volunteer reactivation alert failed due to Twilio not enabled for #{org.name}/) + end end describe "GET /impersonate" do diff --git a/spec/services/court_report_due_sms_reminder_service_spec.rb b/spec/services/court_report_due_sms_reminder_service_spec.rb index 8154b513b8..d26f151447 100644 --- a/spec/services/court_report_due_sms_reminder_service_spec.rb +++ b/spec/services/court_report_due_sms_reminder_service_spec.rb @@ -41,5 +41,15 @@ expect(response).to be_nil end end + + context "when volunteer's casa_org does not have twilio enabled" do + let(:org) { create(:casa_org, twilio_enabled: false)} + let(:volunteer_2) { create(:volunteer, casa_org:org)} + + it "should not send a SMS" do + response = CourtReportDueSmsReminderService.court_report_reminder(volunteer_2, report_due_date) + expect(response).to be_nil + end + end end end diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 84572e2a4f..6a6b3921a2 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -8,14 +8,21 @@ WebMockHelper.twilio_success_stub WebMockHelper.short_io_stub WebMock.disable_net_connect! - @acc_sid = "articuno34" - @api_key = "Aladdin" - @api_secret = "open sesame" @short_url = ShortUrlService.new - @twilio = TwilioService.new(@api_key, @api_secret, @acc_sid) + end + + let!(:casa_org) do + create( + :casa_org, + twilio_phone_number: "+15555555555", + twilio_account_sid: "articuno34", + twilio_api_key_sid: "Aladdin", + twilio_api_key_secret: "open sesame" + ) end it "can send a SMS with a short url successfully" do + @twilio = TwilioService.new(casa_org) @short_url.create_short_url("https://www.google.com") params = { From: "+15555555555", diff --git a/spec/system/casa_org/edit_spec.rb b/spec/system/casa_org/edit_spec.rb index bdd0320ce1..ebfdb9d79c 100644 --- a/spec/system/casa_org/edit_spec.rb +++ b/spec/system/casa_org/edit_spec.rb @@ -119,6 +119,7 @@ end it "has twilio API data required for SMS" do + expect(page).to have_text("Enable Twilio") expect(page).to have_text("Twilio Account SID") expect(page).to have_text("Twilio API Key SID") expect(page).to have_text("Twilio API Key Secret") From f916f1bfc18c329d58c0717d546353591d822648 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 09:58:47 -0400 Subject: [PATCH 12/68] lint --- app/controllers/application_controller.rb | 32 +++++++++---------- app/controllers/volunteers_controller.rb | 14 ++++---- app/javascript/src/casa_org.js | 32 +++++++++---------- app/services/twilio_service.rb | 30 ++++++++--------- .../tasks/case_contact_types_reminder_spec.rb | 12 +++---- spec/requests/supervisors_spec.rb | 8 ++--- spec/requests/volunteers_spec.rb | 18 +++++------ ...rt_report_due_sms_reminder_service_spec.rb | 12 +++---- spec/services/twilio_service_spec.rb | 2 +- 9 files changed, 80 insertions(+), 80 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d204c2dba4..ee5107fa8d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -49,19 +49,19 @@ def deliver_sms_to(resource, body_msg) if resource.phone_number.blank? return "blank" end - #acc_sid = current_user.casa_org.twilio_account_sid - #api_key = current_user.casa_org.twilio_api_key_sid - #api_secret = current_user.casa_org.twilio_api_key_secret + # acc_sid = current_user.casa_org.twilio_account_sid + # api_key = current_user.casa_org.twilio_api_key_sid + # api_secret = current_user.casa_org.twilio_api_key_secret body = body_msg to = resource.phone_number from = current_user.casa_org.twilio_phone_number begin twilio = TwilioService.new(resource.casa_org) - req_params = { - From: from, - Body: body, - To: to - } + req_params = { + From: from, + Body: body, + To: to + } twilio_res = twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" rescue TwilioService::TwilioCasaOrgError => error @@ -83,8 +83,8 @@ def sms_acct_creation_notice(resource_name, sms_status) return "New #{resource_name} created successfully. SMS has been sent!" end if sms_status === "twilio_not_enabled" - return "New #{resource_name} created successfully. SMS not sent due to #{@error}." - end + "New #{resource_name} created successfully. SMS not sent due to #{@error}." + end end private @@ -121,12 +121,12 @@ def check_unconfirmed_email_notice(user) end def check_twilio_enabled?(resource) - if !resource&.casa_org.twilio_enabled? + if !resource&.casa_org.twilio_enabled? false - #is there a way to stop a parent method from continuing? - else - #is there a way to stop a parent method from continuing? + # is there a way to stop a parent method from continuing? + else + # is there a way to stop a parent method from continuing? true - end - end + end + end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index c9d20ca32d..bc520f5ccd 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -102,13 +102,13 @@ def send_reactivation_alert authorize @volunteer if @volunteer.save # ##checks for twilio_enabled### - begin + begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" rescue => e error = e - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed due to #{error}" - end + redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed due to #{error}" + end end end @@ -168,11 +168,11 @@ def volunteers_phone_number end def send_sms_to(phone_number, body) - twilio = TwilioService.new(current_user.casa_org) - req_params = {From: current_user.casa_org.twilio_phone_number, Body: body, To: phone_number} - twilio_res = twilio.send_sms(req_params) + twilio = TwilioService.new(current_user.casa_org) + req_params = {From: current_user.casa_org.twilio_phone_number, Body: body, To: phone_number} + twilio_res = twilio.send_sms(req_params) - # Error handling for spec test purposes + # Error handling for spec test purposes if twilio_res.error_code.nil? "SMS has been sent to Volunteer!" else diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index b413c1be50..fd3c8f2db0 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -6,29 +6,29 @@ function hello () { console.log('hello') if ($('.accordionTwilio').is(':checked')) { console.log('checked') - addCheckedAttr($('#casa_org_twilio_phone_number')); - addCheckedAttr($('#casa_org_twilio_account_sid')); - addCheckedAttr($('#casa_org_twilio_api_key_sid')); - addCheckedAttr($('#casa_org_twilio_api_key_secret')); + addCheckedAttr($('#casa_org_twilio_phone_number')) + addCheckedAttr($('#casa_org_twilio_account_sid')) + addCheckedAttr($('#casa_org_twilio_api_key_sid')) + addCheckedAttr($('#casa_org_twilio_api_key_secret')) } else { console.log('unchecked') - removeCheckedAttr($('#casa_org_twilio_phone_number')); - removeCheckedAttr($('#casa_org_twilio_account_sid')); - removeCheckedAttr($('#casa_org_twilio_api_key_sid')); - removeCheckedAttr($('#casa_org_twilio_api_key_secret')); + removeCheckedAttr($('#casa_org_twilio_phone_number')) + removeCheckedAttr($('#casa_org_twilio_account_sid')) + removeCheckedAttr($('#casa_org_twilio_api_key_sid')) + removeCheckedAttr($('#casa_org_twilio_api_key_secret')) } } -function addCheckedAttr(el){ - el.attr('required', true); - el.setAttribute('aria-disabled', false); - el.removeAttr('disabled'); +function addCheckedAttr (el) { + el.attr('required', true) + el.setAttribute('aria-disabled', false) + el.removeAttr('disabled') } -function removeCheckedAttr(el){ - el.removeAttr('disabled'); - el.attr('disabled', true); - el.removeAttribute('aria-disabled', true); +function removeCheckedAttr (el) { + el.removeAttr('disabled') + el.attr('disabled', true) + el.removeAttribute('aria-disabled', true) } $('document').ready(() => { diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 1939e86b1f..b5e952925f 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -1,28 +1,28 @@ require "json" require "twilio-ruby" -class TwilioService #just a plain ol regular ruby class - class TwilioCasaOrgError < StandardError; end #metaprogramming, within the scope, thats where we want to define this +class TwilioService # just a plain ol regular ruby class + class TwilioCasaOrgError < StandardError; end # metaprogramming, within the scope, thats where we want to define this attr_writer :api_key, :api_secret, :acc_sid, :casa_org - # def new - #overwrite .new for this class, get the client, if not return nil/error - #super? - #end - - def initialize(casa_org) #api_key, api_secret, acc_sid, this is getting called during new, poro! - #this must have a casa_org passed into it! - #dont pass this line unless good to go, fail early!!! - #this error gets raised, but + # def new + # overwrite .new for this class, get the client, if not return nil/error + # super? + # end + + def initialize(casa_org) # api_key, api_secret, acc_sid, this is getting called during new, poro! + # this must have a casa_org passed into it! + # dont pass this line unless good to go, fail early!!! + # this error gets raised, but raise TwilioCasaOrgError.new "Twilio not enabled for #{casa_org.name}" unless casa_org.twilio_enabled? - + @api_key = casa_org.twilio_api_key_sid @api_secret = casa_org.twilio_api_key_secret @acc_sid = casa_org.twilio_account_sid - - #custom error message here!!! StandardError + + # custom error message here!!! StandardError @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) - #failing gracefully, + # failing gracefully, end # this method takes in a hash diff --git a/spec/lib/tasks/case_contact_types_reminder_spec.rb b/spec/lib/tasks/case_contact_types_reminder_spec.rb index f6889d3452..c71406dea4 100644 --- a/spec/lib/tasks/case_contact_types_reminder_spec.rb +++ b/spec/lib/tasks/case_contact_types_reminder_spec.rb @@ -86,14 +86,14 @@ end end - context "volunteer with a casa_org that doesn't have Twilio enabled" do - it "should not send a sms reminder" do - pending 'Failure/Error: client.messages.list(limit: 1) WebMock::NetConnectNotAllowedError:' - + context "volunteer with a casa_org that doesn't have Twilio enabled" do + it "should not send a sms reminder" do + pending "Failure/Error: client.messages.list(limit: 1) WebMock::NetConnectNotAllowedError:" + casa_org.update(twilio_enabled: false) uncontacted_case_contact_type_names = uncontacted_case_contact_types(volunteer) response = CaseContactTypesReminder.send_sms_messages(volunteer, uncontacted_case_contact_type_names) expect(response).to be_nil - end - end + end + end end diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 85513e4a4b..2c1265de86 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -267,17 +267,17 @@ end it "does not send a SMS if the casa_org does not have Twilio enabled" do - org = create(:casa_org, twilio_enabled: false); + org = create(:casa_org, twilio_enabled: false) admin = build(:casa_admin, casa_org: org) - - sign_in admin + + sign_in admin params[:supervisor][:phone_number] = "+12222222222" post supervisors_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to Twilio not enabled for #{org.name}./) - end + end end describe "PATCH /activate" do diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 9515f85280..18798b55f5 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -183,17 +183,17 @@ end it "does not send a SMS if the casa_org does not have Twilio enabled" do - org = create(:casa_org, twilio_enabled: false); + org = create(:casa_org, twilio_enabled: false) admin = build(:casa_admin, casa_org: org) - - sign_in admin - + + sign_in admin + params[:volunteer][:phone_number] = "+12222222222" post volunteers_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to Twilio not enabled for #{org.name}/) - end + end end context "with invalid parameters" do @@ -381,17 +381,17 @@ expect(response.status).to match 302 end - it "does not send a reactivation SMS when Casa Org has Twilio disabled" do - org = create(:casa_org, twilio_enabled: false); + it "does not send a reactivation SMS when Casa Org has Twilio disabled" do + org = create(:casa_org, twilio_enabled: false) adm = create(:casa_admin, casa_org: org) vol = create(:volunteer, casa_org: org) sign_in adm - + get send_reactivation_alert_volunteer_path(vol) expect(response).to redirect_to(edit_volunteer_path(vol)) expect(flash[:alert]).to match(/Volunteer reactivation alert failed due to Twilio not enabled for #{org.name}/) - end + end end describe "GET /impersonate" do diff --git a/spec/services/court_report_due_sms_reminder_service_spec.rb b/spec/services/court_report_due_sms_reminder_service_spec.rb index d26f151447..79d972cabc 100644 --- a/spec/services/court_report_due_sms_reminder_service_spec.rb +++ b/spec/services/court_report_due_sms_reminder_service_spec.rb @@ -42,14 +42,14 @@ end end - context "when volunteer's casa_org does not have twilio enabled" do - let(:org) { create(:casa_org, twilio_enabled: false)} - let(:volunteer_2) { create(:volunteer, casa_org:org)} + context "when volunteer's casa_org does not have twilio enabled" do + let(:org) { create(:casa_org, twilio_enabled: false) } + let(:volunteer_2) { create(:volunteer, casa_org: org) } - it "should not send a SMS" do + it "should not send a SMS" do response = CourtReportDueSmsReminderService.court_report_reminder(volunteer_2, report_due_date) expect(response).to be_nil - end - end + end + end end end diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 6a6b3921a2..31332ae036 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -12,7 +12,7 @@ end let!(:casa_org) do - create( + create( :casa_org, twilio_phone_number: "+15555555555", twilio_account_sid: "articuno34", From 26226207a2ed81fa298d86e86369355b30e72ae8 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 10:03:03 -0400 Subject: [PATCH 13/68] removed empty method --- app/controllers/application_controller.rb | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ee5107fa8d..6eca16352e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -119,14 +119,4 @@ def check_unconfirmed_email_notice(user) end notice end - - def check_twilio_enabled?(resource) - if !resource&.casa_org.twilio_enabled? - false - # is there a way to stop a parent method from continuing? - else - # is there a way to stop a parent method from continuing? - true - end - end end From 8f91448426030d34979f47ef7a60b057394a922d Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 10:08:12 -0400 Subject: [PATCH 14/68] yarn lint --- app/javascript/src/casa_org.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index fd3c8f2db0..145bae036f 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -2,20 +2,23 @@ // const TWILIO_PHONE_NUMBER = '#casa_org_twilio_phone_number' -function hello () { +function twilioToggle () { console.log('hello') + const phoneNumber = $('#casa_org_twilio_phone_number') + const accSid = $('#casa_org_twilio_account_sid') + const keySid = $('#casa_org_twilio_api_key_sid') + const secret = $('#casa_org_twilio_api_key_secret') + if ($('.accordionTwilio').is(':checked')) { - console.log('checked') - addCheckedAttr($('#casa_org_twilio_phone_number')) - addCheckedAttr($('#casa_org_twilio_account_sid')) - addCheckedAttr($('#casa_org_twilio_api_key_sid')) - addCheckedAttr($('#casa_org_twilio_api_key_secret')) + addCheckedAttr(phoneNumber) + addCheckedAttr(accSid) + addCheckedAttr(keySid) + addCheckedAttr(secret) } else { - console.log('unchecked') - removeCheckedAttr($('#casa_org_twilio_phone_number')) - removeCheckedAttr($('#casa_org_twilio_account_sid')) - removeCheckedAttr($('#casa_org_twilio_api_key_sid')) - removeCheckedAttr($('#casa_org_twilio_api_key_secret')) + removeCheckedAttr(phoneNumber) + removeCheckedAttr(accSid) + removeCheckedAttr(keySid) + removeCheckedAttr(secret) } } @@ -41,5 +44,5 @@ $('document').ready(() => { $('.accordionTwilio').removeClass('collapsed') $('#collapseTwilio').addClass('show') } - ($('.accordionTwilio').on('click', hello)) + ($('.accordionTwilio').on('click', twilioToggle)) }) From 8b62b53f4d71b70bd53e25de9fe38a44cffc1fc1 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 10:08:50 -0400 Subject: [PATCH 15/68] removing debugger --- app/services/twilio_service.rb | 1 - lib/tasks/case_contact_types_reminder.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index b5e952925f..a16aa0c9db 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -41,7 +41,6 @@ def send_sms(params) to: to ) rescue => e - debugger Rails.logger.error("send SMS failed: #{e}") end end diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index 087c80aa8c..fe0b5f851a 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -40,7 +40,6 @@ def send_sms_messages(volunteer, uncontacted_case_contact_type_names) if !valid_casa_twilio_creds(volunteer_casa_org) # ##checks for twilio_enabled### return end - debugger twilio_service = TwilioService.new(volunteer_casa_org) sms_params = { From: volunteer_casa_org.twilio_phone_number, From 9eb48ad15f84db618467e3c2c7875377ecbd6eb6 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 10:19:09 -0400 Subject: [PATCH 16/68] clean up --- app/controllers/application_controller.rb | 5 ++--- app/controllers/casa_admins_controller.rb | 2 +- app/controllers/supervisors_controller.rb | 2 +- app/controllers/volunteers_controller.rb | 1 - app/javascript/src/casa_org.js | 4 ---- .../court_report_due_sms_reminder_service.rb | 2 +- app/services/twilio_service.rb | 16 +++------------- lib/tasks/case_contact_types_reminder.rb | 2 +- spec/factories/casa_orgs.rb | 2 +- 9 files changed, 10 insertions(+), 26 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6eca16352e..89b096e1e5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -49,12 +49,11 @@ def deliver_sms_to(resource, body_msg) if resource.phone_number.blank? return "blank" end - # acc_sid = current_user.casa_org.twilio_account_sid - # api_key = current_user.casa_org.twilio_api_key_sid - # api_secret = current_user.casa_org.twilio_api_key_secret + body = body_msg to = resource.phone_number from = current_user.casa_org.twilio_phone_number + begin twilio = TwilioService.new(resource.casa_org) req_params = { diff --git a/app/controllers/casa_admins_controller.rb b/app/controllers/casa_admins_controller.rb index 335ac2ed79..515f8fed9b 100644 --- a/app/controllers/casa_admins_controller.rb +++ b/app/controllers/casa_admins_controller.rb @@ -51,7 +51,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = handle_short_url([invitation_url, base_domain]) body_msg = account_activation_msg("admin", hash_of_short_urls) - sms_status = deliver_sms_to casa_admin, body_msg # ##checks for twilio_enabled### + sms_status = deliver_sms_to casa_admin, body_msg end respond_to do |format| format.html { redirect_to casa_admins_path, notice: sms_acct_creation_notice("admin", sms_status) } diff --git a/app/controllers/supervisors_controller.rb b/app/controllers/supervisors_controller.rb index fbf7b42128..dc7327c316 100644 --- a/app/controllers/supervisors_controller.rb +++ b/app/controllers/supervisors_controller.rb @@ -31,7 +31,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @supervisor.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("supervisor", hash_of_short_urls) - sms_status = deliver_sms_to @supervisor, body_msg # ##checks for twilio_enabled### + sms_status = deliver_sms_to @supervisor, body_msg redirect_to edit_supervisor_path(@supervisor), notice: sms_acct_creation_notice("supervisor", sms_status) else render new_supervisor_path diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index bc520f5ccd..3ff18a84b5 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -101,7 +101,6 @@ def resend_invitation def send_reactivation_alert authorize @volunteer if @volunteer.save - # ##checks for twilio_enabled### begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 145bae036f..564f94376b 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -1,7 +1,3 @@ -// class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordionTwilio" - -// const TWILIO_PHONE_NUMBER = '#casa_org_twilio_phone_number' - function twilioToggle () { console.log('hello') const phoneNumber = $('#casa_org_twilio_phone_number') diff --git a/app/services/court_report_due_sms_reminder_service.rb b/app/services/court_report_due_sms_reminder_service.rb index 0dbd231bb4..30dcaebd56 100644 --- a/app/services/court_report_due_sms_reminder_service.rb +++ b/app/services/court_report_due_sms_reminder_service.rb @@ -8,6 +8,6 @@ module CourtReportDueSmsReminderService def court_report_reminder(user, report_due_date) short_link = create_short_link(GENERATE_CASE_COURT_REPORT_LINK) message = court_report_due_msg(report_due_date, short_link) - send_reminder(user, message) # ##checks for twilio_enabled### + send_reminder(user, message) end end diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index a16aa0c9db..93530e89d9 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -1,28 +1,18 @@ require "json" require "twilio-ruby" -class TwilioService # just a plain ol regular ruby class - class TwilioCasaOrgError < StandardError; end # metaprogramming, within the scope, thats where we want to define this +class TwilioService + class TwilioCasaOrgError < StandardError; end attr_writer :api_key, :api_secret, :acc_sid, :casa_org - # def new - # overwrite .new for this class, get the client, if not return nil/error - # super? - # end - - def initialize(casa_org) # api_key, api_secret, acc_sid, this is getting called during new, poro! - # this must have a casa_org passed into it! - # dont pass this line unless good to go, fail early!!! - # this error gets raised, but + def initialize(casa_org) raise TwilioCasaOrgError.new "Twilio not enabled for #{casa_org.name}" unless casa_org.twilio_enabled? @api_key = casa_org.twilio_api_key_sid @api_secret = casa_org.twilio_api_key_secret @acc_sid = casa_org.twilio_account_sid - # custom error message here!!! StandardError @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) - # failing gracefully, end # this method takes in a hash diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index fe0b5f851a..a3ea6cb95f 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -37,7 +37,7 @@ def uncontacted_case_contact_types(volunteer) def send_sms_messages(volunteer, uncontacted_case_contact_type_names) volunteer_casa_org = volunteer.casa_org - if !valid_casa_twilio_creds(volunteer_casa_org) # ##checks for twilio_enabled### + if !valid_casa_twilio_creds(volunteer_casa_org) return end twilio_service = TwilioService.new(volunteer_casa_org) diff --git a/spec/factories/casa_orgs.rb b/spec/factories/casa_orgs.rb index 9f0d0020d6..46fc375a08 100644 --- a/spec/factories/casa_orgs.rb +++ b/spec/factories/casa_orgs.rb @@ -8,6 +8,6 @@ twilio_api_key_secret { "open sesame" } twilio_api_key_sid { "Aladdin" } twilio_phone_number { "+15555555555" } - twilio_enabled { true } # #must add tests to take into account when this is false, currently this only gets current tests passing## + twilio_enabled { true } end end From c809fb9858494e873cd23f6ac18d079e7dcdecda Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 16:51:01 -0400 Subject: [PATCH 17/68] sms button.js --- app/javascript/src/sms_reactivation_alert.js | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/javascript/src/sms_reactivation_alert.js diff --git a/app/javascript/src/sms_reactivation_alert.js b/app/javascript/src/sms_reactivation_alert.js new file mode 100644 index 0000000000..0b91005f7e --- /dev/null +++ b/app/javascript/src/sms_reactivation_alert.js @@ -0,0 +1,21 @@ +$('document').ready(() => { + + var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) + tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) + }) + + if ($('#twilio_disabled').length) { + $('#twilio_disabled').removeClass('main-btn danger-btn-outline btn-hover btn-sm my-1') + $('#twilio_disabled').addClass('main-btn deactive-btn btn-sm my-1') + $('#twilio_tooltip').attr("data-bs-toggle", "tooltip") + $('#twilio_tooltip').attr("data-bs-placement", "bottom") + $('#twilio_tooltip').attr("data-turbo", "false") + $('#twilio_tooltip').attr("title", "Twilio is not enabled for this user's CASA org") + + $('#twilio_disabled').on("click", function(event){ + event.preventDefault(); + console.log("tooltip?") + }) + } +}) \ No newline at end of file From 56fa0573792e8befb455daf7020d7309dc49b1b3 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 16:51:42 -0400 Subject: [PATCH 18/68] casa_org js --- app/javascript/application.js | 2 ++ app/javascript/src/casa_org.js | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/javascript/application.js b/app/javascript/application.js index 031cda9217..68978eeb5e 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -13,6 +13,7 @@ require('@rails/activestorage').start() require('bootstrap-datepicker') + require('./src/add_additional_expense') require('./src/add_to_calendar_button') require('./src/case_contact') @@ -34,3 +35,4 @@ require('./src/sidebar') require('./src/tooltip') require('./src/session_timeout_poller.js') require('./src/casa_org') +require('./src/sms_reactivation_alert') diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 564f94376b..43f1c3e066 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -1,5 +1,4 @@ function twilioToggle () { - console.log('hello') const phoneNumber = $('#casa_org_twilio_phone_number') const accSid = $('#casa_org_twilio_account_sid') const keySid = $('#casa_org_twilio_api_key_sid') @@ -10,6 +9,7 @@ function twilioToggle () { addCheckedAttr(accSid) addCheckedAttr(keySid) addCheckedAttr(secret) + } else { removeCheckedAttr(phoneNumber) removeCheckedAttr(accSid) @@ -21,24 +21,27 @@ function twilioToggle () { function addCheckedAttr (el) { el.attr('required', true) el.setAttribute('aria-disabled', false) + el.setAttribute('aria-required', true) el.removeAttr('disabled') } function removeCheckedAttr (el) { - el.removeAttr('disabled') el.attr('disabled', true) + el.setAttribute('aria-required', false) el.removeAttribute('aria-disabled', true) + el.removeAttr('required') } $('document').ready(() => { $('.accordionTwilio').attr('data-bs-toggle', 'collapse') $('.accordionTwilio').attr('data-bs-target', '#collapseTwilio') $('.accordionTwilio').attr('aria-expanded', 'false') - console.log('Accordion Twilio', $('.accordionTwilio').val()) + if ($('.accordionTwilio').is(':checked')) { $('.accordionTwilio').attr('aria_expanded') $('.accordionTwilio').removeClass('collapsed') $('#collapseTwilio').addClass('show') } + ($('.accordionTwilio').on('click', twilioToggle)) }) From 13e83cf049b828baabaddf99405b04d55b96f94b Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 16:51:49 -0400 Subject: [PATCH 19/68] updates --- Gemfile.lock | 155 +++++++++--------- app/controllers/users/passwords_controller.rb | 8 +- app/views/volunteers/_manage_active.html.erb | 3 +- 3 files changed, 84 insertions(+), 82 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d6fbaa2daf..406079cbf1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,71 +1,71 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) + actioncable (7.0.5) + actionpack (= 7.0.5) + activesupport (= 7.0.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + actionmailbox (7.0.5) + actionpack (= 7.0.5) + activejob (= 7.0.5) + activerecord (= 7.0.5) + activestorage (= 7.0.5) + activesupport (= 7.0.5) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4.3) - actionpack (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activesupport (= 7.0.4.3) + actionmailer (7.0.5) + actionpack (= 7.0.5) + actionview (= 7.0.5) + activejob (= 7.0.5) + activesupport (= 7.0.5) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) + actionpack (7.0.5) + actionview (= 7.0.5) + activesupport (= 7.0.5) + rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4.3) - actionpack (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + actiontext (7.0.5) + actionpack (= 7.0.5) + activerecord (= 7.0.5) + activestorage (= 7.0.5) + activesupport (= 7.0.5) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4.3) - activesupport (= 7.0.4.3) + actionview (7.0.5) + activesupport (= 7.0.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4.3) - activesupport (= 7.0.4.3) + activejob (7.0.5) + activesupport (= 7.0.5) globalid (>= 0.3.6) - activemodel (7.0.4.3) - activesupport (= 7.0.4.3) + activemodel (7.0.5) + activesupport (= 7.0.5) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (7.0.4.3) - activemodel (= 7.0.4.3) - activesupport (= 7.0.4.3) - activestorage (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activesupport (= 7.0.4.3) + activerecord (7.0.5) + activemodel (= 7.0.5) + activesupport (= 7.0.5) + activestorage (7.0.5) + actionpack (= 7.0.5) + activejob (= 7.0.5) + activerecord (= 7.0.5) + activesupport (= 7.0.5) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4.3) + activesupport (7.0.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -73,7 +73,7 @@ GEM addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) after_party (1.11.2) - amazing_print (1.4.0) + amazing_print (1.5.0) annotate (3.2.0) activerecord (>= 3.2, < 8.0) rake (>= 10.4, < 14.0) @@ -95,7 +95,7 @@ GEM parser (>= 2.4) smart_properties bindex (0.8.1) - brakeman (5.4.1) + brakeman (6.0.0) bugsnag (6.25.2) concurrent-ruby (~> 1.0) builder (3.2.4) @@ -126,7 +126,7 @@ GEM cliver (0.3.2) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.2.5) + connection_pool (2.4.1) crack (0.4.5) rexml crass (1.0.6) @@ -137,7 +137,7 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.3) - delayed_job (4.1.10) + delayed_job (4.1.11) activesupport (>= 3.0, < 8.0) delayed_job_active_record (4.1.7) activerecord (>= 3.0, < 8.0) @@ -239,8 +239,8 @@ GEM jsbundling-rails (1.1.1) railties (>= 6.0.0) jwt (2.7.0) - launchy (2.5.0) - addressable (~> 2.7) + launchy (2.5.2) + addressable (~> 2.8) letter_opener (1.8.1) launchy (>= 2.2, < 3) llhttp-ffi (0.4.0) @@ -251,7 +251,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.21.2) + loofah (2.21.3) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -262,13 +262,13 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mini_magick (4.11.0) + mini_magick (4.12.0) mini_mime (1.1.2) mini_portile2 (2.8.2) minitest (5.18.0) multi_xml (0.6.0) multipart-post (2.3.0) - net-http-persistent (4.0.1) + net-http-persistent (4.0.2) connection_pool (~> 2.2) net-imap (0.3.4) date @@ -280,23 +280,23 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.14.4) - mini_portile2 (~> 2.8.0) + nokogiri (1.15.2) + mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.14.4-arm64-darwin) + nokogiri (1.15.2-arm64-darwin) racc (~> 1.4) - nokogiri (1.14.4-x86_64-darwin) + nokogiri (1.15.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.4-x86_64-linux) + nokogiri (1.15.2-x86_64-linux) racc (~> 1.4) noticed (1.6.3) http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) - parallel (1.22.1) + parallel (1.23.0) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) - parser (3.2.1.1) + parser (3.2.2.1) ast (~> 2.4.1) pdf-forms (1.4.0) cliver (~> 0.3.2) @@ -321,20 +321,20 @@ GEM rack (>= 1.0, < 3) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.4.3) - actioncable (= 7.0.4.3) - actionmailbox (= 7.0.4.3) - actionmailer (= 7.0.4.3) - actionpack (= 7.0.4.3) - actiontext (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activemodel (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + rails (7.0.5) + actioncable (= 7.0.5) + actionmailbox (= 7.0.5) + actionmailer (= 7.0.5) + actionpack (= 7.0.5) + actiontext (= 7.0.5) + actionview (= 7.0.5) + activejob (= 7.0.5) + activemodel (= 7.0.5) + activerecord (= 7.0.5) + activestorage (= 7.0.5) + activesupport (= 7.0.5) bundler (>= 1.15.0) - railties (= 7.0.4.3) + railties (= 7.0.5) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -342,11 +342,12 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.5) + actionpack (= 7.0.5) + activesupport (= 7.0.5) method_source rake (>= 12.2) thor (~> 1.0) @@ -386,7 +387,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.0) + rubocop-ast (1.28.1) parser (>= 3.2.1.0) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) @@ -400,7 +401,7 @@ GEM nokogiri (>= 1.8.5) rubyzip (>= 1.1.1) safe_shell (1.1.0) - scout_apm (5.3.3) + scout_apm (5.3.5) parser selenium-webdriver (4.9.1) rexml (~> 3.2, >= 3.2.5) @@ -418,9 +419,9 @@ GEM spring (4.1.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (4.1.1) + sprockets (4.2.0) concurrent-ruby (~> 1.0) - rack (> 1, < 3) + rack (>= 2.2.4, < 4) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) @@ -434,7 +435,7 @@ GEM timeout (0.3.2) traceroute (0.8.1) rails (>= 3.0.0) - twilio-ruby (6.0.0) + twilio-ruby (6.0.1) faraday (>= 0.9, < 3.0) jwt (>= 1.5, < 3.0) nokogiri (>= 1.6, < 2.0) diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 212b6ee59b..bd70add180 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -35,16 +35,16 @@ def send_password_reset_sms @reset_token ||= @resource.generate_password_reset_token create_short_url - if @resource.casa_org.twilio_enabled? + begin twilio_service = TwilioService.new(@resource.casa_org) sms_params = { - From: @resource.casa_org.twilio_phone_number, + From: @resource.casa_org.twilio_phone_number, Body: password_reset_msg(@resource.display_name, @short_io_service.short_url), To: @phone_number } twilio_service.send_sms(sms_params) - else - flash[:alert] = "SMS notice was not sent. Twilio Is Not Enabled" + rescue => e + flash[:alert] = "SMS not sent due to #{error}" end end diff --git a/app/views/volunteers/_manage_active.html.erb b/app/views/volunteers/_manage_active.html.erb index 222a1d9be2..6895348cac 100644 --- a/app/views/volunteers/_manage_active.html.erb +++ b/app/views/volunteers/_manage_active.html.erb @@ -31,7 +31,8 @@ <% end %> <% if current_user.casa_admin? %> <%= link_to send_reactivation_alert_volunteer_path(user), - class: "main-btn danger-btn-outline btn-hover btn-sm my-1" do %> + id: "#{current_user.casa_org.twilio_enabled? ? "twilio_enabled" : "twilio_disabled"}", + class: "main-btn danger-btn-outline btn-hover btn-sm my-1" do %> Send Reactivation Alert (SMS) <% end %> <% end %> From 81b0c232452e7e9ccfb0ed56e78e8edfc6eb6f26 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 26 May 2023 16:57:45 -0400 Subject: [PATCH 20/68] lint --- app/controllers/users/passwords_controller.rb | 6 ++-- app/javascript/application.js | 1 - app/javascript/src/casa_org.js | 1 - app/javascript/src/sms_reactivation_alert.js | 31 ++++++++----------- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index bd70add180..1b3e7a742b 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -35,16 +35,16 @@ def send_password_reset_sms @reset_token ||= @resource.generate_password_reset_token create_short_url - begin + begin twilio_service = TwilioService.new(@resource.casa_org) sms_params = { - From: @resource.casa_org.twilio_phone_number, + From: @resource.casa_org.twilio_phone_number, Body: password_reset_msg(@resource.display_name, @short_io_service.short_url), To: @phone_number } twilio_service.send_sms(sms_params) rescue => e - flash[:alert] = "SMS not sent due to #{error}" + flash[:alert] = "SMS not sent due to #{e}" end end diff --git a/app/javascript/application.js b/app/javascript/application.js index 68978eeb5e..2f364f5d4a 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -13,7 +13,6 @@ require('@rails/activestorage').start() require('bootstrap-datepicker') - require('./src/add_additional_expense') require('./src/add_to_calendar_button') require('./src/case_contact') diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 43f1c3e066..8d8c3b9011 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -9,7 +9,6 @@ function twilioToggle () { addCheckedAttr(accSid) addCheckedAttr(keySid) addCheckedAttr(secret) - } else { removeCheckedAttr(phoneNumber) removeCheckedAttr(accSid) diff --git a/app/javascript/src/sms_reactivation_alert.js b/app/javascript/src/sms_reactivation_alert.js index 0b91005f7e..506223e4d0 100644 --- a/app/javascript/src/sms_reactivation_alert.js +++ b/app/javascript/src/sms_reactivation_alert.js @@ -1,21 +1,16 @@ + $('document').ready(() => { + if ($('#twilio_disabled').length) { + $('#twilio_disabled').removeClass('main-btn danger-btn-outline btn-hover btn-sm my-1') + $('#twilio_disabled').addClass('main-btn deactive-btn btn-sm my-1') + $('#twilio_tooltip').attr('data-bs-toggle', 'tooltip') + $('#twilio_tooltip').attr('data-bs-placement', 'bottom') + $('#twilio_tooltip').attr('data-turbo', 'false') + $('#twilio_tooltip').attr('title', "Twilio is not enabled for this user's CASA org") - var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) - tooltipTriggerList.map(function (tooltipTriggerEl) { - return new bootstrap.Tooltip(tooltipTriggerEl) + $('#twilio_disabled').on('click', function (event) { + event.preventDefault() + console.log('tooltip?') }) - - if ($('#twilio_disabled').length) { - $('#twilio_disabled').removeClass('main-btn danger-btn-outline btn-hover btn-sm my-1') - $('#twilio_disabled').addClass('main-btn deactive-btn btn-sm my-1') - $('#twilio_tooltip').attr("data-bs-toggle", "tooltip") - $('#twilio_tooltip').attr("data-bs-placement", "bottom") - $('#twilio_tooltip').attr("data-turbo", "false") - $('#twilio_tooltip').attr("title", "Twilio is not enabled for this user's CASA org") - - $('#twilio_disabled').on("click", function(event){ - event.preventDefault(); - console.log("tooltip?") - }) - } -}) \ No newline at end of file + } +}) From 0462da3e65b03b643e0cda3ef119a93d71ca13ea Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Mon, 29 May 2023 18:10:22 -0400 Subject: [PATCH 21/68] Update sms.rb --- app/notifications/delivery_methods/sms.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/notifications/delivery_methods/sms.rb b/app/notifications/delivery_methods/sms.rb index 8f1d71774c..6510975858 100644 --- a/app/notifications/delivery_methods/sms.rb +++ b/app/notifications/delivery_methods/sms.rb @@ -6,7 +6,7 @@ def deliver short_io_api.create_short_url(case_contact_url) shortened_url = short_io_api.short_url if sender.casa_org.twilio_enabled? - twilio_api = TwilioService.new(sender.casa_org.twilio_api_key_sid, sender.casa_org.twilio_api_key_secret, sender.casa_org.twilio_account_sid) + twilio_api = TwilioService.new(sender.casa_org) twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) else flash[:notice] = "SMS notice was not sent. Twilio is not Enabled." From 3d514a0921753d6bbf8b17389b40b08d96b1db85 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Mon, 29 May 2023 21:01:43 -0400 Subject: [PATCH 22/68] spec updates --- spec/controllers/application_controller_spec.rb | 5 +++++ spec/requests/casa_admins_spec.rb | 13 +++++++++++++ spec/requests/supervisors_spec.rb | 2 +- spec/requests/volunteers_spec.rb | 4 ++-- spec/services/twilio_service_spec.rb | 15 +++++++++++++++ 5 files changed, 36 insertions(+), 3 deletions(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 69d3242b30..321d8da941 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -114,5 +114,10 @@ def unknown_organization it "sms status is sent" do expect(controller.send(:sms_acct_creation_notice, "admin", "sent")).to eq("New admin created successfully. SMS has been sent!") end + + it "sms status is twilio_not_enabled" do + pending("no error") + expect(controller.send(:sms_acct_creation_notice, "admin", "twilio_not_enabled")).to eq("New admin created successfully. SMS not sent. Twilio is disabled for #{volunteer.casa_org.name}") + end end end diff --git a/spec/requests/casa_admins_spec.rb b/spec/requests/casa_admins_spec.rb index daffeff978..859156df12 100644 --- a/spec/requests/casa_admins_spec.rb +++ b/spec/requests/casa_admins_spec.rb @@ -427,6 +427,19 @@ follow_redirect! expect(flash[:notice]).to match(/New admin created successfully. SMS not sent due to error./) end + + it "does not send SMS when Twilio is not enabled" do + org = create(:casa_org, twilio_enabled: false) + admin = build(:casa_admin, casa_org: org) + + sign_in admin + params[:phone_number] = "+12222222222" + subject + expect(response).to have_http_status(:redirect) + follow_redirect! + expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Twilio is disabled for #{org.name}./) + end + end context "when failure" do diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 2c1265de86..1633072bb9 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -276,7 +276,7 @@ post supervisors_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to Twilio not enabled for #{org.name}./) + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Twilio is disabled for #{org.name}./) end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 18798b55f5..45546bc614 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -192,7 +192,7 @@ post volunteers_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to Twilio not enabled for #{org.name}/) + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Twilio is disabled for #{org.name}./) end end @@ -390,7 +390,7 @@ get send_reactivation_alert_volunteer_path(vol) expect(response).to redirect_to(edit_volunteer_path(vol)) - expect(flash[:alert]).to match(/Volunteer reactivation alert failed due to Twilio not enabled for #{org.name}/) + expect(flash[:alert]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end end diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 31332ae036..e754966999 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -21,6 +21,17 @@ ) end + let!(:casa_org_twilio_disabled) do + create( + :casa_org, + twilio_phone_number: "+15555555555", + twilio_account_sid: "articuno34", + twilio_api_key_sid: "Aladdin", + twilio_api_key_secret: "open sesame", + twilio_enabled: false + ) + end + it "can send a SMS with a short url successfully" do @twilio = TwilioService.new(casa_org) @short_url.create_short_url("https://www.google.com") @@ -37,6 +48,10 @@ expect(response.status).to match "sent" expect(response.body).to match "Execute Order 66 - https://42ni.short.gy/jzTwdF" end + + it "returns an error is the Casa Org does not have Twilio enabled" do + expect {TwilioService.new(casa_org_twilio_disabled)}.to raise_error(TwilioService::TwilioCasaOrgError) + end end end end From 93f4c855bfa71aa435fe7e9e394ce1b6e3629f4e Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Mon, 29 May 2023 21:01:51 -0400 Subject: [PATCH 23/68] error updates --- app/controllers/application_controller.rb | 2 +- app/controllers/volunteers_controller.rb | 2 +- app/services/twilio_service.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 89b096e1e5..37243b0397 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -82,7 +82,7 @@ def sms_acct_creation_notice(resource_name, sms_status) return "New #{resource_name} created successfully. SMS has been sent!" end if sms_status === "twilio_not_enabled" - "New #{resource_name} created successfully. SMS not sent due to #{@error}." + "New #{resource_name} created successfully. SMS not sent. #{@error}." end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 3ff18a84b5..500c32b956 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -106,7 +106,7 @@ def send_reactivation_alert redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" rescue => e error = e - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert failed due to #{error}" + redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert not sent. #{error}" end end end diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 93530e89d9..b69b8ee2ef 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -6,7 +6,7 @@ class TwilioCasaOrgError < StandardError; end attr_writer :api_key, :api_secret, :acc_sid, :casa_org def initialize(casa_org) - raise TwilioCasaOrgError.new "Twilio not enabled for #{casa_org.name}" unless casa_org.twilio_enabled? + raise TwilioCasaOrgError.new "Twilio is disabled for #{casa_org.name}" unless casa_org.twilio_enabled? @api_key = casa_org.twilio_api_key_sid @api_secret = casa_org.twilio_api_key_secret From e91f6839044e481c435d67f01bf09b62a47e7dad Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Mon, 29 May 2023 21:10:46 -0400 Subject: [PATCH 24/68] removing twilio check --- app/notifications/delivery_methods/sms.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/notifications/delivery_methods/sms.rb b/app/notifications/delivery_methods/sms.rb index 6510975858..b7cd92b227 100644 --- a/app/notifications/delivery_methods/sms.rb +++ b/app/notifications/delivery_methods/sms.rb @@ -5,12 +5,8 @@ def deliver short_io_api = ShortUrlService.new short_io_api.create_short_url(case_contact_url) shortened_url = short_io_api.short_url - if sender.casa_org.twilio_enabled? - twilio_api = TwilioService.new(sender.casa_org) - twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) - else - flash[:notice] = "SMS notice was not sent. Twilio is not Enabled." - end + twilio_api = TwilioService.new(sender.casa_org) + twilio_api.send_sms({From: sender.casa_org.twilio_phone_number, Body: case_contact_flagged_msg(sender.display_name, shortened_url), To: recipient.phone_number}) end end From 912c9f4dc412212ff1e3a69890bc384d2f5b8825 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 18:12:06 -0400 Subject: [PATCH 25/68] updates --- app/controllers/application_controller.rb | 12 ++++++++++-- app/controllers/users/passwords_controller.rb | 6 +++--- app/controllers/volunteers_controller.rb | 9 ++++++--- app/javascript/src/casa_org.js | 6 +++--- app/services/twilio_service.rb | 1 + spec/requests/volunteers_spec.rb | 5 ++++- spec/support/stubbed_requests/twilio_api.rb | 11 +++++++++++ 7 files changed, 38 insertions(+), 12 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 37243b0397..dcd5a43bf5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -55,19 +55,24 @@ def deliver_sms_to(resource, body_msg) from = current_user.casa_org.twilio_phone_number begin - twilio = TwilioService.new(resource.casa_org) + @twilio = TwilioService.new(resource.casa_org) req_params = { From: from, Body: body, To: to } - twilio_res = twilio.send_sms(req_params) + twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" + rescue TwilioService::TwilioCasaOrgError => error @error = error "twilio_not_enabled" rescue Twilio::REST::RestError "error" + rescue StandardError #unverfied error isnt picked up by Twilio::Rest::RestError + #https://www.twilio.com/docs/errors/21608 + @error = "Phone number is unverifiied" + "unverified" end end @@ -84,6 +89,9 @@ def sms_acct_creation_notice(resource_name, sms_status) if sms_status === "twilio_not_enabled" "New #{resource_name} created successfully. SMS not sent. #{@error}." end + if sms_status === "unverified" + "New #{resource_name} created successfully. SMS not sent. #{@error}." + end end private diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 1b3e7a742b..2ccc363107 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -9,7 +9,7 @@ def create valid_params?(@email, @phone_number) ? send_password : render_error return if @errors - + redirect_to after_sending_reset_password_instructions_path_for(resource_name), notice: "You will receive an email or SMS with instructions on how to reset your password in a few minutes." end @@ -43,8 +43,8 @@ def send_password_reset_sms To: @phone_number } twilio_service.send_sms(sms_params) - rescue => e - flash[:alert] = "SMS not sent due to #{e}" + rescue => e + Rails.logger.error("send SMS failed: #{e}") #User doesn't need to know about this end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 500c32b956..a159635650 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -104,9 +104,12 @@ def send_reactivation_alert begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - rescue => e - error = e - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert not sent. #{error}" + rescue StandardError => error + if error.kind_of? NoMethodError #Most likely unverified phone number + redirect_to edit_volunteer_path(@volunteer), notice: "SMS Not Sent. Volunteer Phone Number is not verified." + else + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" + end end end end diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 8d8c3b9011..39a42f3313 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -25,10 +25,10 @@ function addCheckedAttr (el) { } function removeCheckedAttr (el) { - el.attr('disabled', true) - el.setAttribute('aria-required', false) - el.removeAttribute('aria-disabled', true) el.removeAttr('required') + el.setAttribute('aria-required', false) + el.setAttribute('aria-disabled', true) + el.attr('disabled', true) } $('document').ready(() => { diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index b69b8ee2ef..5fb68f9480 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -32,6 +32,7 @@ def send_sms(params) ) rescue => e Rails.logger.error("send SMS failed: #{e}") + e end end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 45546bc614..ab3f4f28e9 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -390,8 +390,11 @@ get send_reactivation_alert_volunteer_path(vol) expect(response).to redirect_to(edit_volunteer_path(vol)) - expect(flash[:alert]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) + expect(flash[:notice]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end + + it "does not send a reactivation SMS to an unverified phone number" do + end end describe "GET /impersonate" do diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index f15aa62494..7803e9b48a 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,4 +82,15 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end + + def twilio_unverified_number_response_stub(resource = "") + WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") + .with( + headers: { + "Content-Type" => "application/x-www-form-urlencoded", + "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + } + ) + .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") + end end From be2aab656e5931686c441d1ba607974bbef7f073 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 19:49:15 -0400 Subject: [PATCH 26/68] changes so far --- .../application_controller_spec.rb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 321d8da941..75e882a8b4 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -102,6 +102,7 @@ def unknown_organization end end + describe "sms acct creation notice" do it "sms status is blank" do expect(controller.send(:sms_acct_creation_notice, "admin", "blank")).to eq("New admin created successfully.") @@ -120,4 +121,29 @@ def unknown_organization expect(controller.send(:sms_acct_creation_notice, "admin", "twilio_not_enabled")).to eq("New admin created successfully. SMS not sent. Twilio is disabled for #{volunteer.casa_org.name}") end end + + context "when deliver_sms_to raises a twilio error" do + #let(:organization_twilio_enabled) { create(:casa_org) } + #let(:volunteer_twilio) { create(:volunteer, casa_org: organization_twilio_enabled) } + + #let(:organization_twilio_disabled) { create(:casa_org) } + #let(:volunteer_no_twilio) { create(:volunteer, casa_org: organization_twilio_disabled) } + + before do + ##### Isolate this and make its own context block -> look where application controller is already being tested + #run it every time!!!! + allow_any_instance_of(TwilioService).to receive(:initialize) + .and_raise(StandardError) + #focus on each error and making sure we get the response we want (whatever is rescued) + ##### + end + it "fails on and returns on first rescue" do + debugger + end + it "fails on and returns on second rescue" do + end + it "fails on and returns on third rescue" do + end + + end end From 28fb15ba68ac4de081956a1f74f49abf78cebb91 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 20:32:55 -0400 Subject: [PATCH 27/68] changes --- app/controllers/application_controller.rb | 12 ++++++++++-- app/controllers/users/passwords_controller.rb | 6 +++--- app/controllers/volunteers_controller.rb | 9 ++++++--- app/javascript/src/casa_org.js | 6 +++--- app/services/twilio_service.rb | 1 + spec/requests/volunteers_spec.rb | 5 ++++- spec/support/stubbed_requests/twilio_api.rb | 11 +++++++++++ 7 files changed, 38 insertions(+), 12 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 37243b0397..dcd5a43bf5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -55,19 +55,24 @@ def deliver_sms_to(resource, body_msg) from = current_user.casa_org.twilio_phone_number begin - twilio = TwilioService.new(resource.casa_org) + @twilio = TwilioService.new(resource.casa_org) req_params = { From: from, Body: body, To: to } - twilio_res = twilio.send_sms(req_params) + twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" + rescue TwilioService::TwilioCasaOrgError => error @error = error "twilio_not_enabled" rescue Twilio::REST::RestError "error" + rescue StandardError #unverfied error isnt picked up by Twilio::Rest::RestError + #https://www.twilio.com/docs/errors/21608 + @error = "Phone number is unverifiied" + "unverified" end end @@ -84,6 +89,9 @@ def sms_acct_creation_notice(resource_name, sms_status) if sms_status === "twilio_not_enabled" "New #{resource_name} created successfully. SMS not sent. #{@error}." end + if sms_status === "unverified" + "New #{resource_name} created successfully. SMS not sent. #{@error}." + end end private diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 1b3e7a742b..2ccc363107 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -9,7 +9,7 @@ def create valid_params?(@email, @phone_number) ? send_password : render_error return if @errors - + redirect_to after_sending_reset_password_instructions_path_for(resource_name), notice: "You will receive an email or SMS with instructions on how to reset your password in a few minutes." end @@ -43,8 +43,8 @@ def send_password_reset_sms To: @phone_number } twilio_service.send_sms(sms_params) - rescue => e - flash[:alert] = "SMS not sent due to #{e}" + rescue => e + Rails.logger.error("send SMS failed: #{e}") #User doesn't need to know about this end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 500c32b956..a159635650 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -104,9 +104,12 @@ def send_reactivation_alert begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - rescue => e - error = e - redirect_to edit_volunteer_path(@volunteer), alert: "Volunteer reactivation alert not sent. #{error}" + rescue StandardError => error + if error.kind_of? NoMethodError #Most likely unverified phone number + redirect_to edit_volunteer_path(@volunteer), notice: "SMS Not Sent. Volunteer Phone Number is not verified." + else + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" + end end end end diff --git a/app/javascript/src/casa_org.js b/app/javascript/src/casa_org.js index 8d8c3b9011..39a42f3313 100644 --- a/app/javascript/src/casa_org.js +++ b/app/javascript/src/casa_org.js @@ -25,10 +25,10 @@ function addCheckedAttr (el) { } function removeCheckedAttr (el) { - el.attr('disabled', true) - el.setAttribute('aria-required', false) - el.removeAttribute('aria-disabled', true) el.removeAttr('required') + el.setAttribute('aria-required', false) + el.setAttribute('aria-disabled', true) + el.attr('disabled', true) } $('document').ready(() => { diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index b69b8ee2ef..5fb68f9480 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -32,6 +32,7 @@ def send_sms(params) ) rescue => e Rails.logger.error("send SMS failed: #{e}") + e end end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 45546bc614..ab3f4f28e9 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -390,8 +390,11 @@ get send_reactivation_alert_volunteer_path(vol) expect(response).to redirect_to(edit_volunteer_path(vol)) - expect(flash[:alert]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) + expect(flash[:notice]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end + + it "does not send a reactivation SMS to an unverified phone number" do + end end describe "GET /impersonate" do diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index f15aa62494..7803e9b48a 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,4 +82,15 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end + + def twilio_unverified_number_response_stub(resource = "") + WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") + .with( + headers: { + "Content-Type" => "application/x-www-form-urlencoded", + "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + } + ) + .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") + end end From 635fc04644b9dd4cb4b4984871232922d91115da Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 20:33:10 -0400 Subject: [PATCH 28/68] changes --- .../application_controller_spec.rb | 26 +++++++++++++++++++ spec/support/stubbed_requests/twilio_api.rb | 11 -------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 321d8da941..75e882a8b4 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -102,6 +102,7 @@ def unknown_organization end end + describe "sms acct creation notice" do it "sms status is blank" do expect(controller.send(:sms_acct_creation_notice, "admin", "blank")).to eq("New admin created successfully.") @@ -120,4 +121,29 @@ def unknown_organization expect(controller.send(:sms_acct_creation_notice, "admin", "twilio_not_enabled")).to eq("New admin created successfully. SMS not sent. Twilio is disabled for #{volunteer.casa_org.name}") end end + + context "when deliver_sms_to raises a twilio error" do + #let(:organization_twilio_enabled) { create(:casa_org) } + #let(:volunteer_twilio) { create(:volunteer, casa_org: organization_twilio_enabled) } + + #let(:organization_twilio_disabled) { create(:casa_org) } + #let(:volunteer_no_twilio) { create(:volunteer, casa_org: organization_twilio_disabled) } + + before do + ##### Isolate this and make its own context block -> look where application controller is already being tested + #run it every time!!!! + allow_any_instance_of(TwilioService).to receive(:initialize) + .and_raise(StandardError) + #focus on each error and making sure we get the response we want (whatever is rescued) + ##### + end + it "fails on and returns on first rescue" do + debugger + end + it "fails on and returns on second rescue" do + end + it "fails on and returns on third rescue" do + end + + end end diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index 7803e9b48a..f15aa62494 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,15 +82,4 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end - - def twilio_unverified_number_response_stub(resource = "") - WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") - .with( - headers: { - "Content-Type" => "application/x-www-form-urlencoded", - "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" - } - ) - .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") - end end From 0652fcece28bb39233a673be00a5760c2739dea9 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 20:52:16 -0400 Subject: [PATCH 29/68] added back the return value --- Gemfile.lock | 8 ++++---- app/controllers/application_controller.rb | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 66c86fba13..406079cbf1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -280,14 +280,14 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.1) + nokogiri (1.15.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.15.1-arm64-darwin) + nokogiri (1.15.2-arm64-darwin) racc (~> 1.4) - nokogiri (1.15.1-x86_64-darwin) + nokogiri (1.15.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.15.1-x86_64-linux) + nokogiri (1.15.2-x86_64-linux) racc (~> 1.4) noticed (1.6.3) http (>= 4.0.0) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dcd5a43bf5..3670d28408 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -87,10 +87,10 @@ def sms_acct_creation_notice(resource_name, sms_status) return "New #{resource_name} created successfully. SMS has been sent!" end if sms_status === "twilio_not_enabled" - "New #{resource_name} created successfully. SMS not sent. #{@error}." + return "New #{resource_name} created successfully. SMS not sent. #{@error}." end if sms_status === "unverified" - "New #{resource_name} created successfully. SMS not sent. #{@error}." + return "New #{resource_name} created successfully. SMS not sent. #{@error}." end end From 3dfeab634cddc0b8504e69978d104915b82ae3ee Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 10:34:24 -0400 Subject: [PATCH 30/68] lint and app controller spec --- app/controllers/application_controller.rb | 35 +++++++---------- app/controllers/users/passwords_controller.rb | 6 +-- app/controllers/volunteers_controller.rb | 14 +++---- app/services/twilio_service.rb | 6 +-- .../application_controller_spec.rb | 39 ++++--------------- spec/requests/casa_admins_spec.rb | 7 ++-- spec/requests/supervisors_spec.rb | 4 +- spec/requests/volunteers_spec.rb | 8 ++-- spec/services/twilio_service_spec.rb | 4 +- spec/support/stubbed_requests/twilio_api.rb | 2 +- 10 files changed, 46 insertions(+), 79 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3670d28408..168005d033 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -63,34 +63,27 @@ def deliver_sms_to(resource, body_msg) } twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" - rescue TwilioService::TwilioCasaOrgError => error @error = error - "twilio_not_enabled" - rescue Twilio::REST::RestError "error" - rescue StandardError #unverfied error isnt picked up by Twilio::Rest::RestError - #https://www.twilio.com/docs/errors/21608 + rescue Twilio::REST::RestError => error + @error = error + "error" # Find a better description for this + rescue # unverfied error isnt picked up by Twilio::Rest::RestError + # https://www.twilio.com/docs/errors/21608 @error = "Phone number is unverifiied" - "unverified" + "error" end end - def sms_acct_creation_notice(resource_name, sms_status) - if sms_status === "blank" - return "New #{resource_name} created successfully." - end - if sms_status === "error" - return "New #{resource_name} created successfully. SMS not sent due to error." - end - if sms_status === "sent" - return "New #{resource_name} created successfully. SMS has been sent!" - end - if sms_status === "twilio_not_enabled" - return "New #{resource_name} created successfully. SMS not sent. #{@error}." - end - if sms_status === "unverified" - return "New #{resource_name} created successfully. SMS not sent. #{@error}." + def sms_acct_creation_notice(resource_name, sms_status) # switch case implement here (should read mutually exclusive) + case sms_status + when "blank" + "New #{resource_name} created successfully." + when "error" + "New #{resource_name} created successfully. SMS not sent. Error: #{@error}." + when "sent" + "New #{resource_name} created successfully. SMS has been sent!" end end diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 2ccc363107..4ce05ab9e1 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -9,7 +9,7 @@ def create valid_params?(@email, @phone_number) ? send_password : render_error return if @errors - + redirect_to after_sending_reset_password_instructions_path_for(resource_name), notice: "You will receive an email or SMS with instructions on how to reset your password in a few minutes." end @@ -43,8 +43,8 @@ def send_password_reset_sms To: @phone_number } twilio_service.send_sms(sms_params) - rescue => e - Rails.logger.error("send SMS failed: #{e}") #User doesn't need to know about this + rescue => e + Rails.logger.error("send SMS failed: #{e}") # User doesn't need to know about this end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index a159635650..87e366e97e 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -37,9 +37,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @volunteer.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("volunteer", hash_of_short_urls) - ### - sms_status = deliver_sms_to @volunteer, body_msg # ##checks for twilio_enabled### - ### + sms_status = deliver_sms_to @volunteer, body_msg redirect_to edit_volunteer_path(@volunteer), notice: sms_acct_creation_notice("volunteer", sms_status) else render :new @@ -104,12 +102,12 @@ def send_reactivation_alert begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - rescue StandardError => error - if error.kind_of? NoMethodError #Most likely unverified phone number + rescue => error + if error.is_a? NoMethodError # Most likely unverified phone number redirect_to edit_volunteer_path(@volunteer), notice: "SMS Not Sent. Volunteer Phone Number is not verified." - else - redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" - end + else + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" + end end end end diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 5fb68f9480..5fbde243aa 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -30,9 +30,9 @@ def send_sms(params) body: body, to: to ) - rescue => e - Rails.logger.error("send SMS failed: #{e}") - e + rescue => error + Rails.logger.error("send SMS failed: #{error}") + error end end end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 75e882a8b4..0acc39f49e 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -102,48 +102,25 @@ def unknown_organization end end - describe "sms acct creation notice" do it "sms status is blank" do expect(controller.send(:sms_acct_creation_notice, "admin", "blank")).to eq("New admin created successfully.") end it "sms status is error" do - expect(controller.send(:sms_acct_creation_notice, "admin", "error")).to eq("New admin created successfully. SMS not sent due to error.") + expect(controller.send(:sms_acct_creation_notice, "admin", "error")).to eq("New admin created successfully. SMS not sent. Error: .") end it "sms status is sent" do expect(controller.send(:sms_acct_creation_notice, "admin", "sent")).to eq("New admin created successfully. SMS has been sent!") end - - it "sms status is twilio_not_enabled" do - pending("no error") - expect(controller.send(:sms_acct_creation_notice, "admin", "twilio_not_enabled")).to eq("New admin created successfully. SMS not sent. Twilio is disabled for #{volunteer.casa_org.name}") - end end - context "when deliver_sms_to raises a twilio error" do - #let(:organization_twilio_enabled) { create(:casa_org) } - #let(:volunteer_twilio) { create(:volunteer, casa_org: organization_twilio_enabled) } - - #let(:organization_twilio_disabled) { create(:casa_org) } - #let(:volunteer_no_twilio) { create(:volunteer, casa_org: organization_twilio_disabled) } - - before do - ##### Isolate this and make its own context block -> look where application controller is already being tested - #run it every time!!!! - allow_any_instance_of(TwilioService).to receive(:initialize) - .and_raise(StandardError) - #focus on each error and making sure we get the response we want (whatever is rescued) - ##### - end - it "fails on and returns on first rescue" do - debugger - end - it "fails on and returns on second rescue" do - end - it "fails on and returns on third rescue" do - end - - end + context "deliver_sms_to encounters an error" do + let(:organization_twilio_disabled) { create(:casa_org, twilio_enabled: false) } + + it "when twilio is not enabled, raises a TwilioCasaOrgError" do + expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + end + end end diff --git a/spec/requests/casa_admins_spec.rb b/spec/requests/casa_admins_spec.rb index 859156df12..cdec612d96 100644 --- a/spec/requests/casa_admins_spec.rb +++ b/spec/requests/casa_admins_spec.rb @@ -425,7 +425,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New admin created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Error: ./) end it "does not send SMS when Twilio is not enabled" do @@ -437,9 +437,8 @@ subject expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Twilio is disabled for #{org.name}./) - end - + expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) + end end context "when failure" do diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 6f93424cc0..3cb2afcb76 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -298,7 +298,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Error: ./) end it "does not send a SMS if the casa_org does not have Twilio enabled" do @@ -311,7 +311,7 @@ post supervisors_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index ab3f4f28e9..1148010a58 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -179,7 +179,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Error: ./) end it "does not send a SMS if the casa_org does not have Twilio enabled" do @@ -192,7 +192,7 @@ post volunteers_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) end end @@ -393,8 +393,8 @@ expect(flash[:notice]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end - it "does not send a reactivation SMS to an unverified phone number" do - end + it "does not send a reactivation SMS to an unverified phone number" do + end end describe "GET /impersonate" do diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index e754966999..0d98160191 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -50,8 +50,8 @@ end it "returns an error is the Casa Org does not have Twilio enabled" do - expect {TwilioService.new(casa_org_twilio_disabled)}.to raise_error(TwilioService::TwilioCasaOrgError) - end + expect { TwilioService.new(casa_org_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + end end end end diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index 7803e9b48a..713894f0c4 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -83,7 +83,7 @@ def twilio_password_reset_stub(resource) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end - def twilio_unverified_number_response_stub(resource = "") + def twilio_unverified_number_response_stub(resource = "") WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") .with( headers: { From 6857a3fba41aa1cc15ae61375fff23e4e0e965af Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 11:11:45 -0400 Subject: [PATCH 31/68] TwilioService resource to current_user --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 168005d033..8cca577f51 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -55,7 +55,7 @@ def deliver_sms_to(resource, body_msg) from = current_user.casa_org.twilio_phone_number begin - @twilio = TwilioService.new(resource.casa_org) + @twilio = TwilioService.new(current_user.casa_org) req_params = { From: from, Body: body, From e7b9336b4b81474d3f94eea91c4e593f12839e84 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 11:24:59 -0400 Subject: [PATCH 32/68] remove unecessary code, refactor --- spec/controllers/application_controller_spec.rb | 8 +++++--- spec/support/stubbed_requests/twilio_api.rb | 11 ----------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 0acc39f49e..83197c4599 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -116,11 +116,13 @@ def unknown_organization end end - context "deliver_sms_to encounters an error" do + describe "deliver_sms_to encounters an error" do let(:organization_twilio_disabled) { create(:casa_org, twilio_enabled: false) } - it "when twilio is not enabled, raises a TwilioCasaOrgError" do - expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + context "when twilio is not enabled" do + it "raises a TwilioCasaOrgError" do + expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + end end end end diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index 713894f0c4..f15aa62494 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,15 +82,4 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end - - def twilio_unverified_number_response_stub(resource = "") - WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") - .with( - headers: { - "Content-Type" => "application/x-www-form-urlencoded", - "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" - } - ) - .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") - end end From 4ac3e32daa89f91980c531daab5b1aa591348a5f Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 11:26:45 -0400 Subject: [PATCH 33/68] lint --- spec/controllers/application_controller_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 83197c4599..81e7c4489d 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -119,7 +119,7 @@ def unknown_organization describe "deliver_sms_to encounters an error" do let(:organization_twilio_disabled) { create(:casa_org, twilio_enabled: false) } - context "when twilio is not enabled" do + context "when twilio is not enabled" do it "raises a TwilioCasaOrgError" do expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) end From 85064d88fa284e7cc3270c57c24f516bbef34411 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 11:31:10 -0400 Subject: [PATCH 34/68] removing unnecessary complexity --- app/controllers/volunteers_controller.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 87e366e97e..d7a0d3caf5 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -103,11 +103,7 @@ def send_reactivation_alert send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" rescue => error - if error.is_a? NoMethodError # Most likely unverified phone number - redirect_to edit_volunteer_path(@volunteer), notice: "SMS Not Sent. Volunteer Phone Number is not verified." - else - redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" - end + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" end end end From eff49f9223be262ecb56d6cc245c22585e7dfd83 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 16:20:25 -0400 Subject: [PATCH 35/68] rename for sms_reactivation js file --- app/javascript/application.js | 2 +- .../{sms_reactivation_alert.js => sms_reactivation_toggle.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename app/javascript/src/{sms_reactivation_alert.js => sms_reactivation_toggle.js} (100%) diff --git a/app/javascript/application.js b/app/javascript/application.js index 2f364f5d4a..67a442f415 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -34,4 +34,4 @@ require('./src/sidebar') require('./src/tooltip') require('./src/session_timeout_poller.js') require('./src/casa_org') -require('./src/sms_reactivation_alert') +require('./src/sms_reactivation_toggle') diff --git a/app/javascript/src/sms_reactivation_alert.js b/app/javascript/src/sms_reactivation_toggle.js similarity index 100% rename from app/javascript/src/sms_reactivation_alert.js rename to app/javascript/src/sms_reactivation_toggle.js From 6a52f91c25cd788ffac23fe9a024605c9a31869a Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 16:59:46 -0400 Subject: [PATCH 36/68] password spec --- spec/requests/users/passwords_spec.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/spec/requests/users/passwords_spec.rb b/spec/requests/users/passwords_spec.rb index dfc3b30c4e..7333e8c14b 100644 --- a/spec/requests/users/passwords_spec.rb +++ b/spec/requests/users/passwords_spec.rb @@ -104,5 +104,21 @@ expect(request.parsed_body).to include("User does not exist.") end end + + context "when twilio is disabled" do + let(:params) { {user: {email: user.email, phone_number: user.phone_number}} } + + before do + org.update(twilio_enabled: false) + end + + it "does not send an sms, only an email" do + expect_any_instance_of(User).to receive(:send_reset_password_instructions).once + request + expect(flash[:notice]).to( + eq("You will receive an email or SMS with instructions on how to reset your password in a few minutes.") + ) + end + end end end From 609c81283b5fd5c2704ab7e5020776d59591995a Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 17:02:14 -0400 Subject: [PATCH 37/68] lint --- spec/requests/users/passwords_spec.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spec/requests/users/passwords_spec.rb b/spec/requests/users/passwords_spec.rb index 7333e8c14b..15635a47db 100644 --- a/spec/requests/users/passwords_spec.rb +++ b/spec/requests/users/passwords_spec.rb @@ -105,20 +105,20 @@ end end - context "when twilio is disabled" do + context "when twilio is disabled" do let(:params) { {user: {email: user.email, phone_number: user.phone_number}} } - - before do + + before do org.update(twilio_enabled: false) end - it "does not send an sms, only an email" do + it "does not send an sms, only an email" do expect_any_instance_of(User).to receive(:send_reset_password_instructions).once request expect(flash[:notice]).to( eq("You will receive an email or SMS with instructions on how to reset your password in a few minutes.") ) - end - end + end + end end end From 8d545a185be5f67bb63c3676e0c6543471b5d075 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 17:21:46 -0400 Subject: [PATCH 38/68] twilio service spec move --- spec/services/twilio_service_spec.rb | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 0d98160191..67e1fbaa23 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -12,23 +12,13 @@ end let!(:casa_org) do - create( - :casa_org, - twilio_phone_number: "+15555555555", - twilio_account_sid: "articuno34", - twilio_api_key_sid: "Aladdin", - twilio_api_key_secret: "open sesame" - ) - end - - let!(:casa_org_twilio_disabled) do create( :casa_org, twilio_phone_number: "+15555555555", twilio_account_sid: "articuno34", twilio_api_key_sid: "Aladdin", twilio_api_key_secret: "open sesame", - twilio_enabled: false + twilio_enabled: true ) end @@ -48,8 +38,22 @@ expect(response.status).to match "sent" expect(response.body).to match "Execute Order 66 - https://42ni.short.gy/jzTwdF" end + end + + context "when twilio is disabled" do + + let!(:casa_org_twilio_disabled) do + create( + :casa_org, + twilio_phone_number: "+15555555553", + twilio_account_sid: "zapdos43", + twilio_api_key_sid: "Jasmine", + twilio_api_key_secret: "hakuna matata", + twilio_enabled: false + ) + end - it "returns an error is the Casa Org does not have Twilio enabled" do + it "raises the TwilioServiceCasaOrgError" do expect { TwilioService.new(casa_org_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) end end From 3daa15ed5fad3c6d87720a4aa51d1df4d9aeffd6 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 17:23:08 -0400 Subject: [PATCH 39/68] lint --- spec/services/twilio_service_spec.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 67e1fbaa23..50fe70dadb 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -40,8 +40,7 @@ end end - context "when twilio is disabled" do - + context "when twilio is disabled" do let!(:casa_org_twilio_disabled) do create( :casa_org, From 77db3a0ece6102234bdafea1b6645e1c81583aba Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:03:59 -0400 Subject: [PATCH 40/68] remove comment --- app/services/no_contact_made_sms_reminder_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/no_contact_made_sms_reminder_service.rb b/app/services/no_contact_made_sms_reminder_service.rb index 7259f7159d..e167a7891e 100644 --- a/app/services/no_contact_made_sms_reminder_service.rb +++ b/app/services/no_contact_made_sms_reminder_service.rb @@ -8,6 +8,6 @@ module NoContactMadeSmsReminderService def no_contact_made_reminder(user, contact_type) short_link = create_short_link(NEW_CASE_CONTACT_LINK) message = no_contact_made_msg(contact_type, short_link) - send_reminder(user, message) # ##checks for twilio_enabled### + send_reminder(user, message) end end From e5abd7beeef4abd55d00070c7cb4830a8953b556 Mon Sep 17 00:00:00 2001 From: Shami Tomita <70528966+ShamiTomita@users.noreply.github.com> Date: Wed, 31 May 2023 18:31:29 -0400 Subject: [PATCH 41/68] Delete Gemfile.lock removed gemfile updates --- Gemfile.lock | 560 --------------------------------------------------- 1 file changed, 560 deletions(-) delete mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 406079cbf1..0000000000 --- a/Gemfile.lock +++ /dev/null @@ -1,560 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actioncable (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.5) - actionpack (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activesupport (= 7.0.5) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.5) - actionview (= 7.0.5) - activesupport (= 7.0.5) - rack (~> 2.0, >= 2.2.4) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.5) - actionpack (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.5) - activesupport (= 7.0.5) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.5) - activesupport (= 7.0.5) - globalid (>= 0.3.6) - activemodel (7.0.5) - activesupport (= 7.0.5) - activemodel-serializers-xml (1.0.2) - activemodel (> 5.x) - activesupport (> 5.x) - builder (~> 3.1) - activerecord (7.0.5) - activemodel (= 7.0.5) - activesupport (= 7.0.5) - activestorage (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activesupport (= 7.0.5) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.5) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) - after_party (1.11.2) - amazing_print (1.5.0) - annotate (3.2.0) - activerecord (>= 3.2, < 8.0) - rake (>= 10.4, < 14.0) - ast (2.4.2) - azure-storage-blob (2.0.3) - azure-storage-common (~> 2.0) - nokogiri (~> 1, >= 1.10.8) - azure-storage-common (2.0.4) - faraday (~> 1.0) - faraday_middleware (~> 1.0, >= 1.0.0.rc1) - net-http-persistent (~> 4.0) - nokogiri (~> 1, >= 1.10.8) - bcrypt (3.1.18) - better_html (2.0.1) - actionview (>= 6.0) - activesupport (>= 6.0) - ast (~> 2.0) - erubi (~> 1.4) - parser (>= 2.4) - smart_properties - bindex (0.8.1) - brakeman (6.0.0) - bugsnag (6.25.2) - concurrent-ruby (~> 1.0) - builder (3.2.4) - bullet (7.0.7) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.11) - byebug (11.1.3) - capybara (3.39.1) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - capybara-screenshot (1.0.26) - capybara (>= 1.0, < 4) - launchy - caxlsx (3.4.1) - htmlentities (~> 4.3, >= 4.3.4) - marcel (~> 1.0) - nokogiri (~> 1.10, >= 1.10.4) - rubyzip (>= 1.3.0, < 3) - caxlsx_rails (0.6.3) - actionpack (>= 3.1) - caxlsx (>= 3.0) - cliver (0.3.2) - coderay (1.1.3) - concurrent-ruby (1.2.2) - connection_pool (2.4.1) - crack (0.4.5) - rexml - crass (1.0.6) - cssbundling-rails (1.1.2) - railties (>= 6.0.0) - database_cleaner-active_record (2.1.0) - activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) - database_cleaner-core (2.0.1) - date (3.3.3) - delayed_job (4.1.11) - activesupport (>= 3.0, < 8.0) - delayed_job_active_record (4.1.7) - activerecord (>= 3.0, < 8.0) - delayed_job (>= 3.0, < 5) - devise (4.9.2) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - devise_invitable (2.0.8) - actionmailer (>= 5.0) - devise (>= 4.6) - diff-lcs (1.5.0) - docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.8.1) - dotenv-rails (2.8.1) - dotenv (= 2.8.1) - railties (>= 3.2) - draper (4.0.2) - actionpack (>= 5.0) - activemodel (>= 5.0) - activemodel-serializers-xml (>= 1.0) - activesupport (>= 5.0) - request_store (>= 1.0) - ruby2_keywords - erb_lint (0.4.0) - activesupport - better_html (>= 2.0.1) - parser (>= 2.7.1.4) - rainbow - rubocop - smart_properties - erubi (1.12.0) - factory_bot (6.2.1) - activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) - railties (>= 5.0.0) - faker (3.2.0) - i18n (>= 1.8.11, < 2) - faraday (1.10.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) - ffi (1.15.5) - ffi-compiler (1.0.1) - ffi (>= 1.0.0) - rake - filterrific (5.2.5) - friendly_id (5.5.0) - activerecord (>= 4.0.0) - globalid (1.1.0) - activesupport (>= 5.0) - hashdiff (1.0.1) - htmlentities (4.3.4) - http (5.1.1) - addressable (~> 2.8) - http-cookie (~> 1.0) - http-form_data (~> 2.2) - llhttp-ffi (~> 0.4.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - http-form_data (2.3.0) - httparty (0.21.0) - mini_mime (>= 1.0.0) - multi_xml (>= 0.5.2) - i18n (1.13.0) - concurrent-ruby (~> 1.0) - image_processing (1.12.2) - mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.17, < 3) - jbuilder (2.11.5) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) - jsbundling-rails (1.1.1) - railties (>= 6.0.0) - jwt (2.7.0) - launchy (2.5.2) - addressable (~> 2.8) - letter_opener (1.8.1) - launchy (>= 2.2, < 3) - llhttp-ffi (0.4.0) - ffi-compiler (~> 1.0) - rake (~> 13.0) - lograge (0.12.0) - actionpack (>= 4) - activesupport (>= 4) - railties (>= 4) - request_store (~> 1.0) - loofah (2.21.3) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.2) - matrix (0.4.2) - method_source (1.0.0) - mini_magick (4.12.0) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.0) - multi_xml (0.6.0) - multipart-post (2.3.0) - net-http-persistent (4.0.2) - connection_pool (~> 2.2) - net-imap (0.3.4) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.1) - timeout - net-smtp (0.3.3) - net-protocol - nio4r (2.5.9) - nokogiri (1.15.2) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - nokogiri (1.15.2-arm64-darwin) - racc (~> 1.4) - nokogiri (1.15.2-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.15.2-x86_64-linux) - racc (~> 1.4) - noticed (1.6.3) - http (>= 4.0.0) - rails (>= 5.2.0) - orm_adapter (0.5.0) - parallel (1.23.0) - paranoia (2.6.1) - activerecord (>= 5.1, < 7.1) - parser (3.2.2.1) - ast (~> 2.4.1) - pdf-forms (1.4.0) - cliver (~> 0.3.2) - safe_shell (>= 1.0.3, < 2.0) - pg (1.5.3) - pretender (0.4.0) - actionpack (>= 5.2) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - public_suffix (5.0.1) - puma (6.2.2) - nio4r (~> 2.0) - pundit (2.3.0) - activesupport (>= 3.0.0) - racc (1.6.2) - rack (2.2.7) - rack-attack (6.6.1) - rack (>= 1.0, < 3) - rack-test (2.1.0) - rack (>= 1.3) - rails (7.0.5) - actioncable (= 7.0.5) - actionmailbox (= 7.0.5) - actionmailer (= 7.0.5) - actionpack (= 7.0.5) - actiontext (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activemodel (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) - bundler (>= 1.15.0) - railties (= 7.0.5) - rails-controller-testing (1.0.5) - actionpack (>= 5.0.1.rc1) - actionview (>= 5.0.1.rc1) - activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.8.0) - request_store (1.5.1) - rack (>= 1.4) - responders (3.1.0) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.5) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-rails (6.0.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.12.0) - rubocop (1.23.0) - parallel (~> 1.10) - parser (>= 3.0.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.12.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.1) - parser (>= 3.2.1.0) - rubocop-performance (1.12.0) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - ruby-progressbar (1.13.0) - ruby-vips (2.1.4) - ffi (~> 1.12) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - sablon (0.3.2) - nokogiri (>= 1.8.5) - rubyzip (>= 1.1.1) - safe_shell (1.1.0) - scout_apm (5.3.5) - parser - selenium-webdriver (4.9.1) - rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2, < 3.0) - websocket (~> 1.0) - shoulda-matchers (5.3.0) - activesupport (>= 5.2.0) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - smart_properties (1.17.0) - spring (4.1.1) - spring-commands-rspec (1.0.4) - spring (>= 0.9.1) - sprockets (4.2.0) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - standard (1.5.0) - rubocop (= 1.23.0) - rubocop-performance (= 1.12.0) - strong_migrations (1.4.4) - activerecord (>= 5.2) - thor (1.2.2) - timeout (0.3.2) - traceroute (0.8.1) - rails (>= 3.0.0) - twilio-ruby (6.0.1) - faraday (>= 0.9, < 3.0) - jwt (>= 1.5, < 3.0) - nokogiri (>= 1.6, < 2.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.4.2) - uniform_notifier (1.16.0) - view_component (3.0.0) - activesupport (>= 5.2.0, < 8.0) - concurrent-ruby (~> 1.0) - method_source (~> 1.0) - warden (1.2.9) - rack (>= 2.0.9) - web-console (4.2.0) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) - bindex (>= 0.4.0) - railties (>= 6.0.0) - webdrivers (5.2.0) - nokogiri (~> 1.6) - rubyzip (>= 1.3.0) - selenium-webdriver (~> 4.0) - webmock (3.18.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket (1.2.9) - websocket-driver (0.7.5) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - xpath (3.2.0) - nokogiri (~> 1.8) - zeitwerk (2.6.8) - -PLATFORMS - arm64-darwin-20 - arm64-darwin-21 - arm64-darwin-22 - ruby - x86_64-darwin-18 - x86_64-darwin-19 - x86_64-darwin-20 - x86_64-darwin-21 - x86_64-darwin-22 - x86_64-linux - -DEPENDENCIES - after_party - amazing_print - annotate - azure-storage-blob - brakeman - bugsnag - bullet - byebug - capybara - capybara-screenshot - caxlsx (~> 3.4) - caxlsx_rails (~> 0.6.3) - cssbundling-rails (~> 1.1) - database_cleaner-active_record - delayed_job_active_record - devise - devise_invitable - dotenv-rails - draper - erb_lint - factory_bot_rails - faker - filterrific - friendly_id (~> 5.5.0) - httparty - image_processing (~> 1.12) - jbuilder - jsbundling-rails - letter_opener - lograge - net-imap - net-pop - net-smtp - noticed - paranoia - pdf-forms - pg - pretender - pry - pry-byebug - puma (= 6.2.2) - pundit - rack-attack - rails (~> 7.0.4) - rails-controller-testing - rake - request_store - rexml - rspec-rails - sablon - scout_apm - selenium-webdriver - shoulda-matchers - simplecov - spring - spring-commands-rspec - sprockets-rails - standard (= 1.5.0) - strong_migrations - traceroute - twilio-ruby - tzinfo-data - view_component - web-console (>= 3.3.0) - webdrivers - webmock - -RUBY VERSION - ruby 3.1.3p185 - -BUNDLED WITH - 2.4.8 From e10cf2142d385267ef1ed0a81bb6c35063141e0a Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:44:46 -0400 Subject: [PATCH 42/68] remove comment --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8cca577f51..803a522e12 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -76,7 +76,7 @@ def deliver_sms_to(resource, body_msg) end end - def sms_acct_creation_notice(resource_name, sms_status) # switch case implement here (should read mutually exclusive) + def sms_acct_creation_notice(resource_name, sms_status) case sms_status when "blank" "New #{resource_name} created successfully." From a7905e530b94aeffe59e3932eacad54304e60f98 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:44:54 -0400 Subject: [PATCH 43/68] revert to old gem file --- Gemfile | 6 +++--- Gemfile.lock | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Gemfile b/Gemfile index f0f69e8122..19374f4571 100644 --- a/Gemfile +++ b/Gemfile @@ -2,8 +2,8 @@ source "https://rubygems.org" -ruby "3.1.3" -gem "rails", "~> 7.0.4" +ruby "3.2.2" +gem "rails", "~> 7.0.5" gem "after_party" # post-deployment tasks gem "amazing_print" # easier console reading @@ -80,4 +80,4 @@ group :test do gem "webdrivers" # easy installation and use of web drivers to run system tests with browsers end -# gem "pdf-reader", "~> 2.9" +# gem "pdf-reader", "~> 2.9" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 406079cbf1..b392990b5b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -126,7 +126,7 @@ GEM cliver (0.3.2) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.4.1) + connection_pool (2.2.5) crack (0.4.5) rexml crass (1.0.6) @@ -137,7 +137,7 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.3) - delayed_job (4.1.11) + delayed_job (4.1.10) activesupport (>= 3.0, < 8.0) delayed_job_active_record (4.1.7) activerecord (>= 3.0, < 8.0) @@ -239,8 +239,8 @@ GEM jsbundling-rails (1.1.1) railties (>= 6.0.0) jwt (2.7.0) - launchy (2.5.2) - addressable (~> 2.8) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.8.1) launchy (>= 2.2, < 3) llhttp-ffi (0.4.0) @@ -262,13 +262,13 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mini_magick (4.12.0) + mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.2) minitest (5.18.0) multi_xml (0.6.0) multipart-post (2.3.0) - net-http-persistent (4.0.2) + net-http-persistent (4.0.1) connection_pool (~> 2.2) net-imap (0.3.4) date @@ -293,7 +293,7 @@ GEM http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) - parallel (1.23.0) + parallel (1.22.1) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) parser (3.2.2.1) @@ -387,7 +387,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.1) + rubocop-ast (1.28.0) parser (>= 3.2.1.0) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) @@ -419,9 +419,9 @@ GEM spring (4.1.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (4.2.0) + sprockets (4.1.1) concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) + rack (> 1, < 3) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) @@ -529,7 +529,7 @@ DEPENDENCIES puma (= 6.2.2) pundit rack-attack - rails (~> 7.0.4) + rails (~> 7.0.5) rails-controller-testing rake request_store @@ -554,7 +554,7 @@ DEPENDENCIES webmock RUBY VERSION - ruby 3.1.3p185 + ruby 3.2.2p53 BUNDLED WITH 2.4.8 From 2d7acc07f7d9952a122c4bb8db59f2883cd4c927 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:54:41 -0400 Subject: [PATCH 44/68] actual revert --- Gemfile | 4 +- Gemfile.lock | 147 +++++++++++++++++++++++++-------------------------- 2 files changed, 75 insertions(+), 76 deletions(-) diff --git a/Gemfile b/Gemfile index 19374f4571..2d79fbfe4e 100644 --- a/Gemfile +++ b/Gemfile @@ -2,8 +2,8 @@ source "https://rubygems.org" -ruby "3.2.2" -gem "rails", "~> 7.0.5" +ruby "3.1.3" +gem "rails", "~> 7.0.4" gem "after_party" # post-deployment tasks gem "amazing_print" # easier console reading diff --git a/Gemfile.lock b/Gemfile.lock index b392990b5b..46287142e6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,71 +1,71 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.5) - actionpack (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activesupport (= 7.0.5) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.5) - actionview (= 7.0.5) - activesupport (= 7.0.5) - rack (~> 2.0, >= 2.2.4) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.5) - actionpack (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.5) - activesupport (= 7.0.5) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.5) - activesupport (= 7.0.5) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.3.6) - activemodel (7.0.5) - activesupport (= 7.0.5) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (7.0.5) - activemodel (= 7.0.5) - activesupport (= 7.0.5) - activestorage (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activesupport (= 7.0.5) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.5) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -73,7 +73,7 @@ GEM addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) after_party (1.11.2) - amazing_print (1.5.0) + amazing_print (1.4.0) annotate (3.2.0) activerecord (>= 3.2, < 8.0) rake (>= 10.4, < 14.0) @@ -95,7 +95,7 @@ GEM parser (>= 2.4) smart_properties bindex (0.8.1) - brakeman (6.0.0) + brakeman (5.4.1) bugsnag (6.25.2) concurrent-ruby (~> 1.0) builder (3.2.4) @@ -251,9 +251,9 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.21.3) + loofah (2.20.0) crass (~> 1.0.2) - nokogiri (>= 1.12.0) + nokogiri (>= 1.5.9) mail (2.8.1) mini_mime (>= 0.1.1) net-imap @@ -280,23 +280,23 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.2) - mini_portile2 (~> 2.8.2) + nokogiri (1.14.4) + mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.15.2-arm64-darwin) + nokogiri (1.14.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-darwin) + nokogiri (1.14.4-x86_64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-linux) + nokogiri (1.14.4-x86_64-linux) racc (~> 1.4) - noticed (1.6.3) + noticed (1.6.2) http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) parallel (1.22.1) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) - parser (3.2.2.1) + parser (3.2.1.1) ast (~> 2.4.1) pdf-forms (1.4.0) cliver (~> 0.3.2) @@ -321,20 +321,20 @@ GEM rack (>= 1.0, < 3) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.5) - actioncable (= 7.0.5) - actionmailbox (= 7.0.5) - actionmailer (= 7.0.5) - actionpack (= 7.0.5) - actiontext (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activemodel (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) bundler (>= 1.15.0) - railties (= 7.0.5) + railties (= 7.0.4.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -342,12 +342,11 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) method_source rake (>= 12.2) thor (~> 1.0) @@ -401,7 +400,7 @@ GEM nokogiri (>= 1.8.5) rubyzip (>= 1.1.1) safe_shell (1.1.0) - scout_apm (5.3.5) + scout_apm (5.3.3) parser selenium-webdriver (4.9.1) rexml (~> 3.2, >= 3.2.5) @@ -431,11 +430,11 @@ GEM rubocop-performance (= 1.12.0) strong_migrations (1.4.4) activerecord (>= 5.2) - thor (1.2.2) + thor (1.2.1) timeout (0.3.2) traceroute (0.8.1) rails (>= 3.0.0) - twilio-ruby (6.0.1) + twilio-ruby (6.0.0) faraday (>= 0.9, < 3.0) jwt (>= 1.5, < 3.0) nokogiri (>= 1.6, < 2.0) @@ -529,7 +528,7 @@ DEPENDENCIES puma (= 6.2.2) pundit rack-attack - rails (~> 7.0.5) + rails (~> 7.0.4) rails-controller-testing rake request_store @@ -554,7 +553,7 @@ DEPENDENCIES webmock RUBY VERSION - ruby 3.2.2p53 + ruby 3.1.3p185 BUNDLED WITH - 2.4.8 + 2.4.8 \ No newline at end of file From 3ae7afe6be91b2c256a8151bb7516d9468e4bcf7 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:55:39 -0400 Subject: [PATCH 45/68] lint --- Gemfile | 2 +- Gemfile.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 2d79fbfe4e..f0f69e8122 100644 --- a/Gemfile +++ b/Gemfile @@ -80,4 +80,4 @@ group :test do gem "webdrivers" # easy installation and use of web drivers to run system tests with browsers end -# gem "pdf-reader", "~> 2.9" \ No newline at end of file +# gem "pdf-reader", "~> 2.9" diff --git a/Gemfile.lock b/Gemfile.lock index 46287142e6..22fb566186 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -556,4 +556,4 @@ RUBY VERSION ruby 3.1.3p185 BUNDLED WITH - 2.4.8 \ No newline at end of file + 2.4.8 From 403425e76727d559b6fc479ceddf832444bbd27d Mon Sep 17 00:00:00 2001 From: Shami Tomita <70528966+ShamiTomita@users.noreply.github.com> Date: Wed, 31 May 2023 19:03:15 -0400 Subject: [PATCH 46/68] Update Gemfile.lock --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 22fb566186..2f52da505c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -251,9 +251,9 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.20.0) + loofah (2.21.2) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) mail (2.8.1) mini_mime (>= 0.1.1) net-imap @@ -280,23 +280,23 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.14.4) - mini_portile2 (~> 2.8.0) + nokogiri (1.15.1) + mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.14.4-arm64-darwin) + nokogiri (1.15.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.14.4-x86_64-darwin) + nokogiri (1.15.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.4-x86_64-linux) + nokogiri (1.15.1-x86_64-linux) racc (~> 1.4) - noticed (1.6.2) + noticed (1.6.3) http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) parallel (1.22.1) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) - parser (3.2.1.1) + parser (3.2.2.1) ast (~> 2.4.1) pdf-forms (1.4.0) cliver (~> 0.3.2) @@ -400,7 +400,7 @@ GEM nokogiri (>= 1.8.5) rubyzip (>= 1.1.1) safe_shell (1.1.0) - scout_apm (5.3.3) + scout_apm (5.3.5) parser selenium-webdriver (4.9.1) rexml (~> 3.2, >= 3.2.5) @@ -430,11 +430,11 @@ GEM rubocop-performance (= 1.12.0) strong_migrations (1.4.4) activerecord (>= 5.2) - thor (1.2.1) + thor (1.2.2) timeout (0.3.2) traceroute (0.8.1) rails (>= 3.0.0) - twilio-ruby (6.0.0) + twilio-ruby (6.0.1) faraday (>= 0.9, < 3.0) jwt (>= 1.5, < 3.0) nokogiri (>= 1.6, < 2.0) From 866db009316b9376585409eaf18a453e2d5eb504 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Wed, 31 May 2023 18:44:54 -0400 Subject: [PATCH 47/68] revert to old gem file actual revert lint Update Gemfile.lock --- Gemfile.lock | 147 +++++++++++++++++++++++++-------------------------- 1 file changed, 73 insertions(+), 74 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 406079cbf1..2f52da505c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,71 +1,71 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.5) - actionpack (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activesupport (= 7.0.5) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.5) - actionview (= 7.0.5) - activesupport (= 7.0.5) - rack (~> 2.0, >= 2.2.4) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.5) - actionpack (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.5) - activesupport (= 7.0.5) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.5) - activesupport (= 7.0.5) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.3.6) - activemodel (7.0.5) - activesupport (= 7.0.5) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (7.0.5) - activemodel (= 7.0.5) - activesupport (= 7.0.5) - activestorage (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activesupport (= 7.0.5) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.5) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -73,7 +73,7 @@ GEM addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) after_party (1.11.2) - amazing_print (1.5.0) + amazing_print (1.4.0) annotate (3.2.0) activerecord (>= 3.2, < 8.0) rake (>= 10.4, < 14.0) @@ -95,7 +95,7 @@ GEM parser (>= 2.4) smart_properties bindex (0.8.1) - brakeman (6.0.0) + brakeman (5.4.1) bugsnag (6.25.2) concurrent-ruby (~> 1.0) builder (3.2.4) @@ -126,7 +126,7 @@ GEM cliver (0.3.2) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.4.1) + connection_pool (2.2.5) crack (0.4.5) rexml crass (1.0.6) @@ -137,7 +137,7 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.3) - delayed_job (4.1.11) + delayed_job (4.1.10) activesupport (>= 3.0, < 8.0) delayed_job_active_record (4.1.7) activerecord (>= 3.0, < 8.0) @@ -239,8 +239,8 @@ GEM jsbundling-rails (1.1.1) railties (>= 6.0.0) jwt (2.7.0) - launchy (2.5.2) - addressable (~> 2.8) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.8.1) launchy (>= 2.2, < 3) llhttp-ffi (0.4.0) @@ -251,7 +251,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.21.3) + loofah (2.21.2) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -262,13 +262,13 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mini_magick (4.12.0) + mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.2) minitest (5.18.0) multi_xml (0.6.0) multipart-post (2.3.0) - net-http-persistent (4.0.2) + net-http-persistent (4.0.1) connection_pool (~> 2.2) net-imap (0.3.4) date @@ -280,20 +280,20 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.2) + nokogiri (1.15.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.15.2-arm64-darwin) + nokogiri (1.15.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-darwin) + nokogiri (1.15.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-linux) + nokogiri (1.15.1-x86_64-linux) racc (~> 1.4) noticed (1.6.3) http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) - parallel (1.23.0) + parallel (1.22.1) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) parser (3.2.2.1) @@ -321,20 +321,20 @@ GEM rack (>= 1.0, < 3) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.5) - actioncable (= 7.0.5) - actionmailbox (= 7.0.5) - actionmailer (= 7.0.5) - actionpack (= 7.0.5) - actiontext (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activemodel (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) bundler (>= 1.15.0) - railties (= 7.0.5) + railties (= 7.0.4.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -342,12 +342,11 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) method_source rake (>= 12.2) thor (~> 1.0) @@ -387,7 +386,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.1) + rubocop-ast (1.28.0) parser (>= 3.2.1.0) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) @@ -419,9 +418,9 @@ GEM spring (4.1.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (4.2.0) + sprockets (4.1.1) concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) + rack (> 1, < 3) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) From dfc0c7f59fe8ed841e8c14ca58f6974cb56f4ac5 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 18:12:06 -0400 Subject: [PATCH 48/68] updates --- spec/support/stubbed_requests/twilio_api.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index f15aa62494..7803e9b48a 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,4 +82,15 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end + + def twilio_unverified_number_response_stub(resource = "") + WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") + .with( + headers: { + "Content-Type" => "application/x-www-form-urlencoded", + "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + } + ) + .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") + end end From df730729e252e68eb3e06b5b7e82724487868707 Mon Sep 17 00:00:00 2001 From: Jeanine Soterwood Date: Tue, 16 May 2023 20:24:35 -0700 Subject: [PATCH 49/68] Do not use blank padding for hour display The %l option blank pads numbers less than 10, which is causing the spec to be flaky, and leaves an extra space in the time display: "May 17, 2023 at 3:21 AM". This change removes the blank padding. --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 02790973a0..06d0d188ba 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -57,7 +57,7 @@ en: full: "%B %-d, %Y" youth_date_of_birth: "%B %Y" short_date: "%-m/%d" - edit_profile: "%B %d, %Y at %l:%M %p" + edit_profile: "%B %d, %Y at %-l:%M %p" notifications: emancipation_checklist_reminder_notification: title: "Emancipation Checklist Reminder" From 67c2fcf4fc5daad19c149fed98ef28d02e6656c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 May 2023 15:27:47 -0700 Subject: [PATCH 50/68] build(deps): bump bootstrap-datepicker from 1.9.0 to 1.10.0 (#4826) Bumps [bootstrap-datepicker](https://github.com/uxsolutions/bootstrap-datepicker) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/uxsolutions/bootstrap-datepicker/releases) - [Changelog](https://github.com/uxsolutions/bootstrap-datepicker/blob/master/CHANGELOG.md) - [Commits](https://github.com/uxsolutions/bootstrap-datepicker/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: bootstrap-datepicker dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index af80661b4f..36f0131fd4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "add2calendar": "^1.1.8", "bindings": "^1.5.0", "bootstrap": "5.2.3", - "bootstrap-datepicker": "^1.9.0", + "bootstrap-datepicker": "^1.10.0", "bootstrap-scss": "^5.2.3", "bootstrap-select": "^1.13.18", "datatables.net-dt": "^1.13.4", diff --git a/yarn.lock b/yarn.lock index e04585c108..bbb8b28465 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2026,12 +2026,12 @@ bluebird@3.7.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bootstrap-datepicker@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz" - integrity sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA== +bootstrap-datepicker@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a" + integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg== dependencies: - jquery ">=1.7.1 <4.0.0" + jquery ">=3.4.0 <4.0.0" bootstrap-scss@^5.2.3: version "5.2.3" @@ -3870,10 +3870,10 @@ joi@^17.7.0: "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" -jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@^3.6.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.4.tgz#ba065c188142100be4833699852bf7c24dc0252f" - integrity sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ== +jquery@>=1.7, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.4: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" + integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== js-sdsl@^4.1.4: version "4.1.4" From 7e51d0ad0ca48fa36eb76bc90861ced4f3f90cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Paulino?= <92229784+tonyaraujop@users.noreply.github.com> Date: Fri, 26 May 2023 19:55:07 -0300 Subject: [PATCH 51/68] Add casa cases section without court dates to admin home page (#4798) Co-authored-by: Carlos Pazuzu Co-authored-by: Gabriel Cicero Co-authored-by: Anderson Moura Co-authored-by: Paulo Vilarinho --- app/controllers/supervisors_controller.rb | 1 + app/models/casa_case.rb | 4 ++ app/views/supervisors/index.html.erb | 59 +++++++++++++++++++ spec/requests/supervisors_spec.rb | 35 +++++++++++ spec/views/supervisors/index.html.erb_spec.rb | 23 ++++++++ 5 files changed, 122 insertions(+) diff --git a/app/controllers/supervisors_controller.rb b/app/controllers/supervisors_controller.rb index dc7327c316..0154b0d4d1 100644 --- a/app/controllers/supervisors_controller.rb +++ b/app/controllers/supervisors_controller.rb @@ -13,6 +13,7 @@ class SupervisorsController < ApplicationController def index authorize Supervisor @supervisors = policy_scope(current_organization.supervisors) + @casa_cases = current_organization.casa_cases.missing_court_dates end def new diff --git a/app/models/casa_case.rb b/app/models/casa_case.rb index 88e387db22..202341f2e4 100644 --- a/app/models/casa_case.rb +++ b/app/models/casa_case.rb @@ -97,6 +97,10 @@ class CasaCase < ApplicationRecord where(active: false) } + scope :missing_court_dates, -> { + where.missing(:court_dates) + } + delegate :name, to: :hearing_type, prefix: true, allow_nil: true delegate :name, to: :judge, prefix: true, allow_nil: true diff --git a/app/views/supervisors/index.html.erb b/app/views/supervisors/index.html.erb index 24a7165d85..84b2927019 100644 --- a/app/views/supervisors/index.html.erb +++ b/app/views/supervisors/index.html.erb @@ -160,4 +160,63 @@
+ +
+
+
+
+

Casa Cases without Court Dates

+
+
+ + + + + + + + + + + + + + + <% @casa_cases.each do |casa_case| %> + + + + + + + + + + + <% end %> + +
Case NumberHearing TypeJudgeStatusTransition Aged YouthAssigned ToActions
<%= link_to(casa_case.case_number, casa_case) %><%= casa_case.hearing_type_name %><%= casa_case.judge_name %><%= casa_case.decorate.status %><%= casa_case.decorate.transition_aged_youth %> + <% if casa_case.active? %> + <% if current_user.volunteer? %> + <%= safe_join(casa_case.assigned_volunteers.map { |vol| + vol.display_name }, ", ") %> + <% else %> + <%= safe_join(casa_case.assigned_volunteers.map { |vol| + link_to(vol.display_name, edit_volunteer_path(vol)) }, + ", ") %> + <% end %> + <% else %> + Case was deactivated on: <%= I18n.l(casa_case.updated_at, format: :standard, default: nil) %> + <% end %> + + + <%= link_to "Detail View", casa_case_path(casa_case) %> + + + <%= link_to "Edit", edit_casa_case_path(casa_case), class: 'text-danger' %> +
+
+
+
+
diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 1633072bb9..6f93424cc0 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -16,6 +16,41 @@ web_mock = WebMockHelper.new(blacklist) web_mock.stub_network_connection + describe "GET /index" do + it "returns http status ok" do + sign_in admin + + get supervisors_path + + expect(response).to have_http_status(:ok) + end + + context "when casa case has court_dates" do + let!(:casa_case) { create(:casa_case, casa_org: org, court_dates: [court_date]) } + let(:court_date) { create(:court_date) } + + it "does not return casa case" do + sign_in admin + + get supervisors_path + + expect(response.body).not_to include(casa_case.case_number) + end + end + + context "when casa case does not have court_dates" do + let!(:casa_case) { create(:casa_case, casa_org: org, court_dates: []) } + + it "does not return casa case" do + sign_in admin + + get supervisors_path + + expect(response.body).to include(casa_case.case_number) + end + end + end + describe "GET /new" do it "admin can view the new supervisor page" do sign_in admin diff --git a/spec/views/supervisors/index.html.erb_spec.rb b/spec/views/supervisors/index.html.erb_spec.rb index e79f681f1b..786f6561c3 100644 --- a/spec/views/supervisors/index.html.erb_spec.rb +++ b/spec/views/supervisors/index.html.erb_spec.rb @@ -13,13 +13,29 @@ context "when logged in as an admin" do let(:user) { build_stubbed :casa_admin } + let!(:casa_cases) { create_list(:casa_case, 2, court_dates: []) } it "can access the 'New Supervisor' button" do + assign :casa_cases, casa_cases render template: "supervisors/index" expect(rendered).to have_link("New Supervisor", href: new_supervisor_path) end + it "show casa_cases list" do + assign :supervisors, [] + assign :casa_cases, casa_cases + render template: "supervisors/index" + + casa_cases.each do |casa_case| + expect(rendered).to have_text(casa_case.case_number) + expect(rendered).to have_text(casa_case.hearing_type_name) + expect(rendered).to have_text(casa_case.judge_name) + expect(rendered).to have_text(casa_case.decorate.status) + expect(rendered).to have_text(casa_case.decorate.transition_aged_youth) + end + end + context "when a supervisor has volunteers who have and have not submitted a case contact in 14 days" do let(:supervisor) { create(:supervisor) } let!(:volunteer_with_recently_created_contacts) { @@ -31,6 +47,7 @@ it "shows positive and negative numbers" do assign :supervisors, [supervisor] + assign :casa_cases, casa_cases render template: "supervisors/index" parsed_html = Nokogiri.HTML5(rendered) @@ -42,6 +59,7 @@ it "accurately displays the number of active and inactive volunteers per supervisor" do create(:volunteer, :with_cases_and_contacts, supervisor: supervisor) assign :supervisors, [supervisor] + assign :casa_cases, casa_cases render template: "supervisors/index" parsed_html = Nokogiri.HTML5(rendered) @@ -68,6 +86,7 @@ it "omits the attempted contact stat bar" do assign :supervisors, [supervisor] + assign :casa_cases, casa_cases render template: "supervisors/index" parsed_html = Nokogiri.HTML5(rendered) @@ -85,6 +104,7 @@ it "shows the end of the attempted contact bar instead of the no attempted contact bar" do assign :supervisors, [supervisor] + assign :casa_cases, casa_cases render template: "supervisors/index" parsed_html = Nokogiri.HTML5(rendered) @@ -99,6 +119,7 @@ it "shows a no assigned volunteers message instead of attempted and no attempted contact bars" do assign :supervisors, [supervisor] + assign :casa_cases, casa_cases render template: "supervisors/index" parsed_html = Nokogiri.HTML5(rendered) @@ -112,8 +133,10 @@ context "when logged in as a supervisor" do let(:user) { build_stubbed :supervisor } + let!(:casa_cases) { create_list(:casa_case, 2, court_dates: []) } it "cannot access the 'New Supervisor' button" do + assign :casa_cases, casa_cases render template: "supervisors/index" expect(rendered).to_not have_link("New Supervisor", href: new_supervisor_path) From 70cedae02c3dfd327c2c773deabb2300c6c1fc02 Mon Sep 17 00:00:00 2001 From: Gustavo Valenzuela Date: Fri, 26 May 2023 15:58:23 -0700 Subject: [PATCH 52/68] Pr2 for Issue #2698 - Adds a task to backfill user preference sets. (#4833) Adds a new task to backfill user preference sets. This is needed because we are adding a new column to the user preference set table and we need to backfill --- ...0419224330_backfill_user_prefernce_sets.rake | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 lib/tasks/deployment/20230419224330_backfill_user_prefernce_sets.rake diff --git a/lib/tasks/deployment/20230419224330_backfill_user_prefernce_sets.rake b/lib/tasks/deployment/20230419224330_backfill_user_prefernce_sets.rake new file mode 100644 index 0000000000..9e36e18d8d --- /dev/null +++ b/lib/tasks/deployment/20230419224330_backfill_user_prefernce_sets.rake @@ -0,0 +1,17 @@ +namespace :after_party do + desc "Deployment task: This will create a PreferenceSet for all users that are missing one" + task backfill_user_prefernce_sets: :environment do + puts "Running deploy task 'backfill_user_prefernce_sets'" + + # Put your task implementation HERE. + User.includes(:preference_set).where(preference_sets: {id: nil}).find_in_batches(batch_size: 500) do |users| + # NOTE: This should ideally be run in a background job. + users.each(&:create_preference_set) + end + + # Update task as completed. If you remove the line below, the task will + # run with every deploy (or every time you call after_party:run). + AfterParty::TaskRecord + .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp + end +end From 3041d23ca82b3e6d18c2792fc85115eee2da0a5a Mon Sep 17 00:00:00 2001 From: firelemons Date: Sun, 28 May 2023 08:52:28 -0500 Subject: [PATCH 53/68] add patch note diagrams --- doc/casa_db_diagram_patch_notes.kra | Bin 0 -> 511490 bytes doc/wiki-images/casa_db_part_3.svg | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 doc/casa_db_diagram_patch_notes.kra create mode 100644 doc/wiki-images/casa_db_part_3.svg diff --git a/doc/casa_db_diagram_patch_notes.kra b/doc/casa_db_diagram_patch_notes.kra new file mode 100644 index 0000000000000000000000000000000000000000..25d20ac86a4098fcd7b9aad3968b6dd5868368d0 GIT binary patch literal 511490 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%0DnYG%yhK9l!u|hO3NhnlyzN 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%0DKI!X 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%0DM^7mRSLZCQeeq!LuQ>zNCY~(Nu7N~(~ zKBrPD@3F;anom`m3wV~WLQ4vNz-;yziE*|YuoK8G$FG{1YCfy7gW}vq>kNs+oc)Ac z*SwjeEGjg+!|!O`@b}Gm3X~kW%pEvyD+_$hn!W@rbWjKvR3hOcG(Au!8KeK(n}%VuV5o{o-9!*T`7+XlkBzH9IpEo7VqGz2X zAJ`sx&x^8N=@@Ng*clydtv6r(#Iq8l&m&2*&NV4K1}Q4?J<9vRde(d64;b_{-S?3x z;l=b~F~fLFHc3qYDdw^F9b)%9-4xrL3s{NQ96&>@8$+|tsN=CgChc0V?|a?WY`TqP3@ z)8Y1KTYJTMGmYc399vhMeAh5E3wh5k;lO!{ysixHhb}fBM zV&R%-YveE*ppA{NvRzPA$-4L{!!U3SL@Tz>FP@9tw90>5IxPjB)U+XI18rq1$xe|i zj4HU;F?bBb-wBrsb64~i+GZojk|9nm!GOoPv{oeW=w$`(-QlIOamlC=)Eg@~aCKVODx#6m=(z_Zj96xEI@(Cgi zeR!wh(o#}h-Yh*(dK9ZL2{*Ske!|@&x`HKe737hj8}Tt4bga~AmVa5RQn42gMGv?ut)(1Q-1^4NzsMj9Vjz3|N>tlN zkKn)hR1u4UqL^+V9|LlT?3DabgC^o@bNZD^jf#pI5f!%}?sz7%e9`Dg6^>-(ztV1= z3OQ8`SRR+#SE+c|o9(wma9}f7sNYwok9Xn(QZp=wk2EwJ^;2XI_oCM*+>M=3=!Jq% zm}8BJfeV+|?hqtP9<4ZR*1LOQ}dd(AII=W1MeL{!OWw&S$co-b_y+eLn^GpV; zgH^u@bNDoO>>H>1bUHkU$)yrkb}c|RmkP?DZ_e1soJ^VV=Uy$$(&ZboaP${fXtY+0 zw>RAnfM;c!*aTtEs`eB5&--fDOK0$3%8s=6XtmP&p4DEJb_psf-W9;|uRp(nvdRj8 zNh!w?j@sz*-eas3<^vfj6s)WSYh)U!K+TV{gO%$N;@oGxajYh+z*BTmrn#r;=Rzm4 z65t~=q~!a=F|;a!R2d!`nl|R<^`&Af=L!2>E70Sb_k@A*B!z(2+4#+VmzNjsz8F-h z`w-9Dhlfu`Tx6lUihunMIdULu&M)ty{Wl@u*Aour%J-@RA`A;Ya60~;z4I@vZQ!0W z8(#EB^NuB*rs-=vlZ*tbdO@UAPi5bnYqg`Ik743qg;zY>T~2q%TZNAORd%T}^w$$7 zXU|>FwffOEtDW?1N>5;0#)2ywrVAz9%Lb5VS^LR1e1fGGbgOLJK>5uCyo%{@rE$9_ z$^$b(;tNfVj*GSL3Xe}OTUSFwQ%yYIX7K!9pUhp3rlGE`WSK9#G!S%r%HfC61hvsg z&Ahye(~fr=$t?r zrVS=-mj^xhS5~njI2b?W1S7w6OpCM62O;r66xD&+=Dc%yT(u+LXeU)3w#5}#bxyEP zo}cEo$wW}a2j6*23_2`-x(juqE+`Q6NGo(wjwnE_-uf=aQHI<4;DGrO;Vw_I9p$d1nP z3w(6bm%XxFb_6m<(bRXn`9b#eeW|e1VUyU%W!1ltL>V` zjTl0f&s5hR?ib6UPq{vk#B!U;?Et#?dCPgen4fU zQi7^-%qf|RLl?d-4q9$z?2!Ljx6Z;>6ZSnp@Pz`=qZfjEvpJ^*>2u@e2!wM zz5VAl0&YiT6Pno;!{(jhH}zk3;KjRZqA_}5BS`Lfr zsJFEiGy>fF?=W}%UCR|8ELrCuG*y4nZ>G?@xx71Cz&tB@@vtanycSD9K%nDtRhEo` z;``p{+;!f`4v@uDTiVZv1bJ$X>z+G*C1TpFw&1>) zY8$(_Bt@g)A`%nJ4;+X|1(u*)-d^|3W|kTr#R>Gw>2GB7xJ{OyuQVgSJAe3U);Wf^gvv}QF&>dEa+pIaPxh}T3R;UjpG?FftM{{hj z;%@kLtBTvJlXPX@-;VveoQNPP)L&Ik9j__Aa@5x~wGX+cu4;dwlG7xu_!mMf@aGpp zs+-)mOJ)d_VM!Iu=ydA z-WLTJsH%_{z4Rna-Fl~c4Td5pitz;`Uty@#P~+FVw zeTkI4jhn**V04?q+q2aEmofhCE-w-$qDM`Pq!{mC6aC+Y3tSNqgsfia*Bhq>E#-e} z0ro{v3{rHn{A;{&%>Vv9hzLDrUr4|g&bH{yG5_~PgZeJ}3jWnW4OJ2#{$D4&d5?k; zcyjNM+5iXk-=?gJ3L;-QOpz+-f1R*{H%!`k&djJ*=szpMp$A(zU1J;{VOjkwJ@$XE z^P5oKAe`=7+Xe)O0u8SG-vgH!K|0mnpf-MR1lzfGwqP3~p|&7+#TPjW=gFfU8ZmYP z8=D58eqMc^A+n74n=Xe6J*&%!a1zJgOsrx<1zUnl=e&p9;e?`~%W!N=TWs{*U$yGIg(W&G8Z zmH#UNdp^NN^q2+&f0aY~uY8!y1qse`Lt^58m#xo|f{^qO1Q?cy|CQqb?;xR=&P`6j z_^$&o3W6ApyO}5X^Z%y!|Fbi0DM`Rn-z$rX{`){+XefbWpPe zJNeSG4K*_}V`OUTDl#-GL=L-)$$P85-|PNj39lQ$7+&g(b#9evSu5FU-#qR6s=i== zX;_FZTlb!K-^^U1z+Cxftj2W;i)UA*)T?=12)+5XoYObE%y>!OoS^M6h94}I(beQ> zduE)(n|5`TfZh#o_`W(NU8et~Y>fpc1)tMHrC+~(Q7(k@$sE|{C{ya2 zPVF!QKVEKGd@i>nI32e|Lrc>XoGs{^ZM62f`%8T9fZT2i)qKh4;;(ZR9v5p5wb@wZ z0|Cpv8gw{Yi!>UjPE2VS|A(%(42yFK)L1_0{iI-y|Gv4C3XzV+&aiY64os?92L!iNx^ zOvPi*w*^q-LLDW6+ihJNxlh{H0YX3PVUdZ*#)8)p>$>t!fUyUQQ&x_APVQ=Lxi8eK zIK_(;_Kgz^Xy}}EHt6@Ni6-Cih$$eY*X2H&{6v!@#6k8|{eDqQkpoFc!&dLh#IwO2Ca^V8gs&y&mzg-{OY-nkGD7h@&OD zH!{p{G0~W=sms)gB}JLx!LxwFxcq2$lBu^Re37r=r1Og{AcZ;Rx+XDHKx?LP1Y zr5R~iwCpZ4Zh<;?kYcHRtLv5HmFmlANJ`Bo0qi${z?M#8Bb}cQSVY3EX97-(=&owJ zcWi+EyNImcG^5b;?JS1IIm{TX4$z01 z{q9zp!k;Pz_cn2&sD*_mhr~x3>(jeov0p&=<2zk9SG7w=-eQqxrq<`Z4ayOaJ2_ah zR#utM=s{7wc9r~DH#>&++=bhU?s>eXN(A|f8FH*(;{Y|&8s*~XYupck*NCx}5jZl^TXTU9y2 z=a0vgar?!HoR~YC7g0qMSoG=gxvDHK7%!J$jOU;uHo(C3@iKM{nF<_SCb8l%S2!UH zZmZj=TE sp&nqgTCa%3+xx9Oew#y>9AepbVo?8SA7w2mH*Zr;w2W|38qyudieF} z=q2dh-Q`shgK~Nzc%;w#+b`%ag!RvbMEABp;K0_19Huk1{eO^-`b4{ zwJZZa4HCjfT4mWR#X)89C2HItPL_(kn|!lnvy>mi#+jWXf{o;(ImShsw+Cc3-S>e^vxOZ5r3(ot=-K-_>H6feYT?+F{a1={U&C&(j!1>!D%MJfi z>Xdx>2cPj9MX-v8@uOtcl>-U`d504XZnd{(_Q*I;4Rd06xVNoYV2cW{!BGH68j2(D zZMUrSE|x_=@GqgTzuci7O?_$CA~U_RL;E2w(dp*mr2OW0k)PynKS})IV4aA__c!7b zos_K4@oG1hvvCJSQ`+7ci|Ke!a4@A>*}ZH+>mBf^E9Ym62iN{i>fDp8?gQ1OyU$x7>L#xj%ImYSs;XPN*ql0KlZZ%bFgTnDn`+j^ zh9vqLvHVfs!;cKfLFT(@V6$5H85wtYSSg~#Grw9WI}%MoCS*YKvOAU60-YfS9^{FB z2r6IyVLFzYkml{XnpzLo!U{8t@b<1ciV{Hk^tqU$oxI~YH`YYX`;q#&-2sCE0K3i8 z;*UbW{(=A6U^*HLUWgIUIl6*>N)2V!b6hr^7T3AEx`Jc)t&a%l#x}AG>)BnAA(frA zFPcAb!D$$WGI09*+FAOUL-tC-(>0O8_JO@lBzVsw{^J^gxV(wcUX9MRg$d&L{>MMDUGU1# zI+xKY`{hDz;nBFw=r4!STnQ0l1J!$D@ zWeIl^-^{JfptNh5Zs|0kp=1p9_GD=qfUbwVGCvUof40IuzrwY_e{yaR;d|nJuBnz_ zopl@its@CN?s}N~(EE8ImP1F%6gKlU2j;ZGToQ5Z*m&!QRS%MKZFtpTQ)S6_?+z!N zW!VukPCKi2YG<}39BXQ8n>%x#N<@|{tS;jXu&|8FBmJJ%nA(7|I0Hg$lT(cNb}JaZ ztDfulO_wbuC8a+keO|bF`}#NYP*qmget!5|#!Kif9Pj(`?#ub?VK)V%)-?t?`gUn4 zk|W{YI4B?SJizwpmSD2j*vonq2;*-iw;fSzXZ#xFG$M00zNW(1@tmslV-L`=wqx#e z`wWLZWP0p#X8x<-KH$>H<#gq9vBe>$_x;BP@PdED+jHPIw>8A|eqRKj`?tCMqa!iI zvoI2#Yko<3S`CPcOdIzPB?)BRHhX&Q6g^qMSwN^IT$gK?Zj_}a+YGB{&_dZi(UbXK zXj!cnBlqaE`hXM~cp`oKUK;Oir;Pf3u=%LtjH#~e*esfn_&^*zY;JqttP5xocuhQ^?A!KVDxrijUs2!Gv+_7)>j%>;hcD1Ca|ZA#H`J`$j{wT0T(@*{LW~q#DVaYs)&|zI2@K?WAc#Key||Wg%_WEp@??z?Ijh7Ejo8)MMK69P-AZLo?GaW!fd`$_t?<>*Gh zYq$Q6#bbkyTTtLzMVTHw2%nOZ*4={KaN-o~^t7qGi6F{gNpKIi*LKAE&7u_#bR#U%8gK3q!qFRW6dR`@O-C z+iEUq8B%yK*L^_fOtWi;(X+CBz=cW42T;?Ze&}BToAvbfLyE{Z z^a!Iymd^#!XFz(CZHlqst;y{W<~3by3_nK6*7+T(SMGfrVz20P;flokxvD>*q`ov=E{s z&1BDAJ*g)A?~%dOzbj_0Qk(kJ6tN0Pv1L>SahGA*S)l;O#+A9qL=>B$-^hhgeRvOu zGkfXTiIPY*X*b`^JYC!Assz`zv)f2aOu`1TJ=KXE%H5PPHw&(8y>+mDg(~R_{c={(3;=B>uTdLRN1uvRaiL^zs1j$L6gM0e{`IA?&F|TYeU15ORYY##10lS zC5k(G49f9cQYsZULgn`?vjvnf7n-{i^`Jt=S=ejK41fR?x=oL7c1|f^n7lt=CD5l* zPg(SWdFORuDYf`QQie@Pi{dWOkv(Rx-rDJ6E!GSNAWBh~v_dYQb$d8`9_h&qIf5nQ zbW84)Q;i59IU8|^ec6(d^uMu;b+zH*N#xTbloR!1@sGheSQ8oXaHOeoR5pzZ={HE5n(~VRTCu9YX)@OYB7wZmQ zJJ%6U21j-u`UXnZ=eU|sPV;^Dql$Sc6>iU+d(w36tam#!hQGP7+<(v&_Nh4F+5)muX+<th&1OtB}el=yS+=ciHOqUo@m2saGL4hS{!YAswD@_(tWeQyGPvzU*e$*a_c( zbr)`FX=yy&7L7^5@zzeT%@FCviAWs)&;}VHuMidn! z0YFsx0<_`4z-mYkuCjM4opLDYI`I3i>h{VKv$gq&CMu|Wx=ktUZ%bw0V#Fs7nP@+) z4fY3UYFHEQ1`PK!0Yzy&`up0xT%+|?xDjYf%0=!*bVQX>po@r^5p#E8+QQ{R?axn> zr`s)7Jy%IkrdivU%)<}ny^aj9b%nYa??}sGtGTw{>VmJt;bS`MLwhitF2dO4Kd?-e z+SsP>D7^dmN%t7BxS!Qwt~a8eaFOPaJ*_#PI&wUeab+`lV1AW)zknCbgHlWvg?X*Z zL4$J4>ddEOzJbXN9 z>6QxWSQ2{Or>E%@+q){fGBuRH%lwKGG&ZAN5W_!AETqCV6}@|>pHJ`ND_F{pI?A>e+ya*oaM zWB$~i8!Tk#XTF>HWiWBb){BQ*f~wzZG51=n_?;uv2cWXFQJuw=srSvUy2kDC*S7nu z5zjEi$LRXHSza=CIIB0H4^5$=XyP|*=shzl4v&nvpZ0wbUJ+GBNyr*F9v;AUsUlko zlb<}xW}6ySSZn=z-;5BJNro3O35o&umoThp^`bHALuZ202|?|7`tQiIKx!vzPm4P3 z1N$kB-1_910-hJQtHa>q80dk=`QfL7p+j~WN>CS)n!7`!tE_$Q^BPpDhOu7N`RBCc z!eQn@!g5xMG!&~Bqo}w-Q_jvPR}TE=3ZML2R8~d=%2pwZxTcC^5gX)6ui6jyPnspG zlyCWD57x#{iS#YyYc@aqA~n85ws~__3wUK$H>!82Y2wT>2m^RbO?C`uPHBcVBcIG0 zhsGx~y1{7TbouGJ9LA^5teb9&SjPA*=J`wKOKq1uJa&6JE{7WWNjRgcI6qnij{O;5 ztt)wBwcN!F?3ZhLcyJ%_!)8~!N*@Ng*0xO`sl{SX2?k92`t2*Rh2}w5WMjKu@mrI%HUQ)%f7H|J* zv9wyni+6X^ho7~zhd5b zcNk;*GR2w+<8>Vm?mLmL!7`1^RNPE=U?v7-h#7M*CGJwsaZ^{n`B_TjyPF6q$|M*e zi{Rb?{>JQ}=Z26-sl4)ho4H8eq)PK9TrW)eF^Aa4*HtRR=i|@r+g%^pzAi(1MVT6P zUg^a4MeDHIn)`#m9bG$Gs^^r3b_r3aghSo4%~&*_p9I-X=(J3faN-Ccna(# zYX=ag0)JkvI(xVV&Z7|7A+1a`Sc3_qouszjh@+t7qw1`jw)mRu8$dw=>S88a?Qo{| zF2Y!9V0#6wen%&#$&~@vJD1jGZya#sNN4Cro))oKW)YivYbj88%zHCrB-+D6B{*UA zFS?|J7y!d>o7>)^irIOKN)VewIoq< z8@~ns?g3ae952$^Od!M3IB4vsyNNI?qgfbZ`|C-==N5NFoz+z)w>2H!hlMzod&lSs zBnYk(0;^ST8;ZC+FcVmT?Rk3y=#VJl_PWJ?etBX3kA&J`pswvI4E| zcLNtWg~I6X|IK`@?emh`fnaO@S|Pt11JypLSDrwd7vJH&D(7GUNTAhds~VDj&voy{ zzV>^&yx7j@c>c6bv>NI0_S8u?{IFQFUTz0>hC}^gO@;?9H4Sg`jG?&>DVyTAebXwV z-S@4xM9nQn8Ghajr}IAL=8%@uV)R69MUMt71@I=Kf*P8g(h=TLgBjP(lMhYNH>%@2v@ilfSz!kEF=Q*FC#88_?SrWVITB4^ry z@yo-4(jsNA4*l2A>!3_?_#}oFwApHUtu2=qnb3<5oMqcDFCL5Bo3Ks@2LS7z)5M?y z>FWiEkafZbp!V#de<&NGnv8;x zHpT2IzfFN;k#@i1%}^5P(@*uTyb_GahhDFQSc~Y?_g2I`kh$Y*`mbr?%;iaZ@H&b7 zj!sNp?Oe)rN|qwOZSd1oHsbuqC)DI8Zz9MRm2z7Mc&oNV0rkpy>j$(7novtF&0xlx zaqqYgqyerQ01))0?^})qd>_wCPEGpnl$OJ=v;^L202_L;Gn1tj=Aku}3>HD2uFdAF zRESY`bNy!fns_%e!@Pw|ye`fl&TxjruwQT$sNzXwVNuk__%{+Ko_@3SCRR^P_HPut zU!huWPx@j-1q>giO-e=rf3CoRe(8oMtztlU&)e(NP(Ty9@t?dZ#4x zrjw$w@yF>cCnY6xT#j2syJnB3Qi4h8v@`ru3*U-bw{>5P+P%^IG3Bot`^PYHa7t=N zv8lb!rc0KyE8K9*86r_Kg?$*n(8ckHvWI|bjD zO6J1zp9+PC&RwYN`P>#uIS+ZXiACU+>y++~ zJwefH!Kzqc=Tg6c24n6@owOE{^|y!mz=gUOLK+{*Co1O?KV_UuaG-Ygi*)p^*%UMt z_3l=NH-70Vww}mdo<-)efr1)WXZNArgV#Ghh6!PX@LN5Mndaz1@X}4PHVWC=x{MaP!l3CI1RBwwR*cv@C zSIU>}_EQ+N$UP}c1lFmj-5!WE0Amk6ZFKS@ z(f@D(_RA|U<`GdDZof`?;9|m$*!sWHYsIJU{Hjvb1!bm-L$*E3FO%(F>fR4?AOu8U z2)tNSPR1!6B*V9yp=$FHarb)1j++4+YjH2NWgexv3rpGP1HZ;z&`33T+;b8?FeZ%| zf^UVEeduh+sOgQR2dj4>~opJ?q==UZ{_3-Npw;%XkZ41IiZZTRAFJb!ZeL@drrvPyJ@lI~a3qVEXG*soKCjSfX{2@3HL8qr3hfN6dgs0TnpRH(~EDAqR z4!Yl61@}jOTlamrE*2YBi51L1P%IfnlmX3DJVA8f`F=za^!DvM^>TL43NxU*Gxx%gH!DcVAjnTTeTh;nkX| zxh#wcspwU<%=Xn$@9#nEW05MXbEeM2qLz|#hGyyNrwH2mJiT&g(u`(9=o9;GT>mPy5j0^Z2F{#5sB?zN)aAgr}+2OEshW}s4D(WtA+aC&i|Pt zD2S+%WC+(n^@B>u-*6DYKaKPY325vhF7JQSGX!Y!tkY77&&%G(?6utjJC*?YDnr{cZ7Aun&a#lFvv@P5JLvb8>Zk&g)J7+IX1_I-+xXR2>va?kY+6`^V7=zBktc(*ylkA8!d{Cj_LmjRl$Qo zYc4^qPyf4={ns-{(^&}!$z^WPFis2-0YKnpLP)ctwPfk2|2@_pKv0(_ zJ6!|wvDn+cx`JSa2;WUi*O*8%2IrW*ycaY547kw%b$kHt=^-Eu3%??R^qe@22*g++a-@-*I`o(mEX8`#?Fm3nCz!&S(53chc5E>=U0be8)& zQ+SBqO-)u+8cT$C-iNvbSG#P<)+?i6{n6&E7&HY1MU(xjj?GExwdCLC$A}AyOS4D( z^9vvQq?3d!Z#pIR|0=pZK~PC)S{8yj2Gj2C%rD$zrJ2%x`a2LBl8~C3MgNZ~v)Lg$pHlY7lK=Yf|7Tnk z5W*Tmv&esP#4tX_l!~EdvFiPAb5KG2!xDqdQz7}+8XDt%gy=NJ0n@erce@o|$n>qg zGDl`E89O~u#IfJ*7~bQ zD~Ls_S_P|d|DQ$SU+Kf-5Z03p{=W)PIR4{C$3IoL|1W|Q4a7Z?biVx8iuTXHXoFR` z$^Yxpf6g}iw-wHRt^WTcN^F zy2p=6o2x5GhTl8}IsQSQ*RJmj%3*QfI>HQq)-O^C!(}@`U{Q8jSZbPd@K4~rRl{bd zn6kaD+MnupA{*6kWUSC*F1uYldQ}&F$-GJHN$Th1C(i9Y!nfg5Y5v`NP{L^wQJ$CY z=XLLeENZl5V!iaD-274mKKbE$nyH#qxypu|a=7Su*IcZxTz5eb5ncvcw#+XL-gbtI zIKbvWdNL;X#62fB29)`7w!^k@bG%isHzhy^|1h5_Ty2AWqNp0a{-^ zD>OOT9Kx7}?FmL@2^U-4Qk#X1u~H~B+dNv*K-8%pqAMSDP|q4hbgeIbQ=Lkp4>sMt z@ALcUbEBiGqJDgAUuW}=S@1s^$y_Q6>e5J7s*z)}y*MceUyRL8D2c`!>G(K(k|CuXWTxTM^cD3Ui&BD^+_LaOqMM?(KhFVysNoOFb?0>6r z3Aw@?Nm6MmMoVKmYVl|FDq}G2^$|P1FQM+oxQ{Y=q+v0!Dm(P1mZsr^y6yk9 z-lsJ%ikh0*hF-B>+Wc5MB@Bqmz|NKU!R2ZTGyYCj!KAEAhPiBA8L->h2zjYp$hXkq z)b2U4)E~~JC+#OH3uN)oD@Sip5} zE#Y>$tf@L%?*oAEPJH3hPw_Ur?`_k$J>K1-Bp$5Wq|-DSj-X$kvEz*4-FDCIAXqQn zu~hU^sFy?~V%=8NI)1AWl?mN`eo4!9>U<%KPu@0|%t|Oxeh;I*UAfh{2>$eIbTnOx zxEa$UVAwC}MCa75?(2MsgWqhemH$p%u2t#R0cp+uJUIpS^71NLToE%n%Scr|TMj{| zP%cBv+L{iZfMBXZcUkBcWRqCvc>D3_H-K_#Xl56+vZ8acQjdhq`11=74?M&84U<9V zKb)KkNzwwGoH$7gfNuXIJN>fPj8<1tN*+9Vt^1y_vGVi#=;)6p%Wi_Y3j|Azc{;RX zrM}OAA0fjwCF7!`&7VG*flS+2|kACJT{Dt%%GCOw*z{E zsIF~!2$As`7+>C<9gWXwx#L}{nZc-lqC;!J zyMc>su)HB?jsDS9I#dLvMZh1a>q&893Q0~b^Jt;s`e@3NZY{-^LzhuYfwIx&z7urF zfzmW>ZQhYoN+;(ZKv8Yx2c3ft*?_j>OsE4RShtx=jI8WrnIWo13P@OE1u9*@PYodC z<>k>emy^%kKfOYjv2@+lcbH zxTwh~2EJ&oMGjpnFf}D_+S}Qg-smfD z?l837jjJT5e3Ff}Ty&v;;N&iug4_TOzlS;JVXuU+7}B44y2~WhF9UF4_9+xgP_M5z ze4dz`pmoOU49C}JuHX3u-9Z#5goK&y&d)vP)*Cq*uaC!HVW-?w?<#a1xS0^Ty0Fb1 z*WY7gc?u!kSk0I9ZRQOe_#eKfGv8XTvtS7)@F7Bckt6RX;ot~9dPEkF$`Vvlqex}7 z2teE>R0$Bk3%l+pzb6=wPtOgGB}-0D&em&x#9?{#MF+Dn?{&O27%oQ=n6K3#X7CU_ z-GT#?8nN|W*TX=(O*q2`np0}Yb8JL1U`&;c^fb9mJ}vkhFb+4W>`?FRtzhcEIiqe>h!{>Ec$go| zB@WA1#CPT&cVyXNpYWd}&4XW2GPFMQ4f3ojZfVz=$_|bk;q&n}kU1P9t9lOr`#5o$ z@MYV)VzO`EKgLvH;rawczTu5XhT!pCE34XGRd8|QH7E}mMy;|4hiZS@ciSkOW9;c! zg_mD#{YUr__=As9?F${5Qe_TgT7(9kopmBA(Fa6fVY~={?3664%XF`u^S+MV>-1HdA%IKLqH}=W+9r$^& zs|R$=HwnaCI28u-_>@=#i2aW-ai`gO2OLATs^d}*7P{=9t;={f_L}gJ(_3SyY;xD^ zmJFzPkITCoUTCLgTR8yime5Hl#Tg}}Ec>*NKz<$CV0xwlItqR+$+5;P?@PqdWM&MH zUcCtTRSrlcL+zHzS>?Akj|;}+rykV7ak^nZ|JB{ynjfmq)3u^WW+p2dqB{CH=PFq3 zRW392A{5}#{yhA4z8OqJN~801W`E^8(AK<;&A_VP=8mSk?up&C&xWepz+SiTJoM&+ zfQ@a_)&~jFi+o_`E8pAKX~b zx3=fnR>#M&+&^*RgDNY*YzBEGq;n6(xyJDa0!H_f=(`NM?|WL1{YvXdPP}_OoOoQ! zgL%OCzk?p|OWs-+mkPe#MYX{Tyj_;2mZIWuX_#+hxrKCB0&P$NMVJ zj!&y03r~lwTuu%r2WYAV{z;AK(A`3eo27>{a}nXEH09P;%zk#y!9rcoF&PQ6hIU#t z_e6X2odS4oeF;sRp3$zvo4?d*i-C4#qcpsFpda*aHhnS10}|iuh15(b`dTLFpk=H=@YO6a27ZeN(<-kvk&KafV zZlWwB!@>AtFUBO}>0DuuAlm4rVPe)oiybe!t#LdHseh+Ydvk6AvhKu5$;gb%5)RXq zvrPmU4@7=p_=cqZs~tChep#J%v&1Y79zr;x@(6lq@li@ zhe5Ir7>C@MiEsKY@lDK^_--bv?Iq35!j9@+Fm(6iRy%-VyM+l(SSxqF>1L`6EY4VU z{kn_)*kbvDy5J;8>tzNqQ{mihcoEHU5+AQnG)$2ro2>fL-|+qAxTJmbY;vgMfPnNG zTm(QrGA7Vk5yjxc*!mRM=l4vsWfT{m?Y40+?1;MV=bmyoocc0i#Y))Rls7X|a*|{0 zXSjG|r>dV=milw%Tk8IDG@+=T`D0zNdy4*>56nOmk$R@C^qZj_$0h8QEqt&idqR0h zm3JDJkA!`-h^H3%9=#t-^%No*1GqD1yVSO6e91jKB@{V#E6S*EerUnr(&=(#m|VU> z>|n{&zIpX@X48<|c6aCZR+g}x@m%D7bV^29FTKy$ay>kXzQ&LBM%iyN&kimc$`hMM zW(o)Fy%dh_q!QP1YQ(WgdA4+P>g%^SLe25NF}>ej?r^wIY{P#yb4>($ti8-^<(GK0 zO|qEHTa(+aa$PgG5LQ5pG0n@5tVsc@g12lUM{oZWkIu{$czG z50|MJqlJig0We#Xxiat-h}-L=v(4bbkZ{t`3dw7B!5#D2mMnXZh|=}^faDOecWm8e zJ~oif?}O{)n_RfpbMom(kVIWX1eX7?L*71QuXjo@hRju0(dpQ(U?TggXm?9VaGN&7 zjcM(jv6HqTKV|tjfZIvu0GQ5NBa)XJ$%;q&@k4R( z+*ZQaZZie42}n20p66jD@qPYD9Fs^unPlBhRDce?!DCklX>f(vb6uP%QB{7wiQ_yVSdZR|ickr> zDBuR?PbxIES`m}9G<^8Xi_`9TBPb>oBOU{Via30=Lj#=21)g?zOJY1P2$8VL6JaQ` zaB?k|cuPmT;2QlCN(CkRNCRfbI26hs=85w1v1v1sxSswTCWa>kpg7{E%?#pY(@pD5 zNn2l#OOYH>1muK3N;M4X{ZptvH&LU0PaJqzJsBnmhjMb^B;R!^fMAxvZ-F`7PwVt5qAm`q%i0zVeh3 zQYvS!Q00vFy0C5}_|AHuD@w*ikB0*bJywBQOF6Nj=zfcPF%?m2VJkKu``zK{#1@?H z`$v5FTyr_s7TuO$?svipBzL@8?j;i@~5^RgQpw0Q;XoJA)E7W(qt~P0vGxZ@~yH`+S_P;g@pe zYqL?g_-o=aD%Wg=*ScQLJx}2F@<=}S^N-_kg*aZ;K0Gh9_4Z?#pS3yca^QhXs-~wc zHwbxm3#2DcT(v4913f!K%qM4?oZcHB`4%#%uVpF@)AL^-dr>^uWQ(emmbq*0=5OU_>{(dn;JznwKyyn~ZA&enuP`pT)UHtj=T}K)dK*THKV#|5m-$x=1=Uc8? z0Q!oZc+1L3|WWy)0`u%FsLih$9(CfI@4OB=m<6Wl8Cu2t}_@31s2>-e(BP zY{&5iWpE0{IX2kpa+ePA`k_V;3CPLr2ulhs3Ge<|@8$em)zsYFoHY2-=mz$^Vcvf+ zb_g2_gsrv6@)P6GJGSa%FPs#`YFu#c{=9zfvMzqNUI|dI9qiXL{AM;m3o-RFBVw{= zKifA2$54h0`Myc@|Df*tCjQsx@=8Dy`a``y%*5rJND^8qByYwhjELO6M;AO=-7}N zbkg|O+L`x{R*GA!dwZ#7N~UVKH9QR*TVu_yWR3S1)Q1k_B_qQUs)UNB1>}8#EKcR)qX7<+1idDjZ8N(hwKY|=*!Au0 z%7#iFnI}hde8Ssqr2T}V*50zA3G!d~Skywbxx?g}i+t-Ld6%!gI5}aoysKl5lBQeg zB_<~igk5uPdA-31i<=391<$gMX~&HP@kVfdsHxC`AND9^p`<+Jp$}{$UT~jkgb!6~ zbp!Xk`8;w(&X72n+fU)dXPP~+O`SPdySgr|XJPMh{F#mRFXHN+scLU2ec6?R z(n4l?@p-fvuW&Jf1xW3crQ4)0SkRD?@qTx%$J3HyCa8qm;f6gw6<&ecM^6K>dutgy zR$N@*7OQB_T_tW}Jxun1sBk)SGCo(hz4DdwcSa=J~(qxdP zn1wc*eG zscK=rmQ{zbJNq&2x6~4w`m%WDXr)%HOf;`I`nO<^&UiQVYn-V8-WEpxGy;Ubu|k!7 zkLQv9XqnoSZ>;i(M7>q*rP{a=3w@#Hg5bzZ>hcr0kc-{T7oT-)g|#|@WT5@8$1=MK z;-f-`Y5;NuHb(IBA>HMBuloheRaZrAo}}s{P!E@cuEJ5Gc*}#Tp98!yj~EfXtdn|#0>#h7?r@ zx?fwcHXh6JP^|@bygjKRs#8#i#oO!S6;4W&`=ndRnl-p$(S*nMiSaz;j(wNPsuR8< zo~57{7dzf-pOYUy?&`jX&~i`TLsVN|Oj4rdj0r}vF%^8XoB3_7=alCHD%h5hmHJiL z0^HrvqeZdWj+F3Qa-9KuShYJeyTIA*Z-19Y@?g5^S{=iC5} zVwccN6La+C^iu`8Jg~5^8({rD;nRxsLG2Uii$UE8B^W;A2QEOe7sCS(7vEymuJrdHjh-=2FQ;QN$8~wV~ z?Il?rPAIhx=`PZ|S6WYtS68pKqBNI_)MDsqv2_vK*a~xE0*sG7*s{-;>6Pnbc$gKU zk=CE~E~+VznA|RSo)l9uA6n1{o!5ibRRn0?6IVCP6Ebnp2piQOA;FkuVM8Yxqln0S8j-vrVSpinN5vG+BWzC!8`QN z|HB2~CwI;J${_J$bXUrbtY3(4pLj!3AlMESe?gzT*zYBxaWJfOko21y%7_uPrYyd6 z#^5f&M`U9bo4$^(?6wQ)=MHw_ttBZ+(D#T(lW(_HJYa`4q6RU&)2TddKh8yu&2ig_ zqPtO*|QvcrQ+IFuXg|W2vp-k zef{mhP?v*AQ%=H;eJ|@Gfs7{ijS7CoqTKa2c7I2|zJs}XANa-%;A@fv+$@qEFAxQr zkw657!|zgy&ab90E$B$D%5>k%d=C`o+I{llE>qV(Te=l(V_6*0{iMC#XnUZ<+*~8Z zY_S&}*t6+mHPyNrWJNe1#*rR(#{fLBi~eX0LMjT-subTO?jy`DXo! zC=6!9DQpP--wNX;mf5qN47=TZvUl~(p8mmdTMQ374KI;zXKVk!7<~{f+OySQw3{Wh zVtKHPAn;Zv0r+UU4Ae!`!AIBe3|a(V%dkIZPoI zCe}StB;h8Y&PtRVtJt|;uZUavx2R=CUw=Od!`b`O?B#zN;MNMBKZEJCSEQa=-)=yb z&y6mn=x0Qp=ih!Um}^KH#oHC;R%=Wb|tNMGnu$1-^2Pn(J=FOCvzMO)>w z)}&Up(wwD!-DVd_yH}Q0x*sF}_nGP(=^S6HuR)JnYflUAt?Y5)K-Ar8PstngY~}h#^$MN-aQy+A%Hm}cI>9k5cCq@g)jYU&H@=VvWk~Y* zm2+3JuYXO!-;8bI(3Gt6`rthJ(dW#Lar6Gr&wTnYvbu*~c?)a*L96kG_C!FT?sL!0 z;{aC?f0`ev2Oy&$SOxE%<1|8gbAX!pmCnW7w#(97^u`|g-lIbRO0H~z1p5x)R=4Aj z2E5lxXv&NjFkbc3FIk6qhTquS)K~Uxb;q@%zxk%wV6#qgee(SA-HqqZB{P5%w(E8h z8i9o~UodyXGV<_4%}qE(Efm^t&+?b=t^? z+@Miw@2ru62u>1n%3g@ctAibiSoVwBKDVX`#fHm9pb>heup2)p(#uTfpJNdET{~PK zb40t6&R>>?B0^q%cp-ks_HMFV986=^!AFr&22i0^DMY*eYOTf zx|EUx8$nX>{#4A{pJ52Xt{ ze8Zcs=&741_yh!>?1j6nXKHCzG9M;EydfXq0~xkOMpGXmqqZW0V8+A4Low_{I>v_6 z65DXB>yLK#&0NnYKFK)hy4)s3CfU$8rxl-Lb{mzKD{Q*n%XRe<1#xy%RC%e$MLF=r z#+v{-l{;Zu42Yo1yz<<~z1M9M@>pEBC0YO+ zEUcLyEaJvg`^Ue1la3s1B>@u7Vgn<5HclXb@Nau`VHn9KYAx{7_qB}pEn8d;^ zpYE2nZoTWz5$o(`0B7ZF1uf6uw}%2{vYn%GAgd;%li!yT!VXn1PSggK|^o| zPUG(G8r&g3aCdiiZ3yn(NaOA#W*Jpn>9z45^ zm@oYHn1kRwe&ry}4(5z0#_=)34^UlYt;;$>z71P`>TfSxTs}C=-A*%ZXI;vSoHf}_|)^8}ZC8^z`gV0-A zx_6RSCQyOn36+Qpk*v&arUgK4vT=?Ylrz2L82l8n#Uaj(0J5QwsL7TtHt&{l~VE4V9!e#oolej&Gb@7g6;Ie z!kt9fZ}4BQIytOn{dv)(k7>gUcN$|$d*#D;0$mbUr+S@>00m7cMQG+3Wp4vXdT!{{y0Y>-J@9=F{UNL_Yz2lWBP> zwhy0YZw@O)sLToR$aY79tM$0;QnD!S=v7x!WN zCGbv~hkh1}kCc^z>nEg7C*3+6vETTqQmKa)!cFNv9J=^VCwA$O(K&)rHE$P}#t_2z z#d1PR>XnUIy_0zJIt^jO`nB_|*CRwE4Zf8F+SH_p;xa3D1nli<2Xf-y^ww)o5BXSM zzXTb@yRCLb6>b&9CXubAAU|Px-|!=ji9=rw24t0KQWd3q1khdkZ;tp1|fN4Dr@e!f(Y`H)^epG4)asMSROCVVB_0{eZBs0H(f ziXwbgQ|aMms~g=;6UgUGqE*=%$ZnHSk_4|7f|hZ#}w1(P2{|owwj~B3|1K?BMDRCb2b9 ze32@vs*R_(z$E+C!O!tAs_EgYimU8`v*`0Yyc8Am6);l{FNe zF38hTWaBr+2G7}Cnc5t5h>iZegj_=EA3mwQ=|V2fFMI1znj#|Y4&zfN9zJ3uF=ME93&7}@Vm5#hDe^78?oCn`RE zpMFE0RxVSE)bm3`R6}-Wd#a^pqy- z4Yr|`BDnXq9y2S8-icoGJ&H;cXJqVxc_hno-QiM*6&S1p@=<+xZ8f&pm~|ME{m|@o zL81CdFoIL|G?!SLG=XaZn)V>B8KWh_q2xCSg;#u0Lf`+PTK&I#guuHv!UqyHZ) z_aA`L0^Pq%?L+m=AKQi^(P^xIqm(e9o&CC_-~;BNxTnScW7S_m<3IVzzkmAvYQb&B z#MS>pG=KcBnB%|Ik_`>PHHUY||JAmC%2UXLP{1mAA@YPw|LZ<~sY;mtS^a+)#*z9L z5casw|2up7-%R|EeIQ0~{7VD>KQzKz*17|ti9q;xKRdfC-S$t*JOB1eaurqA(4Y_y z=+h&R@zy7|va&*H^qyvhn0AQk5APbom5jExz1=-9_g+GxR?dbwfC3dF*dUCsFO_XR zQ^;NY7ModMsZ&EpXBQL{($@pZ*~Lu4{RdtSd?$cUK)@ap{Hb?oX^F^*sKEYj6Zo%u z{YXWHHa=d-%u!JjgV_X=mahD_W%Mv$YwPMza!Hy>F>9|K%7(so{O?URCjt?gwCJIy z{>PYq*{;nhf0=6)qXM1(Xy^Y?oWBJ`Xi}{~?|1yaEa9JlxccQU)BB}Xsp|h4nEz#z z1`0Poc-S&c<`Jp?y8izj$~HKEbvki0N+2fXR6nE6&!@sWPZy#uhLz+)ZT=nq(MPL&ba^5P)COlz~^X5nt*4C!4 ztz|_{6Y`w5YQNe2VYSr0w9%T7l@$ZQ9s?|s*dZu8gn!SzzMFh-G`%?GJ1bSwv8n9w z-#EJ;jYRqPJ^r4E-|TFH2+H0#oc<}gV~t%8bbwf&^^Rxu;t2#~Ua;Qi@;*`}=CAJh zKF)u-iFkf}-ESBpr1<$Ju`=*YVQ)0WQTp)r_aHxVtfArI9{C8L-bHvIIRi&Ub&2Qg z39ylb4+9_HNMQ^e38`OMUcUF|12SqUU^@BmvqIwf5`WzG6LQ!6ot8dC?W#9(t<6?^ zPHE5jquu7SyG;5uih$oJ9lxiO6H4RrU6#iV!DN5ey{nhQ_e<;S&qeJdux_hwpz56O za^BnL`cC_kQXRj3{VL5LpH76$47c6-uMJX!${nzcFHJa*cb2N!v*XoOerMlJyf>Y>+sWpOX2b4}uyAXH z7v-fZbT@#kZm#w5cfPK;TxY?cL%w+3K?#Y4s{GXN33nvAvPDTVt8mctg-x~#P-NcE zQiNVRiptT*%BCTS7S{zw(Fn|);E_H zemW5OVAH!(xHMX+r7iZ#ohlJ4|mH5`INpH6ztqzYQuw|j`oM!h+Fos z5D@W4q2#7JPyOC~4Y<0YK^y|v+TEX%r*pd_bqWgZ&$Tu2s+K<@Ktz-=G4(e&cKJNl zQs?I2CC8mc5UaVQ4RUt}KH!MzXk81;HfX6mc2+B{TUtpBF1H>+!un!={rcH>vRo=2 zDByY98`@t5y6)IK+=Y9!**se-FQQt@X2JlX=;AJO-KXn5!2A9GI+Cu~d;1bK`cIfsxi;#eqCN zauCM??w{gfjQQNRxD5;prrO=v)YUbA;cbzAQug(@-S?NcegXDEUNx^fJUB=pUTZ(! z2;3lRKBsfPt=Uo)I{Y+z!@J5gi?~|TD$<4PtKaCFBz%xdJ87f0<;rY*xEi#c9T0zC`40v@6^65>~nulsJ=+QbYSnP1}zWz88+LnO((VX3ayO4x4gMsr$fs;Zdo z&vt44rc$by4DLL8c;aDTKm|sVstl|&*j9DUL}+4%lRke$7}`dK5qc!P&?ePr?8$9el4vwy}rWMVBh zNQltQ9q%_fYDYeWczb)hp2(Gn4c)}rimO@G?#gN>7BHsls{Uva>h|_F2&mKU2Bndr zu@Ur18A~}egiHb=bb3<<*wpS|)Dd#tJqTb*Fwc_jLqiG)Erb_#MMvl7-PCvZOq@3; z@adjH#}mxp@v*)ac|st1SaH0BH!svtGZ13CyVL|LBLNO1ww(WY`f2y2o)R`I{-Jab0MDLOe_zs=< z-ebzmh}sD}20Xmojzf=^S|Edo@(aEy@rny8Dv2lwW8%O{#r>8L(ZtAqAE%Jt_BHmm z!XM$-)6-Kp|2yv|kmKGsGu!C9tK|Fnr?L1J$4lP{4bQVgaU>j8>n^J!OaCFfe8VEf z-K?9pWVZ`&O7P8*zy;fg2iA+8xeip!+W<1&3GB6sOd}lHzO8Qha6DDofb{Q0a2B5{ zTzYBhqqAk2(pmde|K4mg1%@iZ@mI0oeHOtIpX)!9hO->tU>B21&cMz`PDXgEGxs??pvIA>0P+`zJI`)yDz=lLOxe4wWtpF{UV zdc|Idk9?`~&Fk!l%giX6l;;?EJyyT(*j~r|a~c8fv7{pk%qQcKUD;dH!`WeOALyBC zMXdcK(au{E0he}yduyS#eO{mA;)ha8uJ*eN8MOU(XO-oOey>Er1DPwm5omU(fA&F;iQk9O>RFW@G=>7OLK)Lqj z*wfXT4yicS0s-waosKaoe3&wo5-Zi$&Oe72zdnak{>l#VM(ccg^{lgc_|DIiBs*WO zAscdQEn7IM!Jo9XZ*}UqbBSXaI~t5Q-wpM0zB#6vTH!bHXPa>NAYL}@xzHU@K zp~+$idN63gd+ke}i|_pfwalg5vXtJ5CPx-*&{|0Fv@N`kEwHie?le^_>_f@~(JU9v z7u9;-z2wVv0k!_Vp}4%UWoKUs)UOdO)NrIoF2up6A+2$}!`!}9vc$G>-HH+dUmsph znksaN&e!gO;b;zd3%%C+asydCM!9FQeE@7;{onXfik{EGc5Lq+4`uf$k({l7Yh!{<2@hS*2Aw3#=W##cD44Tvj_0rxub;dQ+-%Z>e0{D?nqI6^rPg0x z$V&2*a^37_Q1`OqEMb*Q_SI=3Tb2tMwD=cz4Yp}U$cCCJXk__v~@$V~kx`aL$yw zv+077_a3mQW&C^qQ9;|{+&WvyUZM3iQ@KGTwx$!Q#z4zIDQrcuN2=B`8N3br60$yL zjyaSqv17kEkfYbJJ?LtfFrLRHHwkurwlSmp;#q^6qRttpKg-#$Cze=-M<>&>j+Dt$06tDw-Cgz}Q7_>h?&wQVx&b>U<|x(_m+HeXz11 z)<wnT*a)W?PbFv9;Wvdg?jYU zdSB(h>cDZp<}CNAegcoQ>P(rbD|dYS%7hP~b@uwn#jh$7E!xoeXqJ;h=mi@sRfq+h zYVK|Xs)R{tUEjo-9UfGSGM_)h}I-RWu_b1R}1|f zDdoje+x?ztFwD3qEQ_WGO8_si><7mPE>puDK8NNH$GclV-TQfCosq$)x8yF&sm=7G z$Hb%CW#rz7FE9&OoAYw|k;0`vn9{Ze!k4}#UQUIOr7mEaVGe4mdGaCY<>J;VJlN~?s*@Bqnn{Oy6vNa8AD~lU@RZB#>7?h?Wa_A*?An`m`SK}kmTH$|QuyZxzy0ZYBfTCqZp;1?%R)(Y<6b^x zxLkiQ-#qZO_9e+0gTrnh(%(KJXrDUI2kOpw`*4mf^pe-?@%q%5dODs;o)Z$7TTQUH zxfLnlN%+|82Y>-T^A$*Y-U>KA*1xzyqK>SMdWWX+6zj~H;5PM>^IZ`P*L}{JT%mBq zA)cD1$8{|rlc?BSYeQKDo-GNLFfmu-&%G&8MnfY_HzISd$KoxZDw(puV6-_WrH37; zJ!_0uMis=UI_slTpy^!av}sUQm-lfxW-oW#WHvId?(TTiy6L8@PN+gbysk4~h^v-L-Mi|+3g}R!m;6hh$$Gna>Wi6&uu)&Xw=OlHt2N{|cM6*4+vF6z#RZuf4rQ) zL@;v)B~*!kV->j3g)zv*+ikqz@nLzHn*PI3i0jqX0P?(hw^@;sxzfswg&r#@Z_YH3 zOel2t?FBmc*z4gk4f^3Km4z952ICec9VPwEf!`cmloeRMpfh3oJ(0%bH=`ER z-Y70No5$iuYzf~R2|tt!=B&9=lK^5Axg<8&d(e9QgIY5W9@d+SIC_z7*mFf zq8xVx_D9y-YWOwngmAovk2#Y7qQS_T`N_GKQmJCY?5eo?<~=y#Q|NXHYQ`qHhGH_sbZmo+M>ZIHG>t4 z_J(OYbV(^?T$QQvM_wjfmL6jrZESW^=Mv)y~u~m-KIX*1ZepsI-l6)tt>39n{ z@%kjOJE98&JLZ>rFj6K_l~z+UtzzxA;a5lwr>Sl6QW;~nY?2aqfGDLnD*YjeJ+2oU zOR{3Am(mjCliX0xk%G;%_uW@}q=n32OmiHRT{V5-!QU?_HsNf3a+akRuuD0F5c= zQy_U~Gasvq<564qq@$LbBjI*NCAueiG;dwrQ^Jqiy2qHwvEpjYcJZN~jT)mCM5ZHT zn`2*QT=v^!F-BDOh$%IVr_NLhjEkz}`}zX!bfqx^8waC(UvIq*y389l*=BLRg^b#< z_cD)zviPRx(iz^@Lzs|zS&7b^&u&HCfk3`}gdsdoh}W^z>BOq4iKNxv;U_T5M%ULG zSeE-)Iyt^bE*VT6ox*NDEqEyazZ0NRHm?pNvT0zuaw z(3p8L$OV)?2N@2BXlJO>`Xtd)V!n7=k*rm$G}f)K{cJQWlACW<$+r7iXE`B9|HGH- zF0=Y{9-qBhUsDm(bh+}BV^dgjJlK$C0-df&+!caCwB^6{Zt0`m{gWFE~wvtz!0B`(IYwW_G6Q4qW znJ(=sWajsh5sg?VK7FtiNgY{jDisYEDnZ8K06RY!aiT6l>0Xg4==hvjP1dg4$)7&Y zG8)?xP=0lHM7n0(uNq+@d)$&D;fCnQW2=v3vS0(K0T^qSS@LhH10#_ox{@4X#9y7I ziAWC2-roFX$$d)7vM}jznV^@4em~ zBjV(5eP_XDw{?Z_=J_6rJ{VQU|8oi{-S@m;)MG!O|A_!S%>f`45#6W3Vs2D()-^kU zM&plMFpc)NTT%QDa0B`w%;+$f%(uKDZKk;iHnRbztK#z52S<_AOCz3Kd%07adHiDe zGsQ<}e=NJh{{B9Zfw=l&phynE|i6)G}d(_b73$&hF+b4E&z#tRasjAv0 zAzN?!@wX4NBw**&)`OL!QU8RJU(wqRMV%}%&q!3TF{(itmK84lf(%G|QBgiN`L3t#Ewkn|s3Aa|q)91~a1rC*ne^!EMax)g`pelNN zcb$My9-KqDFa;IO%NNuJ3TPV7TzesEBT#N~*c~;u$(B>dlZc9yTUsYx_U)ce*a$r7 zS5$NJ$@%%c}(i|b3K?gerf|N)Pi#=fKFsnVH)K* zA|Eag@}*vC_X@#-_H)=qrN5QCVlwUjkhppP_3zqlF(Lv?#=6drM_RCVVB1$_8_s?+ z7*d*LBv?aWvDSt!xM&4&yj$(Qub44}9ACc65(hW=wnwF2teEwCW^L0LZxTl+)+N9q zV!4BI66}JN%*0H@Qd|MO>8Gtm&wQwsk^4r0d-|h%eevazB>`E0TvrAqKXtbF2)*w>Io+iM2qnTfRZ8C2n+>$Q;LmxT zG(s=jqw^YId1ZWizItSz1Xk4IfKDPa%h8J^Ze*YYHoq(Od?A=kyTXG*%$ln%t3w&0 za{WK zYg^z}Iad3GTDGv@L{<6QKrJnOms7uhiA4P#l?Z-w^d?lnr@{O_Ou{&%JlsIvUuZd( z(Z`^j?+@A7V&U1k_P9AHmbO8vh0;m%Hz?cJaEcU?NZblGRcd#|mpg)P+xOSY%5tru z&l-HATFIis+Aw%`x={m)O{D9|QQyS#sk6*KMRSYmQ7(^UKjHWnk$1PdnPS}N^m7Mb z$B+z5^MsFU zd$3EF1GFxVy&MXkS>9+1S)@K{`*s5;s{oET+phgnX`2;1!11-VV}`+KycIRsGQUn3 z308MUK@>wu;^OP&h(~1MR6DQkNL^OD= zIBN*|1}Zc)_hMB@f7`SUS9fuC0KZu4i8s=~SUTxasOnu-?H0XQ?tz78P++8GqqO|8%khhQ3k|B$G+)|Kx?Zs{bnY zBiRv^%eEy~;3wsEahEP>&{@s5Qn;h5qHmVNes(7^1lsSTVA?<%>5?nq!s=8T^r~*? zU#04h_d5{x9SME#dA%>U5uHF^^bY6CEbXVRMhDSTnC*8v>2-YG#c>8rcAO*U_cCuM zlYT06X3jW)g)=7XNta^j%Ouecq^;^Oi6YDd*CBW)oDCPC|GZ_e0o53W8%h z>)|nzMAFjw>|7LlS-PY+L;Gcd*OJ|!R=wmd|5IibOJGnet<0vO>Bp|#1SQ<8Ebxu8&dh?Nab>(QB6(+Glo4&WMF;wE1d9R z)d!fPbFB_?P5)kK`u z$n+kkk~}@=%J-Y1(RIj75JT}q%evuw+4|(+5O#^uaWy+Hy|57Alur?msmn1oKm$|W@*pH9jWQ|&RfU%oq zNWC`gR-s>El6?1c;7wVhv?A|Q1uP3Ing({ifMmvx&eDF+Drr?^Ho0jjEER-{gK61q<|+Y15wQ~r zULH8DQ7=0L#cEX!IC(aK?_pA4iDjJ1Q8smp>})DZ<26n_hzPS) z!$-i68;CuqGaYYrg5wvFBih>kW}kDs+5vR=l}jFJ9YXsiEYG}_3dmQF5AK!wF`?8- z*%}JWVl_rO6qT(HF=<*lXRO+Fn^Tsy_<+=)+`M0+T@pV0BB3+Oc%8Ae$MsoIt5NM( zuslkIgqC*ptpuY`kj%q_DYq{f#6zY?GrJ_E{OM}nico;W-ib30fmSBSVY`92atPN& zzFfQImw=Cp)5o+3gHb*f@-5hC5+(@$)gP*u>8%laBem`7`e7W=WcO~V`JkZC+eXsMLnkJ3G z>127$5qY8V0b9y<`Dq!x&pG6lFaK?kc`Xae2}d zL0LypW4=_ISheCDc{v`EvbJVK(6E5zTzs#Li~7!n(!k%*2@?Jzd0|Z0v~Of`MeV|Q zHBTqkzktlt>>QmGJ^E{aqpQ$ypC~`(>K;d^(#$5C9Bw8aKjo=ZjrU+R%exh6A{Bgf zmhEFoOoq#tZp(Ex5AoVD^e3D|;A!8uown_*f~KfIyaL60Q!W%3^N8GzsREvNOE!UW z7MpdgRnx|x8Z?Y~TO&NRXf;EH@(vyg+ax+QQ1#Uj8atpAP?Q<9MG}>J$v!!g@}UpV zoDu94e#Q4DE70^_qL%Hng?HrFB)RwFH7y&;`%{vZ*FZV3x6`*6p*Lnj#pF!6%S!w= z{013#*-eU|ESySa=X3f(g_tr)*z`;{v0K`UW%Trv=<2b*+09!3O zgS_5by)Xvr!_U-fp{mAL$MnaKSB~8 zTnQ$;GC*(s7PfGkT7rs;K%4I{7{fRl_n+7rTzXB1D-&ndw)fvf&?0KGJ+puxhyFud z&Ak#aBwe_`Edo|mbMkZMAGXbQqiQ2%71@LYJjuG`AJ0~)!3XVoE*qrG z-`TgK-nyqz@(9OeFez23ut?>!w2;_v&+as(*1^5f@$W4qMvvJfe4^+LnhHFw=iUNt z(o{bR@S56iG@Y$B(jF7upkEbloXE?IFa{q!US-v@J%Qfb~GXkR&b?U3mViHF`eusEi>J+ut6bJo#qhr|} zm~o;xv@%s>mFC9`Q+bpJX|>H7#Mk%^6V5*^Id0dF(Ji*L<3@tcI@QJtqiW$k-blX} zbMuJMC0T-#<=M?S__KcWDz*(!(HixgEoM;-*%4nOa4~k~jU(Z8o4l6L6a+RRVgaIY zk@ilk`ai5#&#tza;zjCZr4Zr=412LQ8rwgi3zh1HV}A*>=>s3%7!Uu(S(&S+jWr(W zFvaa#nj|KPS;(%VB0?LLbRDCPOJ*@hvAkceCew}p6i)MIfHLZ7qZedO3LW!YvwRj! zrYJLJGPhTkC1HD!{80|3ml0^j^&i+=B4c1qHCADq87wnv2_|RFXO3ei8}vSzx`!rh zW*bsFyG)aC`Lw^-2ZCi~T^YJ&Lld_6q}TeUKOV0x5~OHgZSHUKjqz{?r4WtU=#|8Q zX)xp7E51&MOy>n3sqZrsnZw_hvCSe}rxo1NkK^D*W77Ki|Ev_dWu`j&O=sAe-C(K^ z6o-j|=z=upsK9UqYHQs1EU?IKheP{gmel4ABFV*$^(rSnlXSA2b^#t-Mx(xk3Zm|i zygSXLNaPnJ(H*%BWKeKFh?+{$z;I4eMyO%yyzDXy%DqaK^BihBhQ&h+qalf=5OT$(JUK zG>nb1FDHFpD4UvWykFm)JIK&!=HFA_gqlaMou3RSR#Tw*a*q3 zL9hqXsLMArRkKdzFgtmLKXqrq4L;D%rVBNEugc_y%4YLOt4fwinxUJ-C{kmP^=Rl1 zAQD|%p-eTpE>?755z!B{x~pn)9}IOkOX8yQ1=t9R8FeQN3nDYwj9jM@a#$`!heor6 zA@>er0av0Oo^6PHK#MXGMwxkaX~L#e-LCc4Gq^G1Civbty|$iCjd>#k9cm4lsA-Km z#6r3~(A=-E6Y4-uv)N{XX%ngy>tETbi)N8AIA4C$-(8>WM)~6^-|Y68HhfRC$b8h& zxM;6aHfySCC0C*k=5cv0_NL~|i2%F8z%Ky^zPcbaFi;rq9Zg=Z3Y|2ZYXDjd-do_F zG>mZ8q#8;H=*hj#F zm!VvO_r_u~p;yMwIKijgXOJP&=;>m`Q? zU^j$0 z&rdj-EZJxFdKTZ?e~!6I<&DT#B${_E@X6wKUOha@9x6{^+k9tX##gVr=oRSfU-a=Y z1z>k~x@Mg<6OKctkw+M02}gMNi2_3rf!QD;uG)xx_s)FrG|Gc}+^BOqdmkk?C<%MXJ*R@bu% zuU_?bvzHZ$#%ELe6=+w!;nsKY37+DVpj%{9(-40CJ%nMq;$GlM0(*g;KqZtA%_3_- z+eM59m%21vmWlkje52tlmvW?UaA<^~gq@W(C!2~Ck^UnOm-pHBz5P%lXIqnqP=!6i zT|+c-tB~LoQ#_*U{Rcq1y??jDpphH?!3o&ql_Z`#=Guboc=-u`HPbw*$#%U)=Udmn zxf}X8$0z^y$qVw}6_{g5L>ql2!s>BK>mYIvf08SEh$B5{=GJ;e5lk%`*Z>^@#M8a| z1U>Q7ugTw%VY(=Qa&x$QXO+vDW+vJ|zbE6v6gh}@N$BM;2@mfC9*wxWllCQQD|=kf z^|YNMmi5=?j~Qe3p&+rYOuoW>N2qa;KanQq^39MKDsDlZ2LEP&Fc=c3!(%CICF+C} z(NN2%Aq*xzJ3!*Sd#q5wO*fVL`;|b1a z!W@sX)$W4oNF36A5zFXhjE9&}JNSKm`!chPZxAwxurnMFoG;Ax(bp`wV|gHu_B+St znbeq1u~g2gEu$w2$(PTX=R~?_!`(>t9Qn<#3rpN3lN1#d4DES$+RzlsqFksq)@QB_ z2#Sto5?${Kllv8?Kgk?UCtBFhtgIWq<1O3_Dq;Osi2 zQVJ?4g68Kp5TzJuW$5KlolAK9DdwU;mVobIA>&`qq1c8w!YA>1iwlE+%w3FSE)+}} z&H85Q0;=p06H|~Pr7x1GYk@Q*w=|Rgv-?$QLa3D!q0F=IL}gtNHWXpghXMKP#Xc_4 zS)FwsZ_>65P7Eka41XZzQ0TIjOq9uEdw+-@iuUHdd9hAiD{7NZdNp^07%ZgT%-`=K z3|-DPXY`NFV~Soxx%@FHeMB^kHb~IxjE0F@ZAH|mp(j$h_h^Ed5Pf0sQ|6$=3&^Mk zRvUQ9nlfG)p&_337|M@^EpLHF8y>6iSi!HEsDP1sN=%3We{C?8-7v%+_#Ntp09p9I z`k)nKZ1JzRWB3fdrEL%L*VXGbte* zoJr}Gq4}?E5ZgFF9O}NgMsbGy&pNh>h6VqF1^6$9`R{%E_{Wj|PC0|uB7tTX)Zr=b zjB-N%x3MYCy%5C0i9KHE;{3L|p6)mX`LiTNO(A&uf0p1+O@U#8s*Sh>^@ct>y?E^I8 z7PZ^2wcb%d{rPU^+tn6k7!5oKkPj(rBdvR_Exdb1kmt;-4|} z--{4VhV+eE@*9#f%zr!b-~VFNKw2KBrptG&)&FX5B5fpz zDGi^+AQ^(eKeParqKLRgAufv1zK}tqKM5BtfDk!)=uQ9b0C;p1-&`^Kk`dXorerqL z@#NVOr4%cOK(2Gs{d$Kd)%V%roYPjPukw-`uP;x#lR2WdA8C~f*;xz+y;@-e2S5;- z7xH=mVnO`yi8<`UXOD17^M&*8-CF2?HjlaIhXoJMvLIwUugZx^-}aZo`}4<)z`G}h zPDzmI_E6l(#MQ62*Qbe0UZwnRyFqw5ZaPUhSK-3VAG=*w+_PE+*C1NQ9aYCmx~Pd~ zNq0BF5lkOZK>b%UulgACU`F@*(5XU?xzybDhg14`ewqq7^6p=z>#jx1lka*eie z9mxvKEP;6NgTT;O8kg)F6wDY@(@(^>`2B1O3?u|%e#l4J=~D#6{6uU3Zks z_Z0`Ja&qs(>1vDN?&!l(Bq^WZ4?q&*?h;0`>sjU8(eu*%S)m@uwZ_r0%L(7|Q8Kf+ zMRg@*F%cvKeGdvDKYMYSWt)PS-^4*WkKT0#+cJJ}#C}-aSHF7Yd zB3j6O%c!`O5g>Dpn9k!ph)u7s_$_XbJ*;CuUv9TZ8Be^RT35g!d zeQ@b^-Mz2L>tqx(zTBoVER>;guQkd!EToc2HTcb->pzt0nRD3c#4?d2tUj|OghHmD z%3*GDd$RWA)pKwxFQzxWZ9XYFG6rB0z!s2jDr0-V640!t=C%2D?DTN?dFE{eDrWya zmOCk$zymQo7^dv|9HGf|Xk2h`3Pk9l}}dpZ+TiibvHGFe8@ ztp)~(uxZEr-Yr(l6R17800W^rkkl4$`h=?}X;xtOq+Em4Bt5p%xolV2_a^v>(ADfJ zA=3ceZ}IQ4-mdnTK91qJcgBvWRi-xESEagLY^By3gIMm)UD0Z>9yFKBnJbF0G%&}**N$1Y|Azp|;A{huh^XK0EaJEE%HfdHL zB1lp51VOVffGt7A!IV_?TVl7GB`f$OF8Ak{SWGs=@t@30e%Ocig`{%ZY+pezN-T+n_j{j!1>sE173Z1mxBQI7DY#Vf`5Nj|u@szZWEh zyCGgaeUtZVJ)1vSiP}{t z9w!Q@-vTn*xAVX`z^%>HVlXZLYZ#b%G)NjxmOY)%Txq>E?e2TWH^5lU2L1HByS({K z!A&G8y;e_XHUuZib_$aJ&T_*7#L#`x=?H$3iSjmle(P#R@EM$e;Jb$Sb$#JhYprwq z!bTBdu)Tc#L|irk4iN`4MO*@%r?~qSj&h?9p6Shu-f}JeH%H#1G2p?7y|d2rkt|6J z$*uk{fh)r}EVg{{ zOtv~~?tgx;84l970V)@C*k%eRn1Pr`DO3Q>nOt`^V4QG`OulSSpKIs_{;{2`-e&7-YA3ZlV2AoV^FpnO)=be)6?^Rc{+y zZFe7OPZbEMIzk!m8^en?|3&wkfoqR>Lnu&@!G5}bH(tIpS>95$i8hR(%j|^5D6R3t zj%i5-lD_e$BcU}NbWUb>OWoe6tD7y!14I*8_7R0Zc4eMnj3)oxsrX}Gnr)}~;ar9F zExC%`d8|H_;34MDL=uo5&^nrj{O32V;Su&&GSAE*@t>m>hm^;~35`hW#p)@UpQkNg z9sJ9y>9YjZoj)C>O`9T?e-aLg^{c905CCO!U zu`+0}H*wtKFTViEI`0Y~G6yqM%px5|@Y*&Lj^0WwwJ98)oN$s!cu!-iEwVb#lM%bx zy1|hIvJl?-WJAVKtm_pmdq)bs2&htM1U0$aD~L|or&#Y;(55TN*ND{BMV+^rnY z)VWr-$F(*_SJix28%4@CPOsfOnJ*W=j6%rW?W0M$bDA`)wOBqd=NvVq6cD}zI|42L^>b5S+^{usRj*n6z ziUl71m}?*$m!r+)tnrEj>4xTJdG?@gl-%`)=MORO28$(Pxa@itqQcc^Qof$!)lICP zUnp@6sE6|`!<*{a3S3e69Lwo<-+91ow=QwLg$4siZo1>-9+uhg<1s>LO@p+8Z$*0S zM2}$k-L3cQQX6v6snq;F6=ez*G%r#GD*Vi6F$JIiejAi-fIT9YP z*=N65x@a($jW(CP0g$C?$79WFX&2e@*@*X~v!n8Qq(X~ROGnrF)J&;B?&jZOcnA?u zh}jphhC7U}sAlrb9m}$8h2PKzo+Jp)t#$c;$Dlks3vebU4&4vtH>>9bVnL_LR{`bS z(L$e$iP1&G__0#}-^nV!`z5ye|I^-AhsCii`;y=mLU6YPXK;6Sf+V;NFi3D_2G<04 z0>LFnAS6f#K?nEX?oNWc6Ck{1pMB1`=iGhoyYKIJXQsbi-Ceb6t?IRE`s?~ttuetf zAzoXhbPSV9U_yxo{1i$+KG7@lp|au4uj~T*in>j|M1S{0(A4(?e05Q=J{Xp?*|>h) zDk~PSGymbU$&R4o{NpM3Wbz|n_tWr=18%OV&jyY4Hcq^!VL7{$O>#%8>rW|XDCay& zS+ooI2GadwPk&!oBX?13SE6va@H>z8xb)|rZV9$fBW|t_GO|cji$!ZW?*^+BA_-Y! z)}|;{rwHk^2|3N0EHoIrSDrL@F18I_La{^Xuw-eku5)%K(}1*gb75kS=!qZgN!l8= zeyN0RfDlxrA7j$_`0svKjx+>rmYr_#wgp!AvYRwaPaWAwJB@t(Fw^A4#(3~uJ=wuv zZ>i?Jze-ec>27mfZNtW+pBn)~S>l#)&+*I_ym9-zaelk5b_u3^wQ99G473}oFTL8U zSrXsa8vn^w>G@j*de+O27%MUZO2|=&70_YQ5Fp_y?)z=1k;o^{Ls80)Q>B^Q zx(N}_HYJeIU@bFl`t`Rcl24e!wpk!Qv?2aN<&41sf8j&vRh|Zs&*n-2MK6>Sg`;*% z%o?mPafrtHjksdR^yOA)>nR8ZOvl4R}Y!@F@f!mv{sfceY z);jnByjRqC@b>!87saL0mXv6YSmhjLb2^Ar-Zr%{9;t40mu zQ}qn)xhap9An1CDL7`^rYkl)Z@Ld<`d|Z22h8{SWS-bX2jPB1iIRE~bkyHB|pU1wK z{b^sKU|iPC*rg;zm1i5`CJb`~$iTEWl!cHuqa__^9U9D**pY6*B$eD5t&1|re5#t< zX58$yz;068;X6~-XoDcr7sLDQ^o1(Uc0Te6KNhhs6^-{Yr7`j!>7w56o#Wsi` zZWYg|zPlq(3c+C6CQ)H0RW1&*=ya2JKz-VL`x{}xoFr|{72kC1e zO&}d=GvS5I;tbJssi#_zAl*;^#^#LZx@4I7r{{1T?wN6Hrm*@1>&ud{z{KD0QYH6V zj0ekOpJy?0oZ7Np@5WIJwhqFzS3RgD*`nK$ezNJdk;3PvN^cr}JBtdgx*sib7lA0b zT;loN4=V{-%&NOH#UQf`82)CBT?+G~!=3UZ7gVDDl!JTTitSOuv~}uV^5hJj)% z?W?pLU~~@w=G26(AD+T)7|x71Sw}h@#vrAwTZRXRUX>%<1x0I|YD6ri2D1v`_B7}v zl?xdC_F)!}e2_N6i8<aSrs1;$7Wm-1v-&I);qtMwI=>@2u0o*S=Jox_ldh?v~PmYbx|4?0B}>ECtyPPwz5W$w83_hRRJ&_}anfc0rY zkAmCQaKor`U85eEiinuLsa)ND*Jr(2p!{*kvzL5DI99lAH)dLh`r@Zp4BE#6<-{3# zrPo(@XUiW)EM0K)&V!+nK%hrQEqw6DVB*|x1r&f5oe-T-!tki#qm}YGEPs&Z7$OFn zut_*x<1UxvLennVxR0*sB&U_u!kO{gT8QR3&wowq6z-)s_J1o*e4M~FSD=wH8H#)t z_#l~w=&Y#rFdT?+A`^EjAQN6yl+#z^;p{p(@`j3rHaFk8Yb9Qk-dK+oxLUVeRvgaP zRCWsmuTCVdVJ#0&lPBC(T7`tkg=KfV^JGZ9NTsyZ+4s}2`n`HI049rxW? z%SMN>!Ye`|YF_IkvZKVlNDzL|pcnSVg{PK3yB95fs?cQMN!}o3r?F-` z0x(Y>h4KzB?nf|p zy12pLUW4q3AWLt=jK-#e!r@g><(5>M*!Pz=weSpG>;8}U;p^!Z+O&J{yKKL8Jt02k zd`;#|OEXrv+@phhh2K`*7h8_qxyx8%RiwqqB#VQ}1l?&zYYG{ICL(j~lwJA??Hx6@ zztSzZj%=1ba`KZ(oZ2#6F-_N`^y%Y9&>S&v-jN$r) z{>DwKdWp=+^w7ISzw448-r_}9^@@T+PVI`11Q+VvgHFzQ)_2!-H#qQ3y8MbPe_vZ< z>RSuvwUSmyll@wY6Ci&l;9L{XeBuG|iRlU{@AS2YW(9U+j z?k!-stvN&ruyFg~ny(*dFby-xDFP!{@L_*^PhdYL7Q;|l@@1`UL5iu01uw@oLpqR^ zk;-o3Yg(4&h764HCp*ppA^A+!QLt89X1n|D@MPiWSQ?P7S|Ve_rHcxjiEQ~IjpxI_ z2JTMAtCyeC3)RUP@>nHChsP`$T;z{+W~+ZcJlQ9oba`33Y?RvF0I6gYO4*#Mx8~WAc8ftgwefj^DL66GAB#aqbnsSE{FRzdn7YD@b_1Bd&J^< ze5bv7N#87nyqhP$bJFcC&q5Xa=Gy2+?#Pi;B&3)eaJ_x)WSXf9avNUwl(iB@##5gs z_BIcMD;^S1cH|YGnm&q(M=^#$CVwQTEl%1f?KQvLJ+7dFrPfc{=161eF^kb?fKxnQ zy+D*r!=Q^Zbf(aXY*L_vUpdzp;6nYwFlUmhN)6YD&6cmEJp&)?vKriHbVVEAu)3Tn z3pkxT8RJ_WAIB1OGrbBrd&qpsIPzKcpucpkEM#z|vg{k>(`Z=hbW~0{=+SA5Nq4=R>4>QOKD+Vs^XGG?RV$4=~nPR3C2Hx=9o*S8lh&zDZQvgJ4m?qALF)OIl_KAIbfY8@uVe)L!c zU&!joQw>{C)&&**ZS8^J%TF%~Rf`@~cTseIYmR^0JhOoN7L8Zo>+l!42z``~6q)s| z6i!^4SO37`Fyc;s-kGYRdwgatQBRALa3SKDQV=NN;RQxR`qjN*H1}Y8(iCUhHTZhy- zZ`%SlF!Dz;9j^=+`)RTaW7Q;8+909eO{7AXk!>-_ml9VUQ2=&*$w12T$wDy*UnRyBfrW-G~RDxvcl6#Xrm>*V0!6Yi8T5 z-yTN|R_g-S_S+%cMfw+?YpTp1OmbB*`f%Kp&Dc%VM>0D2n>ZU zfc6GO=uz_uSYW~P^6DlBv$2#*nMo>>(Q2qRf_+GtLMv_`75O4G(Le|2EMMXm^*@rV zn3VA0msAoK{?ICGp;z%5xjh!bQ*T3Q!fqbv>+rq$5Jh5u_q>0a+wl{9$Qx^Ox1-ng zM~B_p@bm8SO!?dJlYLaQ(&|O*HwDVZiLaNj+N%(-t#y{_H1ZHF1EmA3S7Gupr{RE~ zkk;iPAF(FjD3E`pwdzIm?GzDcGfNy&+!<@Sa?oE#| zgGzkEPpw%bLklHy*`)z^bT_vg(IS07xrLQ=pqE;xQ5U+2j+O7z_)G$)s+Hem2BS1+ zDdQ@<*Ic}pv?9;aHF*@OKiQQa2Q0E-@k`8zT9yO|pdGf`;Lv;DM>!Mwjn6rE(f6{2 zNLYs?`_k*uk0IJvZEM*Avep%IUWAobwHV64MVl6R`fh>?q?uZ%kD(Q8uh|{10BR1| zZN$~pkj>NgY^E|fsM&gRA$;I7@#4pZM)1Lcs6_GL%3ee*x@e_A^d%kp~A&Sz$|xC(J58q(r_@!37cT zSH7XWV*2&&WM5c>N+PLaAC>QJz(#&eWA{_acx0hrd8CkqLmdlTeb|tVgBAT~CBrMY#3lXM8 z`cT;w$28kAZ!Wgxi`1bnp~*VZ1j0kH{lznol2MI=<5|K>6S=0(l`SC z1leWfSv>R_OV2WD69fSSFTfEL>6DmX7;m8Pi^LHvl3G}HwyNUyG z&3B9D`qv?$708>0J*^YX&>^!gJ>)f{CbM7s#VP7qS|@>+hTj|`&feD=A0JN`0rHK2RWt} zBQp@-uO0|(@TVGgYH+j5Xx1RK5g#xFtZ6z=YscYOT@0L+`AG9F0d6|zGhqs=pF+J5 z{RtJc=~5$L@~7m}-g3gqH^5@(Oc!vn#{21!w;@iAc40jG`wHLXbX``mD7?V?I4Ul+)F|I9~Mp|0(o_4^6>X zb&1VjjDAv*`4d|od<-^}*OGVvFD}p~2Qu($2}J_0FZLeD5;tt^rG9mZY6d!~(Mm^rbH(q%f)Wx9!9)DPQ#(tPKb{3Qye{Pt6<*6gAbtFKJc9A)2 ziXy}NfC)EnsusH8M4EgqdD7>%2G^@8IivVp!Sa~zMP(|a2xQ`5L%99^h&j1GwiJ1I z;^@bB-s;6J`;Qc>;Y`sprHUZa2J`ZF@MKUeg}snGqXEu|S%IGBN1N;qUowb>`e1cA z8+BsfU9qiTHOW3`NTKBjLw7wpAu*&VQCr}MC3bEXa*R>RN{rb4{`gwXV3Yg8hsw0YZR3+|{+-=R znIe@aPQ%<(SDOqpIWJVY%cLdE%keF@?%3?sn8j7@YDC62uGLjX!ihrU2)oGGc~`|! zA!?OEd{;4;HdJQJqs$&NHIN`eaY$$<Qre$9hd1&*Z@URAy*GrH!TtJozTl^e>N zLGO%Uj3V#c5H@e5pyni5pAw@P>RT$dgs#r#Ytp22{jzsa(;9t`i2*?snGvavobuVJ zkCPSuxU|+4a0i4kODB>~_E{NDWc!tcQfr)`{GN*_aPNXQ+f_;f@3RPkhBatEiBc?! ztb-_3v(J2KuRoVhS6!(WJT42)jXZd=V^kwWtAaSs+D&z#gwPn~jZkj<+?jIz7MrN@ z5nE{k{aGa9+w02Y4I4_uO?F{e&xCLSS{dPfS=dg)D+}S1Y?~wT-GxdDfzY#IB0L8M zW@2D5FDGXppa#G79m&-R!Eo_z+YI*ln#wyzr#+$u=FDYLxKcy2Z#BrKH1Qb*LE%*R z7BxHbkb6#&M_;n^%933*DW_;ffv4~XVbte7Pe?~e;XiwJ4he7TZHxDYwQKxkDbiZq zcVoG5gR2lvYIP`Pa6j0Ntgi2rH&>$;PnDY3$7sAW=l5q(=9xnctx}0hVFtG^*#)y+ zw1!!O3`w8MVUGg%*($WUOMmTWZ;s7*V_2UN3p2&nk0Ly1zCFzf1KAqkE3aZP*)XZ7 zh`}PlDW84yI$T1YV`0Rdb+1JF3b-XH9(cnp+k@h~E=q{T&e-&{c5R+LQzaJk;SO{& z-<}Ex-1uUAqj&SA;f&Gmv=v>zCWmgo@7H-1@&|$i?e|g-p5w-*Xxap}S)}f+zHBx% zA+#N|-$C2$TrGW>Q7wRzA)m#vyZnnCyM>oBa|8aA@zmjG9Ge8&i`;Xeo7icH-p3Q>$6W2TxeO}s3smhQ2@QTD)_Yb&|{LSSo2}X6&0tsEFtm!a8v$X{F!OpakcDF z)|`ifcTA-VkhO*UN=xniuk)QSn^O`qk?YZCdVD~%veQ_744B|GiwJ3sFX1xQ|?TIr-})P$2l2oV)YyaxfC?G zdUuJnh2p%c1`3fQ3A!#ZjpwHaqSwGh8dQ#2ddkzZ%W}!QPqNV%1?mnt;k(KQp{8*6 zw-9vJqNZdhyLltZ%B=77P46Us_w2X*dIltT7RH17`tbQJ zLkA5bkeja;LH?<}1CI>Yr*{a;14ef)7UQbGq#Rv?v9VtW_Sl|JGjAFg>nKsafjSjF zuVh$m2|~tKzCds+_t*P8z!a_WSIa_vBZMH)o`x}StY;>%zWkJ)(5{#o(#*~UAhQJU z9uoms30*1bw#O|kzvb`_9n9|8!;lAK!#|#7d)>X{OUe_1C|x=$_(Bxq_$W*X6%~IF zsivgGQi-OCecW+BzEtMx5VDHx6pxe{E}J#QeJp&9NB_`(qUM-s!m&sY_`jZ!dSWH19A6`V;obh^9$O`R&Rz7q)j;yV>CV)g4qp;> z|0wCDMvkcc&iY}{?Q(wHuyD!KhU0E691t?&y1be$A!}n?@d!RU7pKK>HV=e#3@>*u z4E!TcF~O9BI94@oXXf=I7KeoFCmbJ^SoK>Z;vrf;E`TNOr^-zfH&PQfQIfEt-fnNY z=*}hbToQ|D--eMSz>PL5hB7#tx2Auq5{56mGO7p&mdTRF2aS@7e<4x%!TyT!i?S}6 z+GB&wL^~c|V0HI=e(@)H-RJqlk4q=WMzYqa2v<_>-(0tNyp|8#D*iy1o{&MtYxRZy zgK68-WK-RycD%!{EkCSAbC*TYTYEh9Qr}8H=a%dXWhN~`Lu$NZiKp&z0!LKTuB=9w z;1ZZ?4H@#4c)a7V*VWk>OXs3Sh_$nyn;w?>US3BDyi5p9#Ho$NlklY3i;VJuN&kY` zmA0~~jBn}+t_Mm7E$$PB@7CdR@jM(%x8WE$a#HEfe_g0T4VG=M}XhWyQ z6+HyVYXEogD-yYbMzcpI3<-djsu zQyA_Xa+Z4jdcKJ0SAHCM*>R4X@3+?%Gx66jPj`K(Y=sg+7M=7cm-9>!c$)%SLxO0{ zR>-Mzkq$mdp@ZR9Jk&TKko)xpZGv6Upr`8*4o@2^Nxj!kIo0j=O4bF25*?!O(`kI@ zgEcxTzDA!jz9O#0;mwxSVzQ$qNQa;EZ2d$wCmB8eB5V9oi1 z5BSTOBx9S}HDPmWl}8QPSLDg7KO-&6oYgCXTKW{wb+vWeK{iDM=FPu{1@C(+t7)A~ z91oGn(m61tWK;e&%<@&V%E_=LNgo`;88<5OY|xYi?D zvPA^@UTowl6(|p;h<)+&6`^Od{4P)C+h(X!U!!8Tx#D})j1C{qZ;Hs#3Zaayii`T4 zi<#O*Kk!W1Vz$(6k#C4%r$|B{DI32k(oEre1Z!a{x8mlsG?iVsCdUj=jq-R?97H&1 zKhqNd{Ux{%li+~w)gN|1cN}qcB_zle_*Q1(v!BIO-FUZygS6;FhB8~V=ivcR>i(k+ zma7)WwT=jT&~gK%O=%?#PjR$@Mvy$(1%BQuNobxe<;r#=f(^lhl@1C=wrbaem z$DZA~2!-lJBsEL5E?-ev-a33@_fy?%g z%LqMT#1N*B_LAIp@#)8m&`WoAa{#j0VxAMW&`~Re`w^tkB!;@njezY~WZ}$b!zUiH zP7Wo}lYg)+z*0(G9XMqadG&B-+#5BaicgA1eZKtAnLGab%6R?Rfidt1#2nf3>Ng51 zDb-PQi#e;4`2`F!>m5O>^zpY1>|TC53IM)7to&Xt=eIy()}uGCT+Gp5uD@RydfVCe zy51{w4kS~+99rl6lgyN>ahLaY{Mq5bA?i}Evv|^dkoo-&gY^ON?&2H1o0g}<#L*=N zbO0(od>SRS@iC>>{5jt~iuL?z-Som+e787)Nje;*hu0aE&!y0cv%+P3j9;-KYBuEg z1b@0-tj#Ct7~i>Gd}zMMKugIn0ElOyyRMnl(=fXB*RT{G7gWqdfhP~}T?ovTs>eEH zO@D-6>9gzC_OKf@@C|3gdKzN==qXQ!_$Q_C>h`N@5_FOWh$Y z&VY5+m+tRToL$G`i(d29zYzDgT#O?qJTa_;L7J*kXl0t$6Ps=S zRV2V`8Gz!w=BU6wD*d-YZZZI9&prP<5)$!OX!QG6b0GkQbZ&v;e3=ox=dk!+P5j+*{(q#2pt}d(J!DZucyrj0fRD1ghFqD9`D;y8WE4W+7z1hiJwms) z{ECR?ArcZfuyF!sEx}N*nU#f^l^xi|4eV&<0)|=InmIYcAW%-Qlbs_NX6Nk0Y3F1G z@dSA~Iy@kM`14jw5-8ESL)@UiHF0`w5Enfy#L3dx%Ff9~oc`qt1r8y4NeL`5I=Sbv zFAOy0Y5!3Xha&_AwgSVzw3;tv)RbjunK(E(RpsP4Ipto+(b~J&0av&|+?<^98ceiI zwlJ8B2q!17zyin;?BHMrG!W$MW^+%=`3EfrKnt>hSup{^{z3-ON++l|{r|NZdI>CA zF>9dr5H~OkLJRY9fr!()gB{=ydfGpB;`BUx^qlupZeS;yzf-{M?iqk%dRmw>paw2L z4c2bXj^gxOe<*D;!WMM8VDh zq6voC{w4n(QvOLR1BOC0fKL2RXqBDpV0K^!h5Jrxz#T0hZhy(e!Tq$@iv4qR z{NtudU}>s8cu0+mbwB)&#(>e5dx%^_0F>`HjQf*+ex3&17aRe_+$;NUTz?y*_gp|W zk!~bpB%~`eBqZ!VIUWG}r$NH^Twq`{I$Pe4#(!t5)O+Pv4N!&v%#Z(t(E>OFFu@&x z`(fu~?fh5V@kUI6`RqtY1;F-qvGTAXP5)n3z$Wmf9!ZbP+PDIq2_#``~%Mp(0R_QMSg$)V&C(jR8!&;C6PVv+psrGcFQEAof=fO6VdTK>Dz z<{RUXl!zZ7NdOz(pOxP4o(AcDMMDB+mJP%TFh4esztZ@>Td}|MKMm^ZLH~cXX_~62 Uz(7Mn!UVomfLRpmLkEuj54L4wBme*a literal 0 HcmV?d00001 diff --git a/doc/wiki-images/casa_db_part_3.svg b/doc/wiki-images/casa_db_part_3.svg new file mode 100644 index 0000000000..be869c407d --- /dev/null +++ b/doc/wiki-images/casa_db_part_3.svg @@ -0,0 +1,13 @@ + + + + + +patch_notesidbigintnotetextpatch_note_type_idbigintpatch_note_group_idbigintcreated_attimestamptimestampupdated_atpatch_note_groupsidbigintvaluevarcharcreated_attimestamptimestampupdated_atpatch_note_typesidbigintnamevarcharcreated_attimestamptimestampupdated_at + From 31e9a97a2708f44731ef126845c5877cad57fba8 Mon Sep 17 00:00:00 2001 From: firelemons Date: Sun, 28 May 2023 08:53:07 -0500 Subject: [PATCH 54/68] remove unused image --- doc/wiki-images/casa_db_part_1v1.png | Bin 106189 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/wiki-images/casa_db_part_1v1.png diff --git a/doc/wiki-images/casa_db_part_1v1.png b/doc/wiki-images/casa_db_part_1v1.png deleted file mode 100644 index 73af76afed58b929ce8de8885327c05886aab54d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106189 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 From a831c294fe154913f0a4349558b80e0ce1688595 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Tue, 30 May 2023 20:52:16 -0400 Subject: [PATCH 55/68] parent 31e9a97a2708f44731ef126845c5877cad57fba8 author SHAMI_TOMITA 1685494336 -0400 committer SHAMI_TOMITA 1685574651 -0400 added back the return value lint and app controller spec TwilioService resource to current_user remove unecessary code, refactor lint removing unnecessary complexity rename for sms_reactivation js file password spec lint twilio service spec move lint remove comment remove comment revert to old gem file actual revert lint Update Gemfile.lock revert to old gem file actual revert lint Update Gemfile.lock --- Gemfile.lock | 196 +++++++++++------- app/controllers/application_controller.rb | 35 ++-- app/controllers/users/passwords_controller.rb | 6 +- app/controllers/volunteers_controller.rb | 10 +- app/javascript/application.js | 2 +- ...on_alert.js => sms_reactivation_toggle.js} | 0 .../no_contact_made_sms_reminder_service.rb | 2 +- app/services/twilio_service.rb | 6 +- .../application_controller_spec.rb | 41 +--- spec/requests/casa_admins_spec.rb | 7 +- spec/requests/supervisors_spec.rb | 4 +- spec/requests/users/passwords_spec.rb | 16 ++ spec/requests/volunteers_spec.rb | 8 +- spec/services/twilio_service_spec.rb | 31 +-- spec/support/stubbed_requests/twilio_api.rb | 11 - 15 files changed, 198 insertions(+), 177 deletions(-) rename app/javascript/src/{sms_reactivation_alert.js => sms_reactivation_toggle.js} (100%) diff --git a/Gemfile.lock b/Gemfile.lock index 406079cbf1..c15b459124 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,71 +1,102 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.5) - actionpack (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activesupport (= 7.0.5) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.5) - actionview (= 7.0.5) - activesupport (= 7.0.5) - rack (~> 2.0, >= 2.2.4) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.5) - actionpack (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.5) - activesupport (= 7.0.5) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.5) - activesupport (= 7.0.5) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.3.6) - activemodel (7.0.5) - activesupport (= 7.0.5) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (7.0.5) - activemodel (= 7.0.5) - activesupport (= 7.0.5) - activestorage (7.0.5) - actionpack (= 7.0.5) - activejob (= 7.0.5) - activerecord (= 7.0.5) - activesupport (= 7.0.5) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.5) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -73,7 +104,7 @@ GEM addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) after_party (1.11.2) - amazing_print (1.5.0) + amazing_print (1.4.0) annotate (3.2.0) activerecord (>= 3.2, < 8.0) rake (>= 10.4, < 14.0) @@ -95,7 +126,7 @@ GEM parser (>= 2.4) smart_properties bindex (0.8.1) - brakeman (6.0.0) + brakeman (5.4.1) bugsnag (6.25.2) concurrent-ruby (~> 1.0) builder (3.2.4) @@ -126,7 +157,7 @@ GEM cliver (0.3.2) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.4.1) + connection_pool (2.2.5) crack (0.4.5) rexml crass (1.0.6) @@ -137,7 +168,7 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.3) - delayed_job (4.1.11) + delayed_job (4.1.10) activesupport (>= 3.0, < 8.0) delayed_job_active_record (4.1.7) activerecord (>= 3.0, < 8.0) @@ -239,8 +270,8 @@ GEM jsbundling-rails (1.1.1) railties (>= 6.0.0) jwt (2.7.0) - launchy (2.5.2) - addressable (~> 2.8) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.8.1) launchy (>= 2.2, < 3) llhttp-ffi (0.4.0) @@ -251,7 +282,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.21.3) + loofah (2.21.2) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -262,13 +293,13 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mini_magick (4.12.0) + mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.2) minitest (5.18.0) multi_xml (0.6.0) multipart-post (2.3.0) - net-http-persistent (4.0.2) + net-http-persistent (4.0.1) connection_pool (~> 2.2) net-imap (0.3.4) date @@ -280,20 +311,20 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.2) + nokogiri (1.15.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.15.2-arm64-darwin) + nokogiri (1.15.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-darwin) + nokogiri (1.15.1-x86_64-darwin) racc (~> 1.4) - nokogiri (1.15.2-x86_64-linux) + nokogiri (1.15.1-x86_64-linux) racc (~> 1.4) noticed (1.6.3) http (>= 4.0.0) rails (>= 5.2.0) orm_adapter (0.5.0) - parallel (1.23.0) + parallel (1.22.1) paranoia (2.6.1) activerecord (>= 5.1, < 7.1) parser (3.2.2.1) @@ -321,20 +352,33 @@ GEM rack (>= 1.0, < 3) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.5) - actioncable (= 7.0.5) - actionmailbox (= 7.0.5) - actionmailer (= 7.0.5) - actionpack (= 7.0.5) - actiontext (= 7.0.5) - actionview (= 7.0.5) - activejob (= 7.0.5) - activemodel (= 7.0.5) - activerecord (= 7.0.5) - activestorage (= 7.0.5) - activesupport (= 7.0.5) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) bundler (>= 1.15.0) - railties (= 7.0.5) + railties (= 7.0.4.3) + railties (= 7.0.4.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -342,12 +386,16 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.5) - actionpack (= 7.0.5) - activesupport (= 7.0.5) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) method_source rake (>= 12.2) thor (~> 1.0) @@ -387,7 +435,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.1) + rubocop-ast (1.28.0) parser (>= 3.2.1.0) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) @@ -419,9 +467,9 @@ GEM spring (4.1.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (4.2.0) + sprockets (4.1.1) concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) + rack (> 1, < 3) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dcd5a43bf5..803a522e12 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -55,7 +55,7 @@ def deliver_sms_to(resource, body_msg) from = current_user.casa_org.twilio_phone_number begin - @twilio = TwilioService.new(resource.casa_org) + @twilio = TwilioService.new(current_user.casa_org) req_params = { From: from, Body: body, @@ -63,34 +63,27 @@ def deliver_sms_to(resource, body_msg) } twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" - rescue TwilioService::TwilioCasaOrgError => error @error = error - "twilio_not_enabled" - rescue Twilio::REST::RestError "error" - rescue StandardError #unverfied error isnt picked up by Twilio::Rest::RestError - #https://www.twilio.com/docs/errors/21608 + rescue Twilio::REST::RestError => error + @error = error + "error" # Find a better description for this + rescue # unverfied error isnt picked up by Twilio::Rest::RestError + # https://www.twilio.com/docs/errors/21608 @error = "Phone number is unverifiied" - "unverified" + "error" end end def sms_acct_creation_notice(resource_name, sms_status) - if sms_status === "blank" - return "New #{resource_name} created successfully." - end - if sms_status === "error" - return "New #{resource_name} created successfully. SMS not sent due to error." - end - if sms_status === "sent" - return "New #{resource_name} created successfully. SMS has been sent!" - end - if sms_status === "twilio_not_enabled" - "New #{resource_name} created successfully. SMS not sent. #{@error}." - end - if sms_status === "unverified" - "New #{resource_name} created successfully. SMS not sent. #{@error}." + case sms_status + when "blank" + "New #{resource_name} created successfully." + when "error" + "New #{resource_name} created successfully. SMS not sent. Error: #{@error}." + when "sent" + "New #{resource_name} created successfully. SMS has been sent!" end end diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 2ccc363107..4ce05ab9e1 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -9,7 +9,7 @@ def create valid_params?(@email, @phone_number) ? send_password : render_error return if @errors - + redirect_to after_sending_reset_password_instructions_path_for(resource_name), notice: "You will receive an email or SMS with instructions on how to reset your password in a few minutes." end @@ -43,8 +43,8 @@ def send_password_reset_sms To: @phone_number } twilio_service.send_sms(sms_params) - rescue => e - Rails.logger.error("send SMS failed: #{e}") #User doesn't need to know about this + rescue => e + Rails.logger.error("send SMS failed: #{e}") # User doesn't need to know about this end end diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index a159635650..d7a0d3caf5 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -37,9 +37,7 @@ def create invitation_url = Rails.application.routes.url_helpers.accept_user_invitation_url(invitation_token: raw_token, host: request.base_url) hash_of_short_urls = @volunteer.phone_number.blank? ? {0 => nil, 1 => nil} : handle_short_url([invitation_url, request.base_url + "/users/edit"]) body_msg = account_activation_msg("volunteer", hash_of_short_urls) - ### - sms_status = deliver_sms_to @volunteer, body_msg # ##checks for twilio_enabled### - ### + sms_status = deliver_sms_to @volunteer, body_msg redirect_to edit_volunteer_path(@volunteer), notice: sms_acct_creation_notice("volunteer", sms_status) else render :new @@ -104,12 +102,8 @@ def send_reactivation_alert begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - rescue StandardError => error - if error.kind_of? NoMethodError #Most likely unverified phone number - redirect_to edit_volunteer_path(@volunteer), notice: "SMS Not Sent. Volunteer Phone Number is not verified." - else + rescue => error redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" - end end end end diff --git a/app/javascript/application.js b/app/javascript/application.js index 2f364f5d4a..67a442f415 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -34,4 +34,4 @@ require('./src/sidebar') require('./src/tooltip') require('./src/session_timeout_poller.js') require('./src/casa_org') -require('./src/sms_reactivation_alert') +require('./src/sms_reactivation_toggle') diff --git a/app/javascript/src/sms_reactivation_alert.js b/app/javascript/src/sms_reactivation_toggle.js similarity index 100% rename from app/javascript/src/sms_reactivation_alert.js rename to app/javascript/src/sms_reactivation_toggle.js diff --git a/app/services/no_contact_made_sms_reminder_service.rb b/app/services/no_contact_made_sms_reminder_service.rb index 7259f7159d..e167a7891e 100644 --- a/app/services/no_contact_made_sms_reminder_service.rb +++ b/app/services/no_contact_made_sms_reminder_service.rb @@ -8,6 +8,6 @@ module NoContactMadeSmsReminderService def no_contact_made_reminder(user, contact_type) short_link = create_short_link(NEW_CASE_CONTACT_LINK) message = no_contact_made_msg(contact_type, short_link) - send_reminder(user, message) # ##checks for twilio_enabled### + send_reminder(user, message) end end diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 5fb68f9480..5fbde243aa 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -30,9 +30,9 @@ def send_sms(params) body: body, to: to ) - rescue => e - Rails.logger.error("send SMS failed: #{e}") - e + rescue => error + Rails.logger.error("send SMS failed: #{error}") + error end end end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 75e882a8b4..81e7c4489d 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -102,48 +102,27 @@ def unknown_organization end end - describe "sms acct creation notice" do it "sms status is blank" do expect(controller.send(:sms_acct_creation_notice, "admin", "blank")).to eq("New admin created successfully.") end it "sms status is error" do - expect(controller.send(:sms_acct_creation_notice, "admin", "error")).to eq("New admin created successfully. SMS not sent due to error.") + expect(controller.send(:sms_acct_creation_notice, "admin", "error")).to eq("New admin created successfully. SMS not sent. Error: .") end it "sms status is sent" do expect(controller.send(:sms_acct_creation_notice, "admin", "sent")).to eq("New admin created successfully. SMS has been sent!") end - - it "sms status is twilio_not_enabled" do - pending("no error") - expect(controller.send(:sms_acct_creation_notice, "admin", "twilio_not_enabled")).to eq("New admin created successfully. SMS not sent. Twilio is disabled for #{volunteer.casa_org.name}") - end end - context "when deliver_sms_to raises a twilio error" do - #let(:organization_twilio_enabled) { create(:casa_org) } - #let(:volunteer_twilio) { create(:volunteer, casa_org: organization_twilio_enabled) } - - #let(:organization_twilio_disabled) { create(:casa_org) } - #let(:volunteer_no_twilio) { create(:volunteer, casa_org: organization_twilio_disabled) } - - before do - ##### Isolate this and make its own context block -> look where application controller is already being tested - #run it every time!!!! - allow_any_instance_of(TwilioService).to receive(:initialize) - .and_raise(StandardError) - #focus on each error and making sure we get the response we want (whatever is rescued) - ##### - end - it "fails on and returns on first rescue" do - debugger - end - it "fails on and returns on second rescue" do - end - it "fails on and returns on third rescue" do - end - - end + describe "deliver_sms_to encounters an error" do + let(:organization_twilio_disabled) { create(:casa_org, twilio_enabled: false) } + + context "when twilio is not enabled" do + it "raises a TwilioCasaOrgError" do + expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + end + end + end end diff --git a/spec/requests/casa_admins_spec.rb b/spec/requests/casa_admins_spec.rb index 859156df12..cdec612d96 100644 --- a/spec/requests/casa_admins_spec.rb +++ b/spec/requests/casa_admins_spec.rb @@ -425,7 +425,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New admin created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Error: ./) end it "does not send SMS when Twilio is not enabled" do @@ -437,9 +437,8 @@ subject expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Twilio is disabled for #{org.name}./) - end - + expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) + end end context "when failure" do diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 6f93424cc0..3cb2afcb76 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -298,7 +298,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Error: ./) end it "does not send a SMS if the casa_org does not have Twilio enabled" do @@ -311,7 +311,7 @@ post supervisors_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) end end diff --git a/spec/requests/users/passwords_spec.rb b/spec/requests/users/passwords_spec.rb index dfc3b30c4e..15635a47db 100644 --- a/spec/requests/users/passwords_spec.rb +++ b/spec/requests/users/passwords_spec.rb @@ -104,5 +104,21 @@ expect(request.parsed_body).to include("User does not exist.") end end + + context "when twilio is disabled" do + let(:params) { {user: {email: user.email, phone_number: user.phone_number}} } + + before do + org.update(twilio_enabled: false) + end + + it "does not send an sms, only an email" do + expect_any_instance_of(User).to receive(:send_reset_password_instructions).once + request + expect(flash[:notice]).to( + eq("You will receive an email or SMS with instructions on how to reset your password in a few minutes.") + ) + end + end end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index ab3f4f28e9..1148010a58 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -179,7 +179,7 @@ expect(@twilio_activation_error_stub).to have_been_requested.times(1) expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent due to error./) + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Error: ./) end it "does not send a SMS if the casa_org does not have Twilio enabled" do @@ -192,7 +192,7 @@ post volunteers_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) end end @@ -393,8 +393,8 @@ expect(flash[:notice]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end - it "does not send a reactivation SMS to an unverified phone number" do - end + it "does not send a reactivation SMS to an unverified phone number" do + end end describe "GET /impersonate" do diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index e754966999..50fe70dadb 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -12,23 +12,13 @@ end let!(:casa_org) do - create( - :casa_org, - twilio_phone_number: "+15555555555", - twilio_account_sid: "articuno34", - twilio_api_key_sid: "Aladdin", - twilio_api_key_secret: "open sesame" - ) - end - - let!(:casa_org_twilio_disabled) do create( :casa_org, twilio_phone_number: "+15555555555", twilio_account_sid: "articuno34", twilio_api_key_sid: "Aladdin", twilio_api_key_secret: "open sesame", - twilio_enabled: false + twilio_enabled: true ) end @@ -48,10 +38,23 @@ expect(response.status).to match "sent" expect(response.body).to match "Execute Order 66 - https://42ni.short.gy/jzTwdF" end + end - it "returns an error is the Casa Org does not have Twilio enabled" do - expect {TwilioService.new(casa_org_twilio_disabled)}.to raise_error(TwilioService::TwilioCasaOrgError) - end + context "when twilio is disabled" do + let!(:casa_org_twilio_disabled) do + create( + :casa_org, + twilio_phone_number: "+15555555553", + twilio_account_sid: "zapdos43", + twilio_api_key_sid: "Jasmine", + twilio_api_key_secret: "hakuna matata", + twilio_enabled: false + ) + end + + it "raises the TwilioServiceCasaOrgError" do + expect { TwilioService.new(casa_org_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + end end end end diff --git a/spec/support/stubbed_requests/twilio_api.rb b/spec/support/stubbed_requests/twilio_api.rb index 7803e9b48a..f15aa62494 100644 --- a/spec/support/stubbed_requests/twilio_api.rb +++ b/spec/support/stubbed_requests/twilio_api.rb @@ -82,15 +82,4 @@ def twilio_password_reset_stub(resource) ) .to_return(body: "{\"error_code\":null, \"status\":\"sent\", \"body\":\"Execute Order 66 - https://42ni.short.gy/jzTwdF\"}") end - - def twilio_unverified_number_response_stub(resource = "") - WebMock.stub_request(:post, "https://api.twilio.com/2010-04-01/Accounts/articuno31/Messages.json") - .with( - headers: { - "Content-Type" => "application/x-www-form-urlencoded", - "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" - } - ) - .to_return(body: "{\"error_code\":\"42\", \"status\":\"failed\", \"body\":\"My tea's gone cold I wonder why\"}") - end end From faaf18ebb04661027202209727aacc8bdf11e51a Mon Sep 17 00:00:00 2001 From: Shami Tomita <70528966+ShamiTomita@users.noreply.github.com> Date: Wed, 31 May 2023 19:16:22 -0400 Subject: [PATCH 56/68] Update Gemfile.lock I'm so sorry --- Gemfile.lock | 1115 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1115 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 13be48b8dc..448cfb3a73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -172,6 +172,145 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.3) + delayed_job (4.1.10)GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) + globalid (>= 0.3.6) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) + activemodel-serializers-xml (1.0.2) + activemodel (> 5.x) + activesupport (> 5.x) + builder (~> 3.1) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) + after_party (1.11.2) + amazing_print (1.4.0) + annotate (3.2.0) + activerecord (>= 3.2, < 8.0) + rake (>= 10.4, < 14.0) + ast (2.4.2) + azure-storage-blob (2.0.3) + azure-storage-common (~> 2.0) + nokogiri (~> 1, >= 1.10.8) + azure-storage-common (2.0.4) + faraday (~> 1.0) + faraday_middleware (~> 1.0, >= 1.0.0.rc1) + net-http-persistent (~> 4.0) + nokogiri (~> 1, >= 1.10.8) + bcrypt (3.1.18) + better_html (2.0.1) + actionview (>= 6.0) + activesupport (>= 6.0) + ast (~> 2.0) + erubi (~> 1.4) + parser (>= 2.4) + smart_properties + bindex (0.8.1) + brakeman (5.4.1) + bugsnag (6.25.2) + concurrent-ruby (~> 1.0) + builder (3.2.4) + bullet (7.0.7) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) + byebug (11.1.3) + capybara (3.39.1) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + capybara-screenshot (1.0.26) + capybara (>= 1.0, < 4) + launchy + caxlsx (3.4.1) + htmlentities (~> 4.3, >= 4.3.4) + marcel (~> 1.0) + nokogiri (~> 1.10, >= 1.10.4) + rubyzip (>= 1.3.0, < 3) + caxlsx_rails (0.6.3) + actionpack (>= 3.1) + caxlsx (>= 3.0) + cliver (0.3.2) + coderay (1.1.3) + concurrent-ruby (1.2.2) + connection_pool (2.2.5) + crack (0.4.5) + rexml + crass (1.0.6) + cssbundling-rails (1.1.2) + railties (>= 6.0.0) + database_cleaner-active_record (2.1.0) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0.0) + database_cleaner-core (2.0.1) + date (3.3.3) delayed_job (4.1.10) activesupport (>= 3.0, < 8.0) delayed_job_active_record (4.1.7) @@ -352,6 +491,982 @@ GEM activesupport (>= 3.0.0) racc (1.6.2) rack (2.2.7) + rack-attack (6.6.1) + rack (>= 1.0, < 3) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + bundler (>= 1.15.0) + railties (= 7.0.4.3) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.0.6) + regexp_parser (2.8.0) + request_store (1.5.1) + rack (>= 1.4) + responders (3.1.0) + actionpack (>= 5.2) + railties (>= 5.2) + rexml (3.2.5) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-rails (6.0.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.12) + rspec-expectations (~> 3.12) + rspec-mocks (~> 3.12) + rspec-support (~> 3.12) + rspec-support (3.12.0) + rubocop (1.23.0) + parallel (~> 1.10) + parser (>= 3.0.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.12.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.28.0) + parser (>= 3.2.1.0) + rubocop-performance (1.12.0) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + ruby-progressbar (1.13.0) + ruby-vips (2.1.4) + ffi (~> 1.12) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + sablon (0.3.2) + nokogiri (>= 1.8.5) + rubyzip (>= 1.1.1) + safe_shell (1.1.0) + scout_apm (5.3.5) + parser + selenium-webdriver (4.9.1) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) + shoulda-matchers (5.3.0) + activesupport (>= 5.2.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + smart_properties (1.17.0) + spring (4.1.1) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprockets (4.1.1) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + standard (1.5.0) + rubocop (= 1.23.0) + rubocop-performance (= 1.12.0) + strong_migrations (1.4.4) + activerecord (>= 5.2) + thor (1.2.2) + timeout (0.3.2) + traceroute (0.8.1) + rails (>= 3.0.0) + twilio-ruby (6.0.1) + faraday (>= 0.9, < 3.0) + jwt (>= 1.5, < 3.0) + nokogiri (>= 1.6, < 2.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (2.4.2) + uniform_notifier (1.16.0) + view_component (3.0.0) + activesupport (>= 5.2.0, < 8.0) + concurrent-ruby (~> 1.0) + method_source (~> 1.0) + warden (1.2.9) + rack (>= 2.0.9) + web-console (4.2.0) + actionview (>= 6.0.0) + activemodel (>= 6.0.0) + bindex (>= 0.4.0) + railties (>= 6.0.0) + webdrivers (5.2.0) + nokogiri (~> 1.6) + rubyzip (>= 1.3.0) + selenium-webdriver (~> 4.0) + webmock (3.18.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket (1.2.9) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.6.8) + +PLATFORMS + arm64-darwin-20 + arm64-darwin-21 + arm64-darwin-22 + ruby + x86_64-darwin-18 + x86_64-darwin-19 + x86_64-darwin-20 + x86_64-darwin-21 + x86_64-darwin-22 + x86_64-linux + +DEPENDENCIES + after_party + amazing_print + annotate + azure-storage-blob + brakeman + bugsnag + bullet + byebug + capybara + capybara-screenshot + caxlsx (~> 3.4) + caxlsx_rails (~> 0.6.3) + cssbundling-rails (~> 1.1) + database_cleaner-active_record + delayed_job_active_record + devise + devise_invitable + dotenv-rails + draper + erb_lint + factory_bot_rails + faker + filterrific + friendly_id (~> 5.5.0) + httparty + image_processing (~> 1.12) + jbuilder + jsbundling-rails + letter_opener + lograge + net-imap + net-pop + net-smtp + noticed + paranoia + pdf-forms + pg + pretender + pry + pry-byebug + puma (= 6.2.2) + pundit + rack-attack + rails (~> 7.0.4) + rails-controller-testing + rake + request_store + rexml + rspec-rails + sablon + scout_apm + GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) + rack (~> 2.0, >= 2.2.0) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) + globalid (>= 0.3.6) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) + activemodel-serializers-xml (1.0.2) + activemodel (> 5.x) + activesupport (> 5.x) + builder (~> 3.1) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) + after_party (1.11.2) + amazing_print (1.4.0) + annotate (3.2.0) + activerecord (>= 3.2, < 8.0) + rake (>= 10.4, < 14.0) + ast (2.4.2) + azure-storage-blob (2.0.3) + azure-storage-common (~> 2.0) + nokogiri (~> 1, >= 1.10.8) + azure-storage-common (2.0.4) + faraday (~> 1.0) + faraday_middleware (~> 1.0, >= 1.0.0.rc1) + net-http-persistent (~> 4.0) + nokogiri (~> 1, >= 1.10.8) + bcrypt (3.1.18) + better_html (2.0.1) + actionview (>= 6.0) + activesupport (>= 6.0) + ast (~> 2.0) + erubi (~> 1.4) + parser (>= 2.4) + smart_properties + bindex (0.8.1) + brakeman (5.4.1) + bugsnag (6.25.2) + concurrent-ruby (~> 1.0) + builder (3.2.4) + bullet (7.0.7) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) + byebug (11.1.3) + capybara (3.39.1) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + capybara-screenshot (1.0.26) + capybara (>= 1.0, < 4) + launchy + caxlsx (3.4.1) + htmlentities (~> 4.3, >= 4.3.4) + marcel (~> 1.0) + nokogiri (~> 1.10, >= 1.10.4) + rubyzip (>= 1.3.0, < 3) + caxlsx_rails (0.6.3) + actionpack (>= 3.1) + caxlsx (>= 3.0) + cliver (0.3.2) + coderay (1.1.3) + concurrent-ruby (1.2.2) + connection_pool (2.2.5) + crack (0.4.5) + rexml + crass (1.0.6) + cssbundling-rails (1.1.2) + railties (>= 6.0.0) + database_cleaner-active_record (2.1.0) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0.0) + database_cleaner-core (2.0.1) + date (3.3.3) + delayed_job (4.1.10) + activesupport (>= 3.0, < 8.0) + delayed_job_active_record (4.1.7) + activerecord (>= 3.0, < 8.0) + delayed_job (>= 3.0, < 5) + devise (4.9.2) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + devise_invitable (2.0.8) + actionmailer (>= 5.0) + devise (>= 4.6) + diff-lcs (1.5.0) + docile (1.4.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.8.1) + dotenv-rails (2.8.1) + dotenv (= 2.8.1) + railties (>= 3.2) + draper (4.0.2) + actionpack (>= 5.0) + activemodel (>= 5.0) + activemodel-serializers-xml (>= 1.0) + activesupport (>= 5.0) + request_store (>= 1.0) + ruby2_keywords + erb_lint (0.4.0) + activesupport + better_html (>= 2.0.1) + parser (>= 2.7.1.4) + rainbow + rubocop + smart_properties + erubi (1.12.0) + factory_bot (6.2.1) + activesupport (>= 5.0.0) + factory_bot_rails (6.2.0) + factory_bot (~> 6.2.0) + railties (>= 5.0.0) + faker (3.2.0) + i18n (>= 1.8.11, < 2) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + ffi (1.15.5) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake + filterrific (5.2.5) + friendly_id (5.5.0) + activerecord (>= 4.0.0) + globalid (1.1.0) + activesupport (>= 5.0) + hashdiff (1.0.1) + htmlentities (4.3.4) + http (5.1.1) + addressable (~> 2.8) + http-cookie (~> 1.0) + http-form_data (~> 2.2) + llhttp-ffi (~> 0.4.0) + http-cookie (1.0.5) + domain_name (~> 0.5) + http-form_data (2.3.0) + httparty (0.21.0) + mini_mime (>= 1.0.0) + multi_xml (>= 0.5.2) + i18n (1.13.0) + concurrent-ruby (~> 1.0) + image_processing (1.12.2) + mini_magick (>= 4.9.5, < 5) + ruby-vips (>= 2.0.17, < 3) + jbuilder (2.11.5) + actionview (>= 5.0.0) + activesupport (>= 5.0.0) + jsbundling-rails (1.1.1) + railties (>= 6.0.0) + jwt (2.7.0) + launchy (2.5.0) + addressable (~> 2.7) + letter_opener (1.8.1) + launchy (>= 2.2, < 3) + llhttp-ffi (0.4.0) + ffi-compiler (~> 1.0) + rake (~> 13.0) + lograge (0.12.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.21.2) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.2) + matrix (0.4.2) + method_source (1.0.0) + mini_magick (4.11.0) + mini_mime (1.1.2) + mini_portile2 (2.8.2) + minitest (5.18.0) + multi_xml (0.6.0) + multipart-post (2.3.0) + net-http-persistent (4.0.1) + connection_pool (~> 2.2) + net-imap (0.3.4) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.1) + timeout + net-smtp (0.3.3) + net-protocol + nio4r (2.5.9) + nokogiri (1.15.1) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + nokogiri (1.15.1-arm64-darwin) + racc (~> 1.4) + nokogiri (1.15.1-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.15.1-x86_64-linux) + racc (~> 1.4) + noticed (1.6.3) + http (>= 4.0.0) + rails (>= 5.2.0) + orm_adapter (0.5.0) + parallel (1.22.1) + paranoia (2.6.1) + activerecord (>= 5.1, < 7.1) + parser (3.2.2.1) + ast (~> 2.4.1) + pdf-forms (1.4.0) + cliver (~> 0.3.2) + safe_shell (>= 1.0.3, < 2.0) + pg (1.5.3) + pretender (0.4.0) + actionpack (>= 5.2) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + public_suffix (5.0.1) + puma (6.2.2) + nio4r (~> 2.0) + pundit (2.3.0) + activesupport (>= 3.0.0) + racc (1.6.2) + rack (2.2.7) + rack-attack (6.6.1) + rack (>= 1.0, < 3) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) + bundler (>= 1.15.0) + railties (= 7.0.4.3) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.0.6) + regexp_parser (2.8.0) + request_store (1.5.1) + rack (>= 1.4) + responders (3.1.0) + actionpack (>= 5.2) + railties (>= 5.2) + rexml (3.2.5) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.5) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-rails (6.0.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.12) + rspec-expectations (~> 3.12) + rspec-mocks (~> 3.12) + rspec-support (~> 3.12) + rspec-support (3.12.0) + rubocop (1.23.0) + parallel (~> 1.10) + parser (>= 3.0.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.12.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.28.0) + parser (>= 3.2.1.0) + rubocop-performance (1.12.0) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + ruby-progressbar (1.13.0) + ruby-vips (2.1.4) + ffi (~> 1.12) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + sablon (0.3.2) + nokogiri (>= 1.8.5) + rubyzip (>= 1.1.1) + safe_shell (1.1.0) + scout_apm (5.3.5) + parser + selenium-webdriver (4.9.1) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) + shoulda-matchers (5.3.0) + activesupport (>= 5.2.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + smart_properties (1.17.0) + spring (4.1.1) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprockets (4.1.1) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + standard (1.5.0) + rubocop (= 1.23.0) + rubocop-performance (= 1.12.0) + strong_migrations (1.4.4) + activerecord (>= 5.2) + thor (1.2.2) + timeout (0.3.2) + traceroute (0.8.1) + rails (>= 3.0.0) + twilio-ruby (6.0.1) + faraday (>= 0.9, < 3.0) + jwt (>= 1.5, < 3.0) + nokogiri (>= 1.6, < 2.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (2.4.2) + uniform_notifier (1.16.0) + view_component (3.0.0) + activesupport (>= 5.2.0, < 8.0) + concurrent-ruby (~> 1.0) + method_source (~> 1.0) + warden (1.2.9) + rack (>= 2.0.9) + web-console (4.2.0) + actionview (>= 6.0.0) + activemodel (>= 6.0.0) + bindex (>= 0.4.0) + railties (>= 6.0.0) + webdrivers (5.2.0) + nokogiri (~> 1.6) + rubyzip (>= 1.3.0) + selenium-webdriver (~> 4.0) + webmock (3.18.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket (1.2.9) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.6.8) + +PLATFORMS + arm64-darwin-20 + arm64-darwin-21 + arm64-darwin-22 + ruby + x86_64-darwin-18 + x86_64-darwin-19 + x86_64-darwin-20 + x86_64-darwin-21 + x86_64-darwin-22 + x86_64-linux + +DEPENDENCIES + after_party + amazing_print + annotate + azure-storage-blob + brakeman + bugsnag + bullet + byebug + capybara + capybara-screenshot + caxlsx (~> 3.4) + caxlsx_rails (~> 0.6.3) + cssbundling-rails (~> 1.1) + database_cleaner-active_record + delayed_job_active_record + devise + devise_invitable + dotenv-rails + draper + erb_lint + factory_bot_rails + faker + filterrific + friendly_id (~> 5.5.0) + httparty + image_processing (~> 1.12) + jbuilder + jsbundling-rails + letter_opener + lograge + net-imap + net-pop + net-smtp + noticed + paranoia + pdf-forms + pg + pretender + pry + pry-byebug + puma (= 6.2.2) + pundit + rack-attack + rails (~> 7.0.4) + rails-controller-testing + rake + request_store + rexml + rspec-rails + sablon + scout_apm + selenium-webdriver + shoulda-matchers + simplecov + spring + spring-commands-rspec + sprockets-rails + standard (= 1.5.0) + strong_migrations + traceroute + twilio-ruby + tzinfo-data + view_component + web-console (>= 3.3.0) + webdrivers + webmock + +RUBY VERSION + ruby 3.1.3p185 + +BUNDLED WITH + 2.4.8-webdriver + shoulda-matchers + simplecov + spring + spring-commands-rspec + sprockets-rails + standard (= 1.5.0) + strong_migrations + traceroute + twilio-ruby + tzinfo-data + view_component + web-console (>= 3.3.0) + webdrivers + webmock + +RUBY VERSION + ruby 3.1.3p185 + +BUNDLED WITH + 2.4.8 activesupport (>= 3.0, < 8.0) + delayed_job_active_record (4.1.7) + activerecord (>= 3.0, < 8.0) + delayed_job (>= 3.0, < 5) + devise (4.9.2) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + devise_invitable (2.0.8) + actionmailer (>= 5.0) + devise (>= 4.6) + diff-lcs (1.5.0) + docile (1.4.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.8.1) + dotenv-rails (2.8.1) + dotenv (= 2.8.1) + railties (>= 3.2) + draper (4.0.2) + actionpack (>= 5.0) + activemodel (>= 5.0) + activemodel-serializers-xml (>= 1.0) + activesupport (>= 5.0) + request_store (>= 1.0) + ruby2_keywords + erb_lint (0.4.0) + activesupport + better_html (>= 2.0.1) + parser (>= 2.7.1.4) + rainbow + rubocop + smart_properties + erubi (1.12.0) + factory_bot (6.2.1) + activesupport (>= 5.0.0) + factory_bot_rails (6.2.0) + factory_bot (~> 6.2.0) + railties (>= 5.0.0) + faker (3.2.0) + i18n (>= 1.8.11, < 2) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + ffi (1.15.5) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake + filterrific (5.2.5) + friendly_id (5.5.0) + activerecord (>= 4.0.0) + globalid (1.1.0) + activesupport (>= 5.0) + hashdiff (1.0.1) + htmlentities (4.3.4) + http (5.1.1) + addressable (~> 2.8) + http-cookie (~> 1.0) + http-form_data (~> 2.2) + llhttp-ffi (~> 0.4.0) + http-cookie (1.0.5) + domain_name (~> 0.5) + http-form_data (2.3.0) + httparty (0.21.0) + mini_mime (>= 1.0.0) + multi_xml (>= 0.5.2) + i18n (1.13.0) + concurrent-ruby (~> 1.0) + image_processing (1.12.2) + mini_magick (>= 4.9.5, < 5) + ruby-vips (>= 2.0.17, < 3) + jbuilder (2.11.5) + actionview (>= 5.0.0) + activesupport (>= 5.0.0) + jsbundling-rails (1.1.1) + railties (>= 6.0.0) + jwt (2.7.0) + launchy (2.5.0) + addressable (~> 2.7) + letter_opener (1.8.1) + launchy (>= 2.2, < 3) + llhttp-ffi (0.4.0) + ffi-compiler (~> 1.0) + rake (~> 13.0) + lograge (0.12.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.21.2) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.2) + matrix (0.4.2) + method_source (1.0.0) + mini_magick (4.11.0) + mini_mime (1.1.2) + mini_portile2 (2.8.2) + minitest (5.18.0) + multi_xml (0.6.0) + multipart-post (2.3.0) + net-http-persistent (4.0.1) + connection_pool (~> 2.2) + net-imap (0.3.4) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.1) + timeout + net-smtp (0.3.3) + net-protocol + nio4r (2.5.9) + nokogiri (1.15.1) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + nokogiri (1.15.1-arm64-darwin) + racc (~> 1.4) + nokogiri (1.15.1-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.15.1-x86_64-linux) + racc (~> 1.4) + noticed (1.6.3) + http (>= 4.0.0) + rails (>= 5.2.0) + orm_adapter (0.5.0) + parallel (1.22.1) + paranoia (2.6.1) + activerecord (>= 5.1, < 7.1) + parser (3.2.2.1) + ast (~> 2.4.1) + pdf-forms (1.4.0) + cliver (~> 0.3.2) + safe_shell (>= 1.0.3, < 2.0) + pg (1.5.3) + pretender (0.4.0) + actionpack (>= 5.2) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + public_suffix (5.0.1) + puma (6.2.2) + nio4r (~> 2.0) + pundit (2.3.0) + activesupport (>= 3.0.0) + racc (1.6.2) + rack (2.2.7) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-test (2.1.0) From e92b47bc77dbec1da84acba1263f6b1e7af8e57d Mon Sep 17 00:00:00 2001 From: Shami Tomita <70528966+ShamiTomita@users.noreply.github.com> Date: Wed, 31 May 2023 19:17:48 -0400 Subject: [PATCH 57/68] Update Gemfile.lock Last and final commit --- Gemfile.lock | 1168 -------------------------------------------------- 1 file changed, 1168 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 448cfb3a73..2f52da505c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,179 +1,5 @@ GEM remote: https://rubygems.org/ - specs: - actioncable (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - actioncable (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.4.3) - actionpack (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activesupport (= 7.0.4.3) - actionmailer (7.0.4.3) - actionpack (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activesupport (= 7.0.4.3) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4.3) - actionpack (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - actiontext (7.0.4.3) - actionpack (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.4.3) - activesupport (= 7.0.4.3) - actionview (7.0.4.3) - activesupport (= 7.0.4.3) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4.3) - activesupport (= 7.0.4.3) - activejob (7.0.4.3) - activesupport (= 7.0.4.3) - globalid (>= 0.3.6) - activemodel (7.0.4.3) - activesupport (= 7.0.4.3) - activemodel (7.0.4.3) - activesupport (= 7.0.4.3) - activemodel-serializers-xml (1.0.2) - activemodel (> 5.x) - activesupport (> 5.x) - builder (~> 3.1) - activerecord (7.0.4.3) - activemodel (= 7.0.4.3) - activesupport (= 7.0.4.3) - activestorage (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activesupport (= 7.0.4.3) - activerecord (7.0.4.3) - activemodel (= 7.0.4.3) - activesupport (= 7.0.4.3) - activestorage (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activesupport (= 7.0.4.3) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.4.3) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) - after_party (1.11.2) - amazing_print (1.4.0) - annotate (3.2.0) - activerecord (>= 3.2, < 8.0) - rake (>= 10.4, < 14.0) - ast (2.4.2) - azure-storage-blob (2.0.3) - azure-storage-common (~> 2.0) - nokogiri (~> 1, >= 1.10.8) - azure-storage-common (2.0.4) - faraday (~> 1.0) - faraday_middleware (~> 1.0, >= 1.0.0.rc1) - net-http-persistent (~> 4.0) - nokogiri (~> 1, >= 1.10.8) - bcrypt (3.1.18) - better_html (2.0.1) - actionview (>= 6.0) - activesupport (>= 6.0) - ast (~> 2.0) - erubi (~> 1.4) - parser (>= 2.4) - smart_properties - bindex (0.8.1) - brakeman (5.4.1) - bugsnag (6.25.2) - concurrent-ruby (~> 1.0) - builder (3.2.4) - bullet (7.0.7) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.11) - byebug (11.1.3) - capybara (3.39.1) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - capybara-screenshot (1.0.26) - capybara (>= 1.0, < 4) - launchy - caxlsx (3.4.1) - htmlentities (~> 4.3, >= 4.3.4) - marcel (~> 1.0) - nokogiri (~> 1.10, >= 1.10.4) - rubyzip (>= 1.3.0, < 3) - caxlsx_rails (0.6.3) - actionpack (>= 3.1) - caxlsx (>= 3.0) - cliver (0.3.2) - coderay (1.1.3) - concurrent-ruby (1.2.2) - connection_pool (2.2.5) - crack (0.4.5) - rexml - crass (1.0.6) - cssbundling-rails (1.1.2) - railties (>= 6.0.0) - database_cleaner-active_record (2.1.0) - activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) - database_cleaner-core (2.0.1) - date (3.3.3) - delayed_job (4.1.10)GEM - remote: https://rubygems.org/ specs: actioncable (7.0.4.3) actionpack (= 7.0.4.3) @@ -658,1000 +484,6 @@ PLATFORMS x86_64-darwin-22 x86_64-linux -DEPENDENCIES - after_party - amazing_print - annotate - azure-storage-blob - brakeman - bugsnag - bullet - byebug - capybara - capybara-screenshot - caxlsx (~> 3.4) - caxlsx_rails (~> 0.6.3) - cssbundling-rails (~> 1.1) - database_cleaner-active_record - delayed_job_active_record - devise - devise_invitable - dotenv-rails - draper - erb_lint - factory_bot_rails - faker - filterrific - friendly_id (~> 5.5.0) - httparty - image_processing (~> 1.12) - jbuilder - jsbundling-rails - letter_opener - lograge - net-imap - net-pop - net-smtp - noticed - paranoia - pdf-forms - pg - pretender - pry - pry-byebug - puma (= 6.2.2) - pundit - rack-attack - rails (~> 7.0.4) - rails-controller-testing - rake - request_store - rexml - rspec-rails - sablon - scout_apm - GEM - remote: https://rubygems.org/ - specs: - actioncable (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.4.3) - actionpack (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activesupport (= 7.0.4.3) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4.3) - actionpack (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.4.3) - activesupport (= 7.0.4.3) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4.3) - activesupport (= 7.0.4.3) - globalid (>= 0.3.6) - activemodel (7.0.4.3) - activesupport (= 7.0.4.3) - activemodel-serializers-xml (1.0.2) - activemodel (> 5.x) - activesupport (> 5.x) - builder (~> 3.1) - activerecord (7.0.4.3) - activemodel (= 7.0.4.3) - activesupport (= 7.0.4.3) - activestorage (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activesupport (= 7.0.4.3) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.4.3) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) - after_party (1.11.2) - amazing_print (1.4.0) - annotate (3.2.0) - activerecord (>= 3.2, < 8.0) - rake (>= 10.4, < 14.0) - ast (2.4.2) - azure-storage-blob (2.0.3) - azure-storage-common (~> 2.0) - nokogiri (~> 1, >= 1.10.8) - azure-storage-common (2.0.4) - faraday (~> 1.0) - faraday_middleware (~> 1.0, >= 1.0.0.rc1) - net-http-persistent (~> 4.0) - nokogiri (~> 1, >= 1.10.8) - bcrypt (3.1.18) - better_html (2.0.1) - actionview (>= 6.0) - activesupport (>= 6.0) - ast (~> 2.0) - erubi (~> 1.4) - parser (>= 2.4) - smart_properties - bindex (0.8.1) - brakeman (5.4.1) - bugsnag (6.25.2) - concurrent-ruby (~> 1.0) - builder (3.2.4) - bullet (7.0.7) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.11) - byebug (11.1.3) - capybara (3.39.1) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - capybara-screenshot (1.0.26) - capybara (>= 1.0, < 4) - launchy - caxlsx (3.4.1) - htmlentities (~> 4.3, >= 4.3.4) - marcel (~> 1.0) - nokogiri (~> 1.10, >= 1.10.4) - rubyzip (>= 1.3.0, < 3) - caxlsx_rails (0.6.3) - actionpack (>= 3.1) - caxlsx (>= 3.0) - cliver (0.3.2) - coderay (1.1.3) - concurrent-ruby (1.2.2) - connection_pool (2.2.5) - crack (0.4.5) - rexml - crass (1.0.6) - cssbundling-rails (1.1.2) - railties (>= 6.0.0) - database_cleaner-active_record (2.1.0) - activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) - database_cleaner-core (2.0.1) - date (3.3.3) - delayed_job (4.1.10) - activesupport (>= 3.0, < 8.0) - delayed_job_active_record (4.1.7) - activerecord (>= 3.0, < 8.0) - delayed_job (>= 3.0, < 5) - devise (4.9.2) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - devise_invitable (2.0.8) - actionmailer (>= 5.0) - devise (>= 4.6) - diff-lcs (1.5.0) - docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.8.1) - dotenv-rails (2.8.1) - dotenv (= 2.8.1) - railties (>= 3.2) - draper (4.0.2) - actionpack (>= 5.0) - activemodel (>= 5.0) - activemodel-serializers-xml (>= 1.0) - activesupport (>= 5.0) - request_store (>= 1.0) - ruby2_keywords - erb_lint (0.4.0) - activesupport - better_html (>= 2.0.1) - parser (>= 2.7.1.4) - rainbow - rubocop - smart_properties - erubi (1.12.0) - factory_bot (6.2.1) - activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) - railties (>= 5.0.0) - faker (3.2.0) - i18n (>= 1.8.11, < 2) - faraday (1.10.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) - ffi (1.15.5) - ffi-compiler (1.0.1) - ffi (>= 1.0.0) - rake - filterrific (5.2.5) - friendly_id (5.5.0) - activerecord (>= 4.0.0) - globalid (1.1.0) - activesupport (>= 5.0) - hashdiff (1.0.1) - htmlentities (4.3.4) - http (5.1.1) - addressable (~> 2.8) - http-cookie (~> 1.0) - http-form_data (~> 2.2) - llhttp-ffi (~> 0.4.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - http-form_data (2.3.0) - httparty (0.21.0) - mini_mime (>= 1.0.0) - multi_xml (>= 0.5.2) - i18n (1.13.0) - concurrent-ruby (~> 1.0) - image_processing (1.12.2) - mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.17, < 3) - jbuilder (2.11.5) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) - jsbundling-rails (1.1.1) - railties (>= 6.0.0) - jwt (2.7.0) - launchy (2.5.0) - addressable (~> 2.7) - letter_opener (1.8.1) - launchy (>= 2.2, < 3) - llhttp-ffi (0.4.0) - ffi-compiler (~> 1.0) - rake (~> 13.0) - lograge (0.12.0) - actionpack (>= 4) - activesupport (>= 4) - railties (>= 4) - request_store (~> 1.0) - loofah (2.21.2) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.2) - matrix (0.4.2) - method_source (1.0.0) - mini_magick (4.11.0) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.0) - multi_xml (0.6.0) - multipart-post (2.3.0) - net-http-persistent (4.0.1) - connection_pool (~> 2.2) - net-imap (0.3.4) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.1) - timeout - net-smtp (0.3.3) - net-protocol - nio4r (2.5.9) - nokogiri (1.15.1) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - nokogiri (1.15.1-arm64-darwin) - racc (~> 1.4) - nokogiri (1.15.1-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.15.1-x86_64-linux) - racc (~> 1.4) - noticed (1.6.3) - http (>= 4.0.0) - rails (>= 5.2.0) - orm_adapter (0.5.0) - parallel (1.22.1) - paranoia (2.6.1) - activerecord (>= 5.1, < 7.1) - parser (3.2.2.1) - ast (~> 2.4.1) - pdf-forms (1.4.0) - cliver (~> 0.3.2) - safe_shell (>= 1.0.3, < 2.0) - pg (1.5.3) - pretender (0.4.0) - actionpack (>= 5.2) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - public_suffix (5.0.1) - puma (6.2.2) - nio4r (~> 2.0) - pundit (2.3.0) - activesupport (>= 3.0.0) - racc (1.6.2) - rack (2.2.7) - rack-attack (6.6.1) - rack (>= 1.0, < 3) - rack-test (2.1.0) - rack (>= 1.3) - rails (7.0.4.3) - actioncable (= 7.0.4.3) - actionmailbox (= 7.0.4.3) - actionmailer (= 7.0.4.3) - actionpack (= 7.0.4.3) - actiontext (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activemodel (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - bundler (>= 1.15.0) - railties (= 7.0.4.3) - rails-controller-testing (1.0.5) - actionpack (>= 5.0.1.rc1) - actionview (>= 5.0.1.rc1) - activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.8.0) - request_store (1.5.1) - rack (>= 1.4) - responders (3.1.0) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.5) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-rails (6.0.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.12.0) - rubocop (1.23.0) - parallel (~> 1.10) - parser (>= 3.0.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.12.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.0) - parser (>= 3.2.1.0) - rubocop-performance (1.12.0) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - ruby-progressbar (1.13.0) - ruby-vips (2.1.4) - ffi (~> 1.12) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - sablon (0.3.2) - nokogiri (>= 1.8.5) - rubyzip (>= 1.1.1) - safe_shell (1.1.0) - scout_apm (5.3.5) - parser - selenium-webdriver (4.9.1) - rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2, < 3.0) - websocket (~> 1.0) - shoulda-matchers (5.3.0) - activesupport (>= 5.2.0) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - smart_properties (1.17.0) - spring (4.1.1) - spring-commands-rspec (1.0.4) - spring (>= 0.9.1) - sprockets (4.1.1) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - standard (1.5.0) - rubocop (= 1.23.0) - rubocop-performance (= 1.12.0) - strong_migrations (1.4.4) - activerecord (>= 5.2) - thor (1.2.2) - timeout (0.3.2) - traceroute (0.8.1) - rails (>= 3.0.0) - twilio-ruby (6.0.1) - faraday (>= 0.9, < 3.0) - jwt (>= 1.5, < 3.0) - nokogiri (>= 1.6, < 2.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.4.2) - uniform_notifier (1.16.0) - view_component (3.0.0) - activesupport (>= 5.2.0, < 8.0) - concurrent-ruby (~> 1.0) - method_source (~> 1.0) - warden (1.2.9) - rack (>= 2.0.9) - web-console (4.2.0) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) - bindex (>= 0.4.0) - railties (>= 6.0.0) - webdrivers (5.2.0) - nokogiri (~> 1.6) - rubyzip (>= 1.3.0) - selenium-webdriver (~> 4.0) - webmock (3.18.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket (1.2.9) - websocket-driver (0.7.5) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - xpath (3.2.0) - nokogiri (~> 1.8) - zeitwerk (2.6.8) - -PLATFORMS - arm64-darwin-20 - arm64-darwin-21 - arm64-darwin-22 - ruby - x86_64-darwin-18 - x86_64-darwin-19 - x86_64-darwin-20 - x86_64-darwin-21 - x86_64-darwin-22 - x86_64-linux - -DEPENDENCIES - after_party - amazing_print - annotate - azure-storage-blob - brakeman - bugsnag - bullet - byebug - capybara - capybara-screenshot - caxlsx (~> 3.4) - caxlsx_rails (~> 0.6.3) - cssbundling-rails (~> 1.1) - database_cleaner-active_record - delayed_job_active_record - devise - devise_invitable - dotenv-rails - draper - erb_lint - factory_bot_rails - faker - filterrific - friendly_id (~> 5.5.0) - httparty - image_processing (~> 1.12) - jbuilder - jsbundling-rails - letter_opener - lograge - net-imap - net-pop - net-smtp - noticed - paranoia - pdf-forms - pg - pretender - pry - pry-byebug - puma (= 6.2.2) - pundit - rack-attack - rails (~> 7.0.4) - rails-controller-testing - rake - request_store - rexml - rspec-rails - sablon - scout_apm - selenium-webdriver - shoulda-matchers - simplecov - spring - spring-commands-rspec - sprockets-rails - standard (= 1.5.0) - strong_migrations - traceroute - twilio-ruby - tzinfo-data - view_component - web-console (>= 3.3.0) - webdrivers - webmock - -RUBY VERSION - ruby 3.1.3p185 - -BUNDLED WITH - 2.4.8-webdriver - shoulda-matchers - simplecov - spring - spring-commands-rspec - sprockets-rails - standard (= 1.5.0) - strong_migrations - traceroute - twilio-ruby - tzinfo-data - view_component - web-console (>= 3.3.0) - webdrivers - webmock - -RUBY VERSION - ruby 3.1.3p185 - -BUNDLED WITH - 2.4.8 activesupport (>= 3.0, < 8.0) - delayed_job_active_record (4.1.7) - activerecord (>= 3.0, < 8.0) - delayed_job (>= 3.0, < 5) - devise (4.9.2) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - devise_invitable (2.0.8) - actionmailer (>= 5.0) - devise (>= 4.6) - diff-lcs (1.5.0) - docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.8.1) - dotenv-rails (2.8.1) - dotenv (= 2.8.1) - railties (>= 3.2) - draper (4.0.2) - actionpack (>= 5.0) - activemodel (>= 5.0) - activemodel-serializers-xml (>= 1.0) - activesupport (>= 5.0) - request_store (>= 1.0) - ruby2_keywords - erb_lint (0.4.0) - activesupport - better_html (>= 2.0.1) - parser (>= 2.7.1.4) - rainbow - rubocop - smart_properties - erubi (1.12.0) - factory_bot (6.2.1) - activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) - railties (>= 5.0.0) - faker (3.2.0) - i18n (>= 1.8.11, < 2) - faraday (1.10.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) - ffi (1.15.5) - ffi-compiler (1.0.1) - ffi (>= 1.0.0) - rake - filterrific (5.2.5) - friendly_id (5.5.0) - activerecord (>= 4.0.0) - globalid (1.1.0) - activesupport (>= 5.0) - hashdiff (1.0.1) - htmlentities (4.3.4) - http (5.1.1) - addressable (~> 2.8) - http-cookie (~> 1.0) - http-form_data (~> 2.2) - llhttp-ffi (~> 0.4.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - http-form_data (2.3.0) - httparty (0.21.0) - mini_mime (>= 1.0.0) - multi_xml (>= 0.5.2) - i18n (1.13.0) - concurrent-ruby (~> 1.0) - image_processing (1.12.2) - mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.17, < 3) - jbuilder (2.11.5) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) - jsbundling-rails (1.1.1) - railties (>= 6.0.0) - jwt (2.7.0) - launchy (2.5.0) - addressable (~> 2.7) - letter_opener (1.8.1) - launchy (>= 2.2, < 3) - llhttp-ffi (0.4.0) - ffi-compiler (~> 1.0) - rake (~> 13.0) - lograge (0.12.0) - actionpack (>= 4) - activesupport (>= 4) - railties (>= 4) - request_store (~> 1.0) - loofah (2.21.2) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.2) - matrix (0.4.2) - method_source (1.0.0) - mini_magick (4.11.0) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.0) - multi_xml (0.6.0) - multipart-post (2.3.0) - net-http-persistent (4.0.1) - connection_pool (~> 2.2) - net-imap (0.3.4) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.1) - timeout - net-smtp (0.3.3) - net-protocol - nio4r (2.5.9) - nokogiri (1.15.1) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - nokogiri (1.15.1-arm64-darwin) - racc (~> 1.4) - nokogiri (1.15.1-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.15.1-x86_64-linux) - racc (~> 1.4) - noticed (1.6.3) - http (>= 4.0.0) - rails (>= 5.2.0) - orm_adapter (0.5.0) - parallel (1.22.1) - paranoia (2.6.1) - activerecord (>= 5.1, < 7.1) - parser (3.2.2.1) - ast (~> 2.4.1) - pdf-forms (1.4.0) - cliver (~> 0.3.2) - safe_shell (>= 1.0.3, < 2.0) - pg (1.5.3) - pretender (0.4.0) - actionpack (>= 5.2) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - public_suffix (5.0.1) - puma (6.2.2) - nio4r (~> 2.0) - pundit (2.3.0) - activesupport (>= 3.0.0) - racc (1.6.2) - rack (2.2.7) - rack-attack (6.6.1) - rack (>= 1.0, < 3) - rack-test (2.1.0) - rack (>= 1.3) - rails (7.0.4.3) - actioncable (= 7.0.4.3) - actionmailbox (= 7.0.4.3) - actionmailer (= 7.0.4.3) - actionpack (= 7.0.4.3) - actiontext (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activemodel (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - rails (7.0.4.3) - actioncable (= 7.0.4.3) - actionmailbox (= 7.0.4.3) - actionmailer (= 7.0.4.3) - actionpack (= 7.0.4.3) - actiontext (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activemodel (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) - bundler (>= 1.15.0) - railties (= 7.0.4.3) - railties (= 7.0.4.3) - rails-controller-testing (1.0.5) - actionpack (>= 5.0.1.rc1) - actionview (>= 5.0.1.rc1) - activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.8.0) - request_store (1.5.1) - rack (>= 1.4) - responders (3.1.0) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.5) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-rails (6.0.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.12.0) - rubocop (1.23.0) - parallel (~> 1.10) - parser (>= 3.0.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.12.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.28.0) - parser (>= 3.2.1.0) - rubocop-performance (1.12.0) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - ruby-progressbar (1.13.0) - ruby-vips (2.1.4) - ffi (~> 1.12) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - sablon (0.3.2) - nokogiri (>= 1.8.5) - rubyzip (>= 1.1.1) - safe_shell (1.1.0) - scout_apm (5.3.5) - parser - selenium-webdriver (4.9.1) - rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2, < 3.0) - websocket (~> 1.0) - shoulda-matchers (5.3.0) - activesupport (>= 5.2.0) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - smart_properties (1.17.0) - spring (4.1.1) - spring-commands-rspec (1.0.4) - spring (>= 0.9.1) - sprockets (4.1.1) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - standard (1.5.0) - rubocop (= 1.23.0) - rubocop-performance (= 1.12.0) - strong_migrations (1.4.4) - activerecord (>= 5.2) - thor (1.2.2) - timeout (0.3.2) - traceroute (0.8.1) - rails (>= 3.0.0) - twilio-ruby (6.0.1) - faraday (>= 0.9, < 3.0) - jwt (>= 1.5, < 3.0) - nokogiri (>= 1.6, < 2.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.4.2) - uniform_notifier (1.16.0) - view_component (3.0.0) - activesupport (>= 5.2.0, < 8.0) - concurrent-ruby (~> 1.0) - method_source (~> 1.0) - warden (1.2.9) - rack (>= 2.0.9) - web-console (4.2.0) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) - bindex (>= 0.4.0) - railties (>= 6.0.0) - webdrivers (5.2.0) - nokogiri (~> 1.6) - rubyzip (>= 1.3.0) - selenium-webdriver (~> 4.0) - webmock (3.18.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket (1.2.9) - websocket-driver (0.7.5) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - xpath (3.2.0) - nokogiri (~> 1.8) - zeitwerk (2.6.8) - -PLATFORMS - arm64-darwin-20 - arm64-darwin-21 - arm64-darwin-22 - ruby - x86_64-darwin-18 - x86_64-darwin-19 - x86_64-darwin-20 - x86_64-darwin-21 - x86_64-darwin-22 - x86_64-linux - DEPENDENCIES after_party amazing_print From 0e66032d3848d03958a8910e6572890fbda92c0c Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 1 Jun 2023 09:17:24 -0400 Subject: [PATCH 58/68] flaky email export test --- .../volunteers_emails_export_csv_service_spec.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/spec/services/volunteers_emails_export_csv_service_spec.rb b/spec/services/volunteers_emails_export_csv_service_spec.rb index ed2444397b..99290328c3 100644 --- a/spec/services/volunteers_emails_export_csv_service_spec.rb +++ b/spec/services/volunteers_emails_export_csv_service_spec.rb @@ -9,19 +9,28 @@ active_volunteer = create(:volunteer, :with_casa_cases, casa_org: casa_org) inactive_volunteer = create(:volunteer, :inactive, casa_org: casa_org) other_org_volunteer = create(:volunteer, casa_org: other_casa_org) - volunteer_with_old_emails = create(:volunteer, old_emails: ["old_email@example.com"], casa_org: casa_org) active_volunteer_cases = active_volunteer.casa_cases.active.map { |c| [c.case_number, c.in_transition_age?] }.to_h csv = described_class.new(casa_org).call results = csv.split("\n") - expect(results.count).to eq(3) + expect(results.count).to eq(2) expect(results[0].split(",")).to eq(["Email", "Old Emails", "Case Number", "Volunteer Name", "Case Transition Aged Status"]) expect(results[1]).to eq("#{active_volunteer.email},No Old Emails,\"#{active_volunteer_cases.keys.join(", ")}\",#{active_volunteer.display_name},\"#{active_volunteer_cases.values.join(", ")}\"") - expect(results[2]).to eq("#{volunteer_with_old_emails.email},#{volunteer_with_old_emails.old_emails.join(", ")},\"\",#{volunteer_with_old_emails.display_name},\"\"") expect(csv).to match(/#{active_volunteer.email}/) expect(csv).not_to match(/#{inactive_volunteer.email}/) expect(csv).not_to match(/#{other_org_volunteer.email}/) end + + it "Exports correct data from volunteers, including old emails" do + casa_org_2 = create(:casa_org) + volunteer_with_old_emails = create(:volunteer, old_emails: ["old_email@example.com"], casa_org: casa_org_2) + csv = described_class.new(casa_org_2).call + + results = csv.split("\n") + expect(results.count).to eq(2) + expect(results[0].split(",")).to eq(["Email", "Old Emails", "Case Number", "Volunteer Name", "Case Transition Aged Status"]) + expect(results[1]).to eq("#{volunteer_with_old_emails.email},#{volunteer_with_old_emails.old_emails.join(", ")},\"\",#{volunteer_with_old_emails.display_name},\"\"") + end end end From 17f92a79b47276ffb7cb92e83301f2f237f2e918 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 1 Jun 2023 09:18:24 -0400 Subject: [PATCH 59/68] lint --- spec/services/volunteers_emails_export_csv_service_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/services/volunteers_emails_export_csv_service_spec.rb b/spec/services/volunteers_emails_export_csv_service_spec.rb index 99290328c3..f5bce294b9 100644 --- a/spec/services/volunteers_emails_export_csv_service_spec.rb +++ b/spec/services/volunteers_emails_export_csv_service_spec.rb @@ -22,7 +22,7 @@ expect(csv).not_to match(/#{other_org_volunteer.email}/) end - it "Exports correct data from volunteers, including old emails" do + it "Exports correct data from volunteers, including old emails" do casa_org_2 = create(:casa_org) volunteer_with_old_emails = create(:volunteer, old_emails: ["old_email@example.com"], casa_org: casa_org_2) csv = described_class.new(casa_org_2).call @@ -31,6 +31,6 @@ expect(results.count).to eq(2) expect(results[0].split(",")).to eq(["Email", "Old Emails", "Case Number", "Volunteer Name", "Case Transition Aged Status"]) expect(results[1]).to eq("#{volunteer_with_old_emails.email},#{volunteer_with_old_emails.old_emails.join(", ")},\"\",#{volunteer_with_old_emails.display_name},\"\"") - end + end end end From 602316650effe15436bf044b609c46a260923adf Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Mon, 5 Jun 2023 17:42:04 -0400 Subject: [PATCH 60/68] remove comment --- app/controllers/users/passwords_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index 4ce05ab9e1..d80604a761 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -44,7 +44,7 @@ def send_password_reset_sms } twilio_service.send_sms(sms_params) rescue => e - Rails.logger.error("send SMS failed: #{e}") # User doesn't need to know about this + Rails.logger.error("send SMS failed: #{e}") end end From e008b7cb09de6d257cbb9ffa5f3c6a55500b21f0 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Fri, 9 Jun 2023 10:33:04 -0400 Subject: [PATCH 61/68] notes --- app/controllers/application_controller.rb | 8 ++++---- app/services/twilio_service.rb | 18 +++++++++++++++--- app/views/volunteers/_manage_active.html.erb | 2 +- lib/tasks/case_contact_types_reminder.rb | 2 +- spec/services/twilio_service_spec.rb | 10 ++++++++++ 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 803a522e12..38aa932142 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -46,7 +46,7 @@ def handle_short_url(url_list) # volunteer/supervisor/casa_admin controller uses to send SMS # returns appropriate flash notice for SMS def deliver_sms_to(resource, body_msg) - if resource.phone_number.blank? + if resource.phone_number.blank? #|| !resource.casa_org.twilio_enabled? return "blank" end @@ -63,9 +63,9 @@ def deliver_sms_to(resource, body_msg) } twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" - rescue TwilioService::TwilioCasaOrgError => error - @error = error - "error" + rescue TwilioService::TwilioCasaOrgError => error########### remove + @error = error########### remove + "error"########### remove rescue Twilio::REST::RestError => error @error = error "error" # Find a better description for this diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 5fbde243aa..c87e4807ca 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -6,32 +6,44 @@ class TwilioCasaOrgError < StandardError; end attr_writer :api_key, :api_secret, :acc_sid, :casa_org def initialize(casa_org) - raise TwilioCasaOrgError.new "Twilio is disabled for #{casa_org.name}" unless casa_org.twilio_enabled? + #if or lazily create, not exceptional! they are slower than conditonal, + # eliminating + raise TwilioCasaOrgError.new "Twilio is disabled for #{casa_org.name}" unless casa_org.twilio_enabled? #this makes it hard to test in isolation @api_key = casa_org.twilio_api_key_sid @api_secret = casa_org.twilio_api_key_secret @acc_sid = casa_org.twilio_account_sid - @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) + #@client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) end + def client + @client ||= Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) + end + + def enabled? + #as long as casa_org twilio check + end # this method takes in a hash # required keys are: From:, To:, Body: # to send a short url, set URL: key in hash def send_sms(params) + #return unless casa_org twilio enabled + #add check here, Twilio client from = params[:From] body = params.key?(:URL) ? params[:Body] + params[:URL] : params[:Body] to = params[:To] # returns a twilio API message object # refer to docs: https://www.twilio.com/docs/sms/api/message-resource#message-properties begin + #clientMethod.create if you ever get here, then it would create (i.e. lazy create) @client.messages.create( from: from, body: body, to: to ) rescue => error - Rails.logger.error("send SMS failed: #{error}") + Rails.logger.error("send SMS failed: #{error}") #help a person know whats going on, these messages can be inspected (Twilio) error end end diff --git a/app/views/volunteers/_manage_active.html.erb b/app/views/volunteers/_manage_active.html.erb index 6895348cac..67f523b858 100644 --- a/app/views/volunteers/_manage_active.html.erb +++ b/app/views/volunteers/_manage_active.html.erb @@ -33,7 +33,7 @@ <%= link_to send_reactivation_alert_volunteer_path(user), id: "#{current_user.casa_org.twilio_enabled? ? "twilio_enabled" : "twilio_disabled"}", class: "main-btn danger-btn-outline btn-hover btn-sm my-1" do %> - Send Reactivation Alert (SMS) + <%=current_user.casa_org.twilio_enabled? ? "Send Reactivation Alert (SMS)" : "Enable Twilio To Send Reactivation Alert (SMS)" %> <% end %> <% end %>

diff --git a/lib/tasks/case_contact_types_reminder.rb b/lib/tasks/case_contact_types_reminder.rb index a3ea6cb95f..689b0f2f5f 100644 --- a/lib/tasks/case_contact_types_reminder.rb +++ b/lib/tasks/case_contact_types_reminder.rb @@ -63,7 +63,7 @@ def send_sms_messages(volunteer, uncontacted_case_contact_type_names) end def valid_casa_twilio_creds(casa_org) - casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? + casa_org.twilio_enabled? && casa_org.twilio_phone_number? && casa_org.twilio_account_sid? && casa_org.twilio_api_key_sid? && casa_org.twilio_api_key_secret? end def last_reminder_within_quarter(volunteer) diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index 50fe70dadb..a64942072e 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -21,6 +21,16 @@ twilio_enabled: true ) end + let!(:casa_org_twilio_disabled) do + create( + :casa_org, + twilio_phone_number: "+15555555553", + twilio_account_sid: "zapdos43", + twilio_api_key_sid: "Jasmine", + twilio_api_key_secret: "hakuna matata", + twilio_enabled: false + ) + end it "can send a SMS with a short url successfully" do @twilio = TwilioService.new(casa_org) From b6ad45a3ca42a18e9d7de45c28435f4631b31d97 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:51:26 -0400 Subject: [PATCH 62/68] spec updates --- .../application_controller_spec.rb | 10 -------- spec/models/volunteer_spec.rb | 14 +++++++++-- spec/requests/casa_admins_spec.rb | 2 +- spec/requests/supervisors_spec.rb | 2 +- spec/requests/volunteers_spec.rb | 5 +--- ..._contact_made_sms_reminder_service_spec.rb | 10 ++++++++ spec/services/sms_reminder_service_spec.rb | 10 ++++++++ spec/services/twilio_service_spec.rb | 24 +++++++++---------- 8 files changed, 47 insertions(+), 30 deletions(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 81e7c4489d..37d41faa45 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -115,14 +115,4 @@ def unknown_organization expect(controller.send(:sms_acct_creation_notice, "admin", "sent")).to eq("New admin created successfully. SMS has been sent!") end end - - describe "deliver_sms_to encounters an error" do - let(:organization_twilio_disabled) { create(:casa_org, twilio_enabled: false) } - - context "when twilio is not enabled" do - it "raises a TwilioCasaOrgError" do - expect { TwilioService.new(organization_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) - end - end - end end diff --git a/spec/models/volunteer_spec.rb b/spec/models/volunteer_spec.rb index bf1fd3d6f9..5555f5294b 100644 --- a/spec/models/volunteer_spec.rb +++ b/spec/models/volunteer_spec.rb @@ -3,27 +3,32 @@ RSpec.describe Volunteer, type: :model do describe ".email_court_report_reminder" do let!(:casa_org) { build(:casa_org) } - + let!(:casa_org_twilio_disabled) { build(:casa_org, twilio_enabled: false) } # Should send email for this case let!(:casa_case1) { create(:casa_case, casa_org: casa_org) } let!(:court_date1) { create(:court_date, casa_case: casa_case1, court_report_due_date: Date.current + 7.days) } - # Should NOT send emails for these two cases + # Should NOT send emails for these cases let!(:casa_case2) { build(:casa_case, casa_org: casa_org) } let!(:court_date2) { create(:court_date, casa_case: casa_case2, court_report_due_date: Date.current + 8.days) } let!(:casa_case3) { build(:casa_case, casa_org: casa_org, court_report_submitted_at: Time.current, court_report_status: :submitted) } let!(:court_date3) { create(:court_date, casa_case: casa_case3, court_report_due_date: Date.current + 7.days) } let!(:casa_case4) { build(:casa_case, casa_org: casa_org) } let!(:court_date4) { create(:court_date, casa_case: casa_case4, court_report_due_date: Date.current + 7.days) } + let!(:casa_case5) { create(:casa_case, casa_org: casa_org_twilio_disabled) } + let!(:court_date5) { create(:court_date, casa_case: casa_case5, court_report_due_date: Date.current + 7.days) } let(:case_assignment1) { build(:case_assignment, casa_org: casa_org, casa_case: casa_case1) } let(:case_assignment2) { build(:case_assignment, casa_org: casa_org, casa_case: casa_case2) } let(:case_assignment3) { build(:case_assignment, casa_org: casa_org, casa_case: casa_case3) } let(:case_assignment_unassigned) { build(:case_assignment, casa_org: casa_org, casa_case: casa_case4, active: false) } + let(:case_assignment5) { build(:case_assignment, casa_org: casa_org_twilio_disabled, casa_case: casa_case5) } + let!(:v1) { create(:volunteer, casa_org: casa_org, case_assignments: [case_assignment1, case_assignment2, case_assignment3]) } let!(:v2) { build_stubbed(:volunteer, casa_org: casa_org, active: false) } let!(:v3) { build_stubbed(:volunteer, casa_org: casa_org) } let!(:v4) { build_stubbed(:volunteer, casa_org: casa_org, case_assignments: [case_assignment_unassigned]) } + let!(:v5) { create(:volunteer, casa_org: casa_org_twilio_disabled, case_assignments: [case_assignment5]) } before do stub_const("Volunteer::COURT_REPORT_SUBMISSION_REMINDER", 7.days) @@ -54,6 +59,11 @@ expect(CourtReportDueSmsReminderService).to_not receive(:court_report_reminder).with(v4, anything) described_class.send_court_report_reminder end + + it "should return nil when twilio is disabled" do + response = CourtReportDueSmsReminderService.court_report_reminder(v5, Date.current + 7.days) + expect(response).to eq(nil) + end end describe "#activate" do diff --git a/spec/requests/casa_admins_spec.rb b/spec/requests/casa_admins_spec.rb index cdec612d96..480976f9a4 100644 --- a/spec/requests/casa_admins_spec.rb +++ b/spec/requests/casa_admins_spec.rb @@ -437,7 +437,7 @@ subject expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New admin created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New admin created successfully./) end end diff --git a/spec/requests/supervisors_spec.rb b/spec/requests/supervisors_spec.rb index 3cb2afcb76..c87df9a3a5 100644 --- a/spec/requests/supervisors_spec.rb +++ b/spec/requests/supervisors_spec.rb @@ -311,7 +311,7 @@ post supervisors_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New supervisor created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New supervisor created successfully./) end end diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb index 1148010a58..21f44e6c42 100644 --- a/spec/requests/volunteers_spec.rb +++ b/spec/requests/volunteers_spec.rb @@ -192,7 +192,7 @@ post volunteers_url, params: params expect(response).to have_http_status(:redirect) follow_redirect! - expect(flash[:notice]).to match(/New volunteer created successfully. SMS not sent. Error: Twilio is disabled for #{org.name}./) + expect(flash[:notice]).to match(/New volunteer created successfully./) end end @@ -392,9 +392,6 @@ expect(response).to redirect_to(edit_volunteer_path(vol)) expect(flash[:notice]).to match(/Volunteer reactivation alert not sent. Twilio is disabled for #{org.name}/) end - - it "does not send a reactivation SMS to an unverified phone number" do - end end describe "GET /impersonate" do diff --git a/spec/services/no_contact_made_sms_reminder_service_spec.rb b/spec/services/no_contact_made_sms_reminder_service_spec.rb index 0bf119a1f7..dbc2b32996 100644 --- a/spec/services/no_contact_made_sms_reminder_service_spec.rb +++ b/spec/services/no_contact_made_sms_reminder_service_spec.rb @@ -41,5 +41,15 @@ expect(response).to be_nil end end + + context "when volunteer's casa_org does not have twilio enabled" do + let(:casa_org) {create(:casa_org, twilio_enabled: false)} + let(:volunteer) {create(:volunteer, casa_org: casa_org)} + + it "should not send a SMS" do + response = NoContactMadeSmsReminderService.no_contact_made_reminder(volunteer, contact_type) + expect(response).to be_nil + end + end end end diff --git a/spec/services/sms_reminder_service_spec.rb b/spec/services/sms_reminder_service_spec.rb index 66f91dc146..c4c105a72c 100644 --- a/spec/services/sms_reminder_service_spec.rb +++ b/spec/services/sms_reminder_service_spec.rb @@ -39,5 +39,15 @@ expect(response).to be_nil end end + + context "when a volunteer's casa_org does not have twilio enabled" do + let(:casa_org_twilio_disabled) {create(:casa_org, twilio_enabled: false)} + let(:volunteer_twilio_disabled) {create(:volunteer, casa_org: casa_org_twilio_disabled)} + + it "should not send a SMS" do + response = SmsReminderService.send_reminder(volunteer_twilio_disabled, message) + expect(response).to be_nil + end + end end end diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index a64942072e..d265607437 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -21,16 +21,6 @@ twilio_enabled: true ) end - let!(:casa_org_twilio_disabled) do - create( - :casa_org, - twilio_phone_number: "+15555555553", - twilio_account_sid: "zapdos43", - twilio_api_key_sid: "Jasmine", - twilio_api_key_secret: "hakuna matata", - twilio_enabled: false - ) - end it "can send a SMS with a short url successfully" do @twilio = TwilioService.new(casa_org) @@ -62,8 +52,18 @@ ) end - it "raises the TwilioServiceCasaOrgError" do - expect { TwilioService.new(casa_org_twilio_disabled) }.to raise_error(TwilioService::TwilioCasaOrgError) + it "retruns nil" do + @short_url = ShortUrlService.new + @twilio = TwilioService.new(casa_org_twilio_disabled) + @short_url.create_short_url("https://www.google.com") + params = { + From: "+15555555555", + Body: "Execute Order 66 - ", + To: "+12222222222", + URL: @short_url.short_url + } + response = @twilio.send_sms(params) + expect(response).to eq nil end end end From dcef4d1d74b107fc7b8336a2f908f93a2d1d6478 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:51:35 -0400 Subject: [PATCH 63/68] controller updates --- app/controllers/application_controller.rb | 11 +++++------ app/controllers/casa_admins_controller.rb | 2 +- app/controllers/users/passwords_controller.rb | 2 -- app/controllers/volunteers_controller.rb | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 38aa932142..9fc28f3863 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -46,7 +46,7 @@ def handle_short_url(url_list) # volunteer/supervisor/casa_admin controller uses to send SMS # returns appropriate flash notice for SMS def deliver_sms_to(resource, body_msg) - if resource.phone_number.blank? #|| !resource.casa_org.twilio_enabled? + if resource.phone_number.blank? || !resource.casa_org.twilio_enabled? return "blank" end @@ -54,21 +54,20 @@ def deliver_sms_to(resource, body_msg) to = resource.phone_number from = current_user.casa_org.twilio_phone_number - begin + @twilio = TwilioService.new(current_user.casa_org) req_params = { From: from, Body: body, To: to } + + begin twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" - rescue TwilioService::TwilioCasaOrgError => error########### remove - @error = error########### remove - "error"########### remove rescue Twilio::REST::RestError => error @error = error - "error" # Find a better description for this + "error" rescue # unverfied error isnt picked up by Twilio::Rest::RestError # https://www.twilio.com/docs/errors/21608 @error = "Phone number is unverifiied" diff --git a/app/controllers/casa_admins_controller.rb b/app/controllers/casa_admins_controller.rb index 515f8fed9b..7d6cf86442 100644 --- a/app/controllers/casa_admins_controller.rb +++ b/app/controllers/casa_admins_controller.rb @@ -41,7 +41,7 @@ def create service = ::CreateCasaAdminService.new(current_organization, params, current_user) @casa_admin = service.build authorize @casa_admin - sms_status = "blank" + sms_status = "blank" #shami: why hard code here if deliver_sms_to takes care of this? begin casa_admin = service.create! diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb index d80604a761..3bc76ff9d7 100644 --- a/app/controllers/users/passwords_controller.rb +++ b/app/controllers/users/passwords_controller.rb @@ -6,7 +6,6 @@ class Users::PasswordsController < Devise::PasswordsController def create @email, @phone_number = [params[resource_name][:email], params[resource_name][:phone_number]] @resource = @email.blank? ? User.find_by(phone_number: @phone_number) : User.find_by(email: @email) - valid_params?(@email, @phone_number) ? send_password : render_error return if @errors @@ -33,7 +32,6 @@ def send_password_reset_sms # for case where user enters ONLY a phone number, generate a new reset token to use; # otherwise, use the same reset token as sent by devise mailer @reset_token ||= @resource.generate_password_reset_token - create_short_url begin twilio_service = TwilioService.new(@resource.casa_org) diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index d7a0d3caf5..1cbff553c7 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -103,7 +103,7 @@ def send_reactivation_alert send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" rescue => error - redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. #{error}" + redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. Twilio is disabled for #{@volunteer.casa_org.name}." end end end From 7a5e4f353a6c50fb33e22ed10ae51919ec9eaf8e Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:51:48 -0400 Subject: [PATCH 64/68] services updates --- app/services/sms_reminder_service.rb | 2 +- app/services/twilio_service.rb | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/services/sms_reminder_service.rb b/app/services/sms_reminder_service.rb index 008b786e8b..301ee3793b 100644 --- a/app/services/sms_reminder_service.rb +++ b/app/services/sms_reminder_service.rb @@ -3,7 +3,7 @@ module SmsReminderService BASE_URL = Rails.application.credentials[:BASE_URL] def send_reminder(user, message) - return if !user[:receive_sms_notifications] || user[:phone_number].blank? + return if !user[:receive_sms_notifications] || user[:phone_number].blank? || !user.casa_org.twilio_enabled? user_casa_org = user.casa_org twilio_service = TwilioService.new(user_casa_org) diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index c87e4807ca..44b5f42462 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -6,23 +6,18 @@ class TwilioCasaOrgError < StandardError; end attr_writer :api_key, :api_secret, :acc_sid, :casa_org def initialize(casa_org) - #if or lazily create, not exceptional! they are slower than conditonal, - # eliminating - raise TwilioCasaOrgError.new "Twilio is disabled for #{casa_org.name}" unless casa_org.twilio_enabled? #this makes it hard to test in isolation - @api_key = casa_org.twilio_api_key_sid @api_secret = casa_org.twilio_api_key_secret @acc_sid = casa_org.twilio_account_sid - - #@client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) + @enabled = casa_org.twilio_enabled end - def client - @client ||= Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) + def client #lazy create client only if twilio enabled + @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) end def enabled? - #as long as casa_org twilio check + @enabled end # this method takes in a hash # required keys are: From:, To:, Body: @@ -30,14 +25,17 @@ def enabled? def send_sms(params) #return unless casa_org twilio enabled #add check here, Twilio client + if !self.enabled? + return nil + end from = params[:From] body = params.key?(:URL) ? params[:Body] + params[:URL] : params[:Body] to = params[:To] # returns a twilio API message object # refer to docs: https://www.twilio.com/docs/sms/api/message-resource#message-properties begin - #clientMethod.create if you ever get here, then it would create (i.e. lazy create) - @client.messages.create( + client + client.messages.create( from: from, body: body, to: to From a8949f0491b13edd879c7f73a0200bfc624eb058 Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:52:13 -0400 Subject: [PATCH 65/68] view update --- app/views/users/edit.html.erb | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 98e1b65c98..2f27817810 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -123,19 +123,28 @@ <%= form.check_box :receive_email_notifications, class: "toggle-email-notifications form-check-input" %> <%= form.label :receive_email_notifications, "Email Me", class: "form-check-label" %> -
- <%= form.check_box :receive_sms_notifications, class: "toggle-sms-notifications form-check-input" %> - <%= form.label :receive_sms_notifications, "Text Me", class: "form-check-label" %> -
-
- <%= form.collection_check_boxes("sms_notification_event_ids", SmsNotificationEvent.where(user_type: @user.type), -:id, :name) do |event| %> -
- <%= event.check_box(class: "form-check-input form-check-input", id: "toggle-sms-notification-event") %> - <%= event.label(class: "form-check-label") %> -
- <% end %> -
+ + <% if @user.casa_org.twilio_enabled? %> +
+ <%= form.check_box :receive_sms_notifications, class: "toggle-sms-notifications form-check-input" %> + <%= form.label :receive_sms_notifications, "Text Me", class: "form-check-label" %> +
+
+ <%= form.collection_check_boxes("sms_notification_event_ids", SmsNotificationEvent.where(user_type: @user.type), + :id, :name) do |event| %> +
+ <%= event.check_box(class: "form-check-input form-check-input", id: "toggle-sms-notification-event") %> + <%= event.label(class: "form-check-label") %> +
+ <% end %> +
+ <% else %> +
+ <%= form.check_box :receive_sms_notifications, class: "toggle-sms-notifications form-check-input", disabled: true %> + <%= form.label :receive_sms_notifications, "Enable Twilio For Text Messaging", class: "form-check-label"%> +
+ <% end %> +
<%= form.submit "Save Preferences", class: "main-btn primary-btn btn-hover mb-3 save-preference" %>
From 8400eb1d48dc0c33e1032dbbab4ea89c3e2d6a3b Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:52:41 -0400 Subject: [PATCH 66/68] lint --- app/controllers/application_controller.rb | 17 ++++++++------- app/controllers/casa_admins_controller.rb | 2 +- app/services/twilio_service.rb | 25 ++++++++++++----------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9fc28f3863..e7d624b9b7 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -46,7 +46,7 @@ def handle_short_url(url_list) # volunteer/supervisor/casa_admin controller uses to send SMS # returns appropriate flash notice for SMS def deliver_sms_to(resource, body_msg) - if resource.phone_number.blank? || !resource.casa_org.twilio_enabled? + if resource.phone_number.blank? || !resource.casa_org.twilio_enabled? return "blank" end @@ -54,20 +54,19 @@ def deliver_sms_to(resource, body_msg) to = resource.phone_number from = current_user.casa_org.twilio_phone_number - - @twilio = TwilioService.new(current_user.casa_org) - req_params = { - From: from, - Body: body, - To: to - } + @twilio = TwilioService.new(current_user.casa_org) + req_params = { + From: from, + Body: body, + To: to + } begin twilio_res = @twilio.send_sms(req_params) twilio_res.error_code.nil? ? "sent" : "error" rescue Twilio::REST::RestError => error @error = error - "error" + "error" rescue # unverfied error isnt picked up by Twilio::Rest::RestError # https://www.twilio.com/docs/errors/21608 @error = "Phone number is unverifiied" diff --git a/app/controllers/casa_admins_controller.rb b/app/controllers/casa_admins_controller.rb index 7d6cf86442..490d3b80c1 100644 --- a/app/controllers/casa_admins_controller.rb +++ b/app/controllers/casa_admins_controller.rb @@ -41,7 +41,7 @@ def create service = ::CreateCasaAdminService.new(current_organization, params, current_user) @casa_admin = service.build authorize @casa_admin - sms_status = "blank" #shami: why hard code here if deliver_sms_to takes care of this? + sms_status = "blank" # shami: why hard code here if deliver_sms_to takes care of this? begin casa_admin = service.create! diff --git a/app/services/twilio_service.rb b/app/services/twilio_service.rb index 44b5f42462..0c9d96cd2e 100644 --- a/app/services/twilio_service.rb +++ b/app/services/twilio_service.rb @@ -12,36 +12,37 @@ def initialize(casa_org) @enabled = casa_org.twilio_enabled end - def client #lazy create client only if twilio enabled + def client # lazy create client only if twilio enabled @client = Twilio::REST::Client.new(@api_key, @api_secret, @acc_sid) - end + end + + def enabled? + @enabled + end - def enabled? - @enabled - end # this method takes in a hash # required keys are: From:, To:, Body: # to send a short url, set URL: key in hash def send_sms(params) - #return unless casa_org twilio enabled - #add check here, Twilio client - if !self.enabled? - return nil - end + # return unless casa_org twilio enabled + # add check here, Twilio client + if !enabled? + return nil + end from = params[:From] body = params.key?(:URL) ? params[:Body] + params[:URL] : params[:Body] to = params[:To] # returns a twilio API message object # refer to docs: https://www.twilio.com/docs/sms/api/message-resource#message-properties begin - client + client client.messages.create( from: from, body: body, to: to ) rescue => error - Rails.logger.error("send SMS failed: #{error}") #help a person know whats going on, these messages can be inspected (Twilio) + Rails.logger.error("send SMS failed: #{error}") # help a person know whats going on, these messages can be inspected (Twilio) error end end From b934138fab50e2944dea4142df5d1e38b174a51b Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:52:58 -0400 Subject: [PATCH 67/68] lint --- app/controllers/volunteers_controller.rb | 2 +- spec/models/volunteer_spec.rb | 4 ++-- .../no_contact_made_sms_reminder_service_spec.rb | 12 ++++++------ spec/services/sms_reminder_service_spec.rb | 12 ++++++------ spec/services/twilio_service_spec.rb | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb index 1cbff553c7..8790dae554 100644 --- a/app/controllers/volunteers_controller.rb +++ b/app/controllers/volunteers_controller.rb @@ -102,7 +102,7 @@ def send_reactivation_alert begin send_sms_to(volunteers_phone_number, "Hello #{@volunteer.display_name}, \n \n Your CASA/Prince George’s County volunteer console account has been reactivated. You can login using the credentials you were already using. \n \n If you have any questions, please contact your most recent Case Supervisor for assistance. \n \n CASA/Prince George’s County") redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert sent" - rescue => error + rescue redirect_to edit_volunteer_path(@volunteer), notice: "Volunteer reactivation alert not sent. Twilio is disabled for #{@volunteer.casa_org.name}." end end diff --git a/spec/models/volunteer_spec.rb b/spec/models/volunteer_spec.rb index 5555f5294b..06453aba78 100644 --- a/spec/models/volunteer_spec.rb +++ b/spec/models/volunteer_spec.rb @@ -60,10 +60,10 @@ described_class.send_court_report_reminder end - it "should return nil when twilio is disabled" do + it "should return nil when twilio is disabled" do response = CourtReportDueSmsReminderService.court_report_reminder(v5, Date.current + 7.days) expect(response).to eq(nil) - end + end end describe "#activate" do diff --git a/spec/services/no_contact_made_sms_reminder_service_spec.rb b/spec/services/no_contact_made_sms_reminder_service_spec.rb index dbc2b32996..1125366b60 100644 --- a/spec/services/no_contact_made_sms_reminder_service_spec.rb +++ b/spec/services/no_contact_made_sms_reminder_service_spec.rb @@ -42,14 +42,14 @@ end end - context "when volunteer's casa_org does not have twilio enabled" do - let(:casa_org) {create(:casa_org, twilio_enabled: false)} - let(:volunteer) {create(:volunteer, casa_org: casa_org)} + context "when volunteer's casa_org does not have twilio enabled" do + let(:casa_org) { create(:casa_org, twilio_enabled: false) } + let(:volunteer) { create(:volunteer, casa_org: casa_org) } - it "should not send a SMS" do + it "should not send a SMS" do response = NoContactMadeSmsReminderService.no_contact_made_reminder(volunteer, contact_type) expect(response).to be_nil - end - end + end + end end end diff --git a/spec/services/sms_reminder_service_spec.rb b/spec/services/sms_reminder_service_spec.rb index c4c105a72c..c6b6074569 100644 --- a/spec/services/sms_reminder_service_spec.rb +++ b/spec/services/sms_reminder_service_spec.rb @@ -40,14 +40,14 @@ end end - context "when a volunteer's casa_org does not have twilio enabled" do - let(:casa_org_twilio_disabled) {create(:casa_org, twilio_enabled: false)} - let(:volunteer_twilio_disabled) {create(:volunteer, casa_org: casa_org_twilio_disabled)} + context "when a volunteer's casa_org does not have twilio enabled" do + let(:casa_org_twilio_disabled) { create(:casa_org, twilio_enabled: false) } + let(:volunteer_twilio_disabled) { create(:volunteer, casa_org: casa_org_twilio_disabled) } - it "should not send a SMS" do + it "should not send a SMS" do response = SmsReminderService.send_reminder(volunteer_twilio_disabled, message) expect(response).to be_nil - end - end + end + end end end diff --git a/spec/services/twilio_service_spec.rb b/spec/services/twilio_service_spec.rb index d265607437..11a6028f66 100644 --- a/spec/services/twilio_service_spec.rb +++ b/spec/services/twilio_service_spec.rb @@ -63,7 +63,7 @@ URL: @short_url.short_url } response = @twilio.send_sms(params) - expect(response).to eq nil + expect(response).to eq nil end end end From 877f6b5d3eea610b504bf28f74e88f801725c74d Mon Sep 17 00:00:00 2001 From: SHAMI_TOMITA Date: Thu, 15 Jun 2023 10:53:41 -0400 Subject: [PATCH 68/68] lint --- app/views/users/edit.html.erb | 4 ++-- app/views/volunteers/_manage_active.html.erb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 2f27817810..2a844e6abb 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -141,10 +141,10 @@ <% else %>
<%= form.check_box :receive_sms_notifications, class: "toggle-sms-notifications form-check-input", disabled: true %> - <%= form.label :receive_sms_notifications, "Enable Twilio For Text Messaging", class: "form-check-label"%> + <%= form.label :receive_sms_notifications, "Enable Twilio For Text Messaging", class: "form-check-label" %>
<% end %> - +
<%= form.submit "Save Preferences", class: "main-btn primary-btn btn-hover mb-3 save-preference" %>
diff --git a/app/views/volunteers/_manage_active.html.erb b/app/views/volunteers/_manage_active.html.erb index 67f523b858..adb7cfc089 100644 --- a/app/views/volunteers/_manage_active.html.erb +++ b/app/views/volunteers/_manage_active.html.erb @@ -33,7 +33,7 @@ <%= link_to send_reactivation_alert_volunteer_path(user), id: "#{current_user.casa_org.twilio_enabled? ? "twilio_enabled" : "twilio_disabled"}", class: "main-btn danger-btn-outline btn-hover btn-sm my-1" do %> - <%=current_user.casa_org.twilio_enabled? ? "Send Reactivation Alert (SMS)" : "Enable Twilio To Send Reactivation Alert (SMS)" %> + <%= current_user.casa_org.twilio_enabled? ? "Send Reactivation Alert (SMS)" : "Enable Twilio To Send Reactivation Alert (SMS)" %> <% end %> <% end %>