summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-03-28 12:48:53 +0200
committerPawel Chojnacki <pawel@chojnacki.ws>2017-03-28 12:52:13 +0200
commit73203873438d666427228ffdbfe835ea4ffddaa6 (patch)
tree0d9eb0ba084427bb0a3c2292bec1909cbda62c67
parent601f50c6421f135b52f737a3b59baa32e6a8f1fd (diff)
downloadgitlab-ce-73203873438d666427228ffdbfe835ea4ffddaa6.tar.gz
Use DeploymentSerializer to create deployment json
-rw-r--r--app/controllers/projects/deployments_controller.rb3
-rw-r--r--app/serializers/deployment_entity.rb1
-rw-r--r--app/serializers/deployment_serializer.rb3
-rw-r--r--spec/controllers/projects/deployments_controller_spec.rb7
-rw-r--r--spec/serializers/deployment_entity_spec.rb4
5 files changed, 12 insertions, 6 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb
index 4606ddd62cc..ed0f802dbd9 100644
--- a/app/controllers/projects/deployments_controller.rb
+++ b/app/controllers/projects/deployments_controller.rb
@@ -2,8 +2,9 @@ class Projects::DeploymentsController < Projects::ApplicationController
before_action :authorize_read_deployment!
def index
+ serializer = DeploymentSerializer.new(user: @current_user)
deployments = environment.deployments.where('created_at > ?', 8.hours.ago)
- .map { |d| d.slice(:id, :iid, :created_at, :sha, :ref, :tag) }
+ .map { |d| serializer.represent(d) }
render json: { deployments: deployments }
end
diff --git a/app/serializers/deployment_entity.rb b/app/serializers/deployment_entity.rb
index d610fbe0c8a..d9ade5d87e2 100644
--- a/app/serializers/deployment_entity.rb
+++ b/app/serializers/deployment_entity.rb
@@ -18,6 +18,7 @@ class DeploymentEntity < Grape::Entity
end
end
+ expose :created_at
expose :tag
expose :last?
expose :user, using: UserEntity
diff --git a/app/serializers/deployment_serializer.rb b/app/serializers/deployment_serializer.rb
new file mode 100644
index 00000000000..4b4bf6cd526
--- /dev/null
+++ b/app/serializers/deployment_serializer.rb
@@ -0,0 +1,3 @@
+class DeploymentSerializer < BaseSerializer
+ entity DeploymentEntity
+end
diff --git a/spec/controllers/projects/deployments_controller_spec.rb b/spec/controllers/projects/deployments_controller_spec.rb
index 97a9fb8ae61..b0d543177cc 100644
--- a/spec/controllers/projects/deployments_controller_spec.rb
+++ b/spec/controllers/projects/deployments_controller_spec.rb
@@ -28,19 +28,16 @@ describe Projects::DeploymentsController do
end
it 'returns a list with deployments information' do
- deployment = create(:deployment, environment: environment)
+ create(:deployment, environment: environment)
get :index, environment_params
expect(response).to be_ok
deployments = json_response['deployments']
deployment_info = deployments.first.with_indifferent_access
- created_at = deployment_info.delete(:created_at).to_time.utc
expect(deployments.count).to eq(1)
- expect(deployment_info).to include(:id, :iid, :sha, :ref, :tag)
- expect(deployment).to have_attributes(deployment_info)
- expect(deployment.created_at).to be_within(1.second).of(created_at)
+ expect(deployment_info).to include(:id, :iid, :sha, :ref, :tag, :created_at)
end
end
diff --git a/spec/serializers/deployment_entity_spec.rb b/spec/serializers/deployment_entity_spec.rb
index 95eca5463eb..73bd60b62e5 100644
--- a/spec/serializers/deployment_entity_spec.rb
+++ b/spec/serializers/deployment_entity_spec.rb
@@ -24,4 +24,8 @@ describe DeploymentEntity do
expect(subject[:ref][:name]).to eq 'master'
expect(subject[:ref][:ref_path]).not_to be_empty
end
+
+ it 'exposes creation date' do
+ expect(subject).to include(:created_at)
+ end
end