From 2507652084b7ca397574878538384edcbad68c73 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 3 Oct 2017 23:21:54 +0200 Subject: Introduce serializer for ClusterEntity --- app/controllers/projects/clusters_controller.rb | 31 +++++++++++++++++-------- app/serializers/cluster_entity.rb | 6 +++++ app/serializers/cluster_serializer.rb | 7 ++++++ 3 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 app/serializers/cluster_entity.rb create mode 100644 app/serializers/cluster_serializer.rb (limited to 'app') diff --git a/app/controllers/projects/clusters_controller.rb b/app/controllers/projects/clusters_controller.rb index 1b6165def51..8d07f695e78 100644 --- a/app/controllers/projects/clusters_controller.rb +++ b/app/controllers/projects/clusters_controller.rb @@ -46,10 +46,9 @@ class Projects::ClustersController < Projects::ApplicationController format.json do Gitlab::PollingInterval.set_header(response, interval: 10_000) - render json: { - status: cluster.status, # The current status of the operation. - status_reason: cluster.status_reason # If an error has occurred, a textual description of the error. - } + render json: ClusterSerializer + .new(project: @project, current_user: @current_user) + .represent_status(@cluster) end end end @@ -62,7 +61,15 @@ class Projects::ClustersController < Projects::ApplicationController .new(project, current_user, cluster_params) .execute(cluster) - render :show + respond_to do |format| + format.html do + render :show + end + + format.json do + head :no_data + end + end end def destroy @@ -80,9 +87,13 @@ class Projects::ClustersController < Projects::ApplicationController end def cluster_params - params.require(:cluster) - .permit(:gcp_project_id, :gcp_cluster_zone, :gcp_cluster_name, :gcp_cluster_size, - :gcp_machine_type, :project_namespace, :enabled) + params.require(:cluster).permit(:gcp_project_id, + :gcp_cluster_zone, + :gcp_cluster_name, + :gcp_cluster_size, + :gcp_machine_type, + :project_namespace, + :enabled) end def authorize_google_api @@ -103,10 +114,10 @@ class Projects::ClustersController < Projects::ApplicationController end def authorize_update_cluster! - return access_denied! unless can?(current_user, :update_cluster, cluster) + access_denied! unless can?(current_user, :update_cluster, cluster) end def authorize_admin_cluster! - return access_denied! unless can?(current_user, :admin_cluster, cluster) + access_denied! unless can?(current_user, :admin_cluster, cluster) end end diff --git a/app/serializers/cluster_entity.rb b/app/serializers/cluster_entity.rb new file mode 100644 index 00000000000..ca0ee8952e2 --- /dev/null +++ b/app/serializers/cluster_entity.rb @@ -0,0 +1,6 @@ +class ClusterEntity < Grape::Entity + include RequestAwareEntity + + expose :status + expose :status_reason +end diff --git a/app/serializers/cluster_serializer.rb b/app/serializers/cluster_serializer.rb new file mode 100644 index 00000000000..2c87202a105 --- /dev/null +++ b/app/serializers/cluster_serializer.rb @@ -0,0 +1,7 @@ +class ClusterSerializer < BaseSerializer + entity ClusterEntity + + def represent_status(resource) + represent(resource, { only: [:status, :status_reason] }) + end +end -- cgit v1.2.1