Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EDM-190/enable unlimited sob access behind feature toggle #18584

16 changes: 8 additions & 8 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ app/controllers/v1/gids @department-of-veterans-affairs/govcio-vfep-codereviewer
app/controllers/v1/higher_level_reviews_controller.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
app/controllers/v1/higher_level_reviews @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
app/controllers/v1/notice_of_disagreements @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/controllers/v1/post911_gi_bill_statuses_controller.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/controllers/v1/post911_gi_bill_statuses_controller.rb @department-of-veterans-affairs/education-data-migration @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/controllers/v1/profile @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/controllers/v1/supplemental_claims @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
app/controllers/v1/decision_review_evidences_controller.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
Expand All @@ -162,7 +162,7 @@ app/controllers/v1/pension_ipf_callbacks_controller.rb @department-of-veterans-a
app/controllers/v1/sessions_controller.rb @department-of-veterans-affairs/octo-identity
app/controllers/v1/supplemental_claims_controller.rb @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
app/controllers/v1/supplemental_claims @department-of-veterans-affairs/benefits-decision-reviews-be @department-of-veterans-affairs/backend-review-group
app/controllers/v1/post911_gi_bill_statuses_controller.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/va-iir
app/controllers/v1/post911_gi_bill_statuses_controller.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/education-data-migration
app/mailers/application_mailer.rb @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/mailers/ch31_submissions_report_mailer.rb @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/mailers/create_daily_spool_files_mailer.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -415,7 +415,7 @@ app/serializers/payment_history_serializer.rb @department-of-veterans-affairs/vf
app/serializers/persistent_attachment_serializer.rb @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/pensions @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/persistent_attachment_va_form_serializer.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/personal_information_serializer.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/post911_gi_bill_status_serializer.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/post911_gi_bill_status_serializer.rb @department-of-veterans-affairs/education-data-migration @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/ppiu_serializer.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/preferred_name_serializer.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/serializers/preneed_attachment_serializer.rb @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -507,7 +507,7 @@ app/swagger/swagger/requests/messages @department-of-veterans-affairs/vfs-mhv-se
app/swagger/swagger/requests/mvi_users.rb @department-of-veterans-affairs/octo-identity
app/swagger/swagger/requests/my_va/submission_statuses.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/swagger/swagger/requests/onsite_notifications.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/swagger/swagger/v1/requests/post911_gi_bill_statuses.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/va-iir
app/swagger/swagger/v1/requests/post911_gi_bill_statuses.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/education-data-migration
app/swagger/swagger/requests/ppiu.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/swagger/swagger/requests/preneeds_claims.rb @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
app/swagger/swagger/requests/prescriptions @department-of-veterans-affairs/vfs-mhv-medications @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -1124,7 +1124,7 @@ spec/controllers/v0/virtual_agent @department-of-veterans-affairs/vfs-virtual-ag
spec/controllers/v0/virtual_agent_token_msft_controller_spec.rb @department-of-veterans-affairs/vfs-virtual-agent-chatbot @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/controllers/v0/virtual_agent_token_nlu_controller_spec.rb @department-of-veterans-affairs/vfs-virtual-agent-chatbot @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/controllers/v1/gids @department-of-veterans-affairs/govcio-vfep-codereviewers @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/controllers/v1/post911_gi_bill_statuses_controller_spec.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/va-iir
spec/controllers/v1/post911_gi_bill_statuses_controller_spec.rb @department-of-veterans-affairs/backend-review-group @department-of-veterans-affairs/education-data-migration
spec/controllers/v1/profile @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/controllers/v1/sessions_controller_spec.rb @department-of-veterans-affairs/octo-identity
spec/factories/686c @department-of-veterans-affairs/benefits-dependents-management @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -1657,7 +1657,7 @@ spec/requests/v0/messaging/health/messages_spec.rb @department-of-veterans-affai
spec/requests/v0/messaging/health/preferences_spec.rb @department-of-veterans-affairs/vfs-mhv-secure-messaging @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/v0/mvi_users_spec.rb @department-of-veterans-affairs/octo-identity
spec/requests/v0/profile/personal_information_spec.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/v0/post911_gi_bill_status_spec.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/v1/post911_gi_bill_status_spec.rb @department-of-veterans-affairs/education-data-migration @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/v0/ppiu/payment_information_spec.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/preneeds @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/requests/v0/prescriptions_spec.rb @department-of-veterans-affairs/vfs-mhv-medications @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -1752,7 +1752,7 @@ spec/serializers/payment_history_serializer_spec.rb @department-of-veterans-affa
spec/serializers/persistent_attachment_serializer_spec.rb @department-of-veterans-affairs/benefits-non-disability @department-of-veterans-affairs/pensions @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/persistent_attachment_va_form_serializer_spec.rb @department-of-veterans-affairs/platform-va-product-forms @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/personal_information_serializer_spec.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/post911_gi_bill_status_serializer_spec.rb @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/post911_gi_bill_status_serializer_spec.rb @department-of-veterans-affairs/education-data-migration @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/ppiu_serializer_spec.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/preferred_name_serializer_spec.rb @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/serializers/preneed_attachment_serializer_spec.rb @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down Expand Up @@ -1944,7 +1944,7 @@ spec/support/schemas/message_with_attachment.json @department-of-veterans-affair
spec/support/schemas/my_health/prescriptions/v1 @department-of-veterans-affairs/vfs-mhv-medications @department-of-veterans-affairs/backend-review-group
spec/support/schemas/payment_information.json @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/personal_information_response.json @department-of-veterans-affairs/vfs-authenticated-experience-backend @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/post911_gi_bill_status.json @department-of-veterans-affairs/my-education-benefits @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/post911_gi_bill_status.json @department-of-veterans-affairs/education-data-migration @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/preference.json @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/preferences.json @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
spec/support/schemas/preneeds @department-of-veterans-affairs/mbs-core-team @department-of-veterans-affairs/va-api-engineers @department-of-veterans-affairs/backend-review-group
Expand Down
7 changes: 3 additions & 4 deletions app/controllers/v0/backend_statuses_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ def index
render json: BackendStatusesSerializer.new(backend_statuses, options)
end

