diff --git a/app/controllers/projects/clusters/applications_controller.rb b/app/controllers/projects/clusters/applications_controller.rb index 438e1853435f89142fe1c1aa1a2182d2a150abfa..cdebbdefb3f5044705508c13324494f2312c09fa 100644 --- a/app/controllers/projects/clusters/applications_controller.rb +++ b/app/controllers/projects/clusters/applications_controller.rb @@ -4,18 +4,14 @@ class Projects::Clusters::ApplicationsController < Projects::ApplicationControll before_action :authorize_read_cluster! before_action :authorize_create_cluster!, only: [:create] - def new - end - def create return render_404 if application - new_application = application_class.create(cluster: cluster) - respond_to do |format| format.json do - if new_application.persisted? - head :ok + # TODO: Do that via Service + if application_class.create(cluster: cluster).persisted? + head :no_data else head :bad_request end @@ -26,11 +22,11 @@ class Projects::Clusters::ApplicationsController < Projects::ApplicationControll private def cluster - @cluster ||= project.clusters.find_by(cluster_id: params[:cluster_id]).present(current_user: current_user) + @cluster ||= project.clusters.find(params[:id]) || render_404 end def application_class - Clusters::Cluster::Applications.find(params[:application]) + Clusters::Cluster::APPLICATIONS[params[:application]] || render_404 end def application diff --git a/app/models/clusters/applications/helm.rb b/app/models/clusters/applications/helm.rb index 59e0076c8df5fa379079811523ff13228ece7707..a18a3f87bc47d73b7972d6d65273e1006814ad26 100644 --- a/app/models/clusters/applications/helm.rb +++ b/app/models/clusters/applications/helm.rb @@ -7,7 +7,7 @@ module Clusters include ::Clusters::Concerns::AppStatus - belongs_to :cluser, class_name: 'Clusters::Cluster', foreign_key: :cluster_id + belongs_to :cluster, class_name: 'Clusters::Cluster', foreign_key: :cluster_id default_value_for :version, Gitlab::Clusters::Helm::HELM_VERSION diff --git a/app/workers/concerns/cluster_app.rb b/app/workers/concerns/cluster_app.rb index a0202901f156b8ab6f6421cae704aff4f4141665..947cdaefcb7816c7d41c3eca38a002565585ebb9 100644 --- a/app/workers/concerns/cluster_app.rb +++ b/app/workers/concerns/cluster_app.rb @@ -3,7 +3,7 @@ module ClusterApp included do def find_app(app_name, id) - Clusters::Applications.const_get(app_name.classify).find(id).try do |app| + Clusters::Cluster::APPLICATIONS[app_name].find(id).try do |app| yield(app) if block_given? end end diff --git a/config/routes/project.rb b/config/routes/project.rb index a6a7c5e74828111cbe98199a504166248258dace..55dab840dca61d87fdaf329729368ce3cc169170 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -191,8 +191,8 @@ constraints(ProjectUrlConstrainer.new) do member do get :status, format: :json - scope '*application' do - resource :applications, only: [:create] + scope :applications do + get '/*application', to: 'clusters/applications#create' end end end