66require 'presenters/v3/app_file_based_vcap_services_feature_presenter'
77require 'presenters/v3/app_ssh_status_presenter'
88require 'actions/app_feature_update'
9+ require 'models/helpers/app_features'
910
1011class AppFeaturesController < ApplicationController
1112 include AppSubResource
1213
13- SSH_FEATURE = 'ssh' . freeze
14- REVISIONS_FEATURE = 'revisions' . freeze
15- SERVICE_BINDING_K8S_FEATURE = 'service-binding-k8s' . freeze
16- FILE_BASED_VCAP_SERVICES_FEATURE = 'file-based-vcap-services' . freeze
17-
18- TRUSTED_APP_FEATURES = [ SSH_FEATURE , SERVICE_BINDING_K8S_FEATURE , FILE_BASED_VCAP_SERVICES_FEATURE ] . freeze
19- UNTRUSTED_APP_FEATURES = [ REVISIONS_FEATURE ] . freeze
14+ TRUSTED_APP_FEATURES = [ VCAP ::CloudController ::AppFeatures ::SSH_FEATURE , VCAP ::CloudController ::AppFeatures ::SERVICE_BINDING_K8S_FEATURE ,
15+ VCAP ::CloudController ::AppFeatures ::FILE_BASED_VCAP_SERVICES_FEATURE ] . freeze
16+ UNTRUSTED_APP_FEATURES = [ VCAP ::CloudController ::AppFeatures ::REVISIONS_FEATURE ] . freeze
2017 APP_FEATURES = ( TRUSTED_APP_FEATURES + UNTRUSTED_APP_FEATURES ) . freeze
2118
2219 def index
@@ -56,11 +53,12 @@ def update
5653 unprocessable! ( message . errors . full_messages ) unless message . valid?
5754
5855 if message . enabled && both_service_binding_features_enabled? ( app , name )
59- unprocessable! ( "'#{ FILE_BASED_VCAP_SERVICES_FEATURE } ' and '#{ SERVICE_BINDING_K8S_FEATURE } ' features cannot be enabled at the same time." )
56+ unprocessable! ( "'#{ VCAP ::CloudController ::AppFeatures ::FILE_BASED_VCAP_SERVICES_FEATURE } ' and '#{ VCAP ::CloudController ::AppFeatures ::SERVICE_BINDING_K8S_FEATURE } ' " \
57+ 'features cannot be enabled at the same time.' )
6058 end
6159
62- AppFeatureUpdate . update ( hashed_params [ : name] , app , message )
63- render status : :ok , json : feature_presenter_for ( hashed_params [ : name] , app )
60+ AppFeatureUpdate . update ( name , app , message )
61+ render status : :ok , json : feature_presenter_for ( name , app )
6462 end
6563
6664 def ssh_enabled
@@ -87,10 +85,10 @@ def present_unpagination_hash(result, path)
8785
8886 def feature_presenter_for ( feature_name , app )
8987 presenters = {
90- SSH_FEATURE => Presenters ::V3 ::AppSshFeaturePresenter ,
91- REVISIONS_FEATURE => Presenters ::V3 ::AppRevisionsFeaturePresenter ,
92- SERVICE_BINDING_K8S_FEATURE => Presenters ::V3 ::AppServiceBindingK8sFeaturePresenter ,
93- FILE_BASED_VCAP_SERVICES_FEATURE => Presenters ::V3 ::AppFileBasedVcapServicesFeaturePresenter
88+ VCAP :: CloudController :: AppFeatures :: SSH_FEATURE => Presenters ::V3 ::AppSshFeaturePresenter ,
89+ VCAP :: CloudController :: AppFeatures :: REVISIONS_FEATURE => Presenters ::V3 ::AppRevisionsFeaturePresenter ,
90+ VCAP :: CloudController :: AppFeatures :: SERVICE_BINDING_K8S_FEATURE => Presenters ::V3 ::AppServiceBindingK8sFeaturePresenter ,
91+ VCAP :: CloudController :: AppFeatures :: FILE_BASED_VCAP_SERVICES_FEATURE => Presenters ::V3 ::AppFileBasedVcapServicesFeaturePresenter
9492 }
9593 presenters [ feature_name ] . new ( app )
9694 end
@@ -105,9 +103,9 @@ def presented_app_features(app)
105103 end
106104
107105 def both_service_binding_features_enabled? ( app , feature_name )
108- if feature_name == FILE_BASED_VCAP_SERVICES_FEATURE
106+ if feature_name == VCAP :: CloudController :: AppFeatures :: FILE_BASED_VCAP_SERVICES_FEATURE
109107 app . service_binding_k8s_enabled
110- elsif feature_name == SERVICE_BINDING_K8S_FEATURE
108+ elsif feature_name == VCAP :: CloudController :: AppFeatures :: SERVICE_BINDING_K8S_FEATURE
111109 app . file_based_vcap_services_enabled
112110 end
113111 end
0 commit comments