# TO-DO: After transition of Post-911 GI Bill to 24/7 availability, confirm show action
# and related logic can be completely removed
#
# GET /v0/backend_statuses/:service
def show
render json: BackendStatusSerializer.new(backend_status)
Expand Down Expand Up @@ -46,9 +49,5 @@ def validate_service
def recognized_service?
BackendServices.all.include?(backend_service)
end

def backend_status_is_available
backend_service == BackendServices::GI_BILL_STATUS
end
end
end
5 changes: 4 additions & 1 deletion app/controllers/v1/post911_gi_bill_statuses_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Post911GIBillStatusesController < ApplicationController
include SentryLogging
service_tag 'gibill-statement'

# TO-DO: Remove this action after transition of LTS to 24/7 availability
before_action :service_available?, only: :show

STATSD_GI_BILL_TOTAL_KEY = 'api.lighthouse.gi_bill_status.total'
Expand All @@ -35,8 +36,9 @@ def handle_error(e)
render json: { errors: e.errors }, status: status || :internal_server_error
end

# TO-DO: Remove this method after transition of LTS to 24/7 availability
def service_available?
unless BenefitsEducation::Service.within_scheduled_uptime?
unless Flipper.enabled?(:sob_updated_design) || BenefitsEducation::Service.within_scheduled_uptime?
StatsD.increment(STATSD_GI_BILL_FAIL_KEY, tags: ['error:scheduled_downtime'])
headers['Retry-After'] = BenefitsEducation::Service.retry_after_time
# 503 response
Expand Down Expand Up @@ -67,6 +69,7 @@ def user_json(user)
}.to_json
end

# TO-DO: Remove this method after transition of LTS to 24/7 availability
def skip_sentry_exception_types
super + [BenefitsEducation::OutsideWorkingHours]
end
Expand Down
10 changes: 7 additions & 3 deletions app/models/backend_status.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

require 'backend_services'

# TO-DO: After transition of Post-911 GI Bill to 24/7 availability, confirm
# BackendStatus (singular) model and related logic can be removed
class BackendStatus
include ActiveModel::Serialization
include ActiveModel::Validations
Expand All @@ -18,16 +20,18 @@ def initialize(name:, service_id: nil)
end

def available?
gibs_service? ? BenefitsEducation::Service.within_scheduled_uptime? : true
service_subject_to_downtime? ? BenefitsEducation::Service.within_scheduled_uptime? : true
end

def uptime_remaining
gibs_service? ? BenefitsEducation::Service.seconds_until_downtime.to_i : 0
service_subject_to_downtime? ? BenefitsEducation::Service.seconds_until_downtime.to_i : 0
end

private

def gibs_service?
def service_subject_to_downtime?
return false if Flipper.enabled?(:sob_updated_design)

@name == BackendServices::GI_BILL_STATUS
end
end
2 changes: 2 additions & 0 deletions app/serializers/backend_status_serializer.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# frozen_string_literal: true

# TO-DO: After transition of Post-911 GI Bill to 24/7 availability, confirm
# serializer and related logic can be completely removed
class BackendStatusSerializer
include JSONAPI::Serializer

Expand Down
2 changes: 2 additions & 0 deletions lib/lighthouse/benefits_education/outside_working_hours.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

require 'common/exceptions/base_error'

# TO-DO: Remove this error after transition of LTS to 24/7 availability and associated lines
# in exceptions.en.yml
module BenefitsEducation
##
# Custom error for when the user is attempting to access the service
Expand Down
7 changes: 7 additions & 0 deletions lib/lighthouse/benefits_education/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class Service < Common::Client::Base

STATSD_KEY_PREFIX = 'api.benefits_education'

# TO-DO: Remove these constants after transition of LTS to 24/7 availability
OPERATING_ZONE = 'Eastern Time (US & Canada)'
OPERATING_HOURS = {
start: 6,
Expand Down Expand Up @@ -67,6 +68,8 @@ def handle_error(error, lighthouse_client_id, endpoint)
end

##
# TO-DO: Remove this method after transition of LTS to 24/7 availability
#
# @return [Boolean] Is the current time within the system's scheduled uptime
#
def self.within_scheduled_uptime?
Expand All @@ -79,6 +82,8 @@ def self.within_scheduled_uptime?
end

##
# TO-DO: Remove this method after transition of LTS to 24/7 availability
#
# @return [Integer] The number of seconds until scheduled system downtime begins
#
def self.seconds_until_downtime
Expand All @@ -94,6 +99,8 @@ def self.seconds_until_downtime
end

##
# TO-DO: Remove this method after transition of LTS to 24/7 availability
#
# @return [String] Next earliest date and time that the service will be available
#
def self.retry_after_time
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

context 'inside working hours' do
before do
# TO-DO: Remove this flipper toggle after transition of LTS to 24/7 availability
Flipper.enable(:sob_updated_design)
allow(BenefitsEducation::Service).to receive(:within_scheduled_uptime?).and_return(true)
end

Expand Down Expand Up @@ -63,9 +65,14 @@
end
end

# TO-DO: Remove this suite of tests after transition of LTS to 24/7 availability
context 'outside working hours' do
# midnight
before { Timecop.freeze(tz.parse('2nd Feb 1993 00:00:00')) }
before do
Flipper.disable(:sob_updated_design)
Timecop.freeze(tz.parse('2nd Feb 1993 00:00:00'))
end

after { Timecop.return }

it 'returns 503' do
Expand Down
1 change: 1 addition & 0 deletions spec/lib/lighthouse/benefits_education/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
end
end

# TO-DO: Remove this context after transition of LTS to 24/7 availability
describe 'uptime/downtime tests' do
let(:tz) { ActiveSupport::TimeZone.new(described_class::OPERATING_ZONE) }
let(:late_time) { tz.parse('1st Feb 2018 23:00:00') }
Expand Down
2 changes: 2 additions & 0 deletions spec/requests/swagger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3360,6 +3360,7 @@

context 'GI Bill Status' do
it 'supports getting Gi Bill Status' do
Flipper.enable(:sob_updated_design)
Timecop.freeze(ActiveSupport::TimeZone.new('Eastern Time (US & Canada)').parse('1st Feb 2018 12:15:06'))
expect(subject).to validate(:get, '/v1/post911_gi_bill_status', 401)
VCR.use_cassette('lighthouse/benefits_education/200_response') do
Expand All @@ -3369,6 +3370,7 @@
end

it 'supports Gi Bill Status 503 condition' do
Flipper.disable(:sob_updated_design)
Timecop.freeze(ActiveSupport::TimeZone.new('Eastern Time (US & Canada)').parse('1st Feb 2018 00:15:06'))
expect(subject).to validate(:get, '/v1/post911_gi_bill_status', 503, headers)
Timecop.return
Expand Down
4 changes: 4 additions & 0 deletions spec/requests/v0/backend_status_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

let(:user) { build(:user, :loa3) }

# TO-DO: After transition of Post-911 GI Bill to 24/7 availability, confirm show action
# and related logic can be completely removed
describe '#show' do
let(:token) { 'fa0f28d6-224a-4015-a3b0-81e77de269f2' }
let(:auth_header) { { 'Authorization' => "Token token=#{token}" } }
Expand All @@ -26,6 +28,8 @@
end

context 'for the gibs service' do
before { Flipper.disable(:sob_updated_design) }

context 'during offline hours on saturday' do
before { Timecop.freeze(offline_saturday) }

Expand Down
Loading
Loading