summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-06-14 13:51:12 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-06-14 13:51:12 +0200
commit3ade826065f38e3734090cf34fbfc28b68ba79d0 (patch)
tree8894c90dc892086df16782f2c54ca8f6b8b4adb6 /app/services
parente8f09f02bf8b0053f276a8e5ce0bdd18c621a1a3 (diff)
downloadgitlab-ce-3ade826065f38e3734090cf34fbfc28b68ba79d0.tar.gz
Add specs for models and services
Diffstat (limited to 'app/services')
-rw-r--r--app/services/create_deployment_service.rb40
1 files changed, 16 insertions, 24 deletions
diff --git a/app/services/create_deployment_service.rb b/app/services/create_deployment_service.rb
index 7408ec367f6..eec1773073e 100644
--- a/app/services/create_deployment_service.rb
+++ b/app/services/create_deployment_service.rb
@@ -1,38 +1,30 @@
require_relative 'base_service'
class CreateDeploymentService < BaseService
- def execute(deployable)
- environment = find_environment(params[:environment])
- return error('no environment') unless environmnet
+ def execute(deployable = nil)
+ environment = create_or_find_environment(params[:environment])
- deployment = create_deployment(environment, deployable)
- if deployment.persisted?
- success(deployment)
- else
- error(deployment.errors)
- end
+ project.deployments.create(
+ environment: environment,
+ ref: params[:ref],
+ tag: params[:tag],
+ sha: params[:sha],
+ user: current_user,
+ deployable: deployable,
+ )
end
private
- def find_environment(environment)
- project.environments.find_by(name: environment)
+ def create_or_find_environment(environment)
+ find_environment(environment) || create_environment(environment)
end
- def create_deployment(environment, deployable)
- environment.deployments.create(
- project: project,
- ref: build.ref,
- tag: build.tag,
- sha: build.sha,
- user: current_user,
- deployable: deployable,
- )
+ def create_environment(environment)
+ project.environments.create(name: environment)
end
- def success(deployment)
- out = super()
- out[:deployment] = deployment
- out
+ def find_environment(environment)
+ project.environments.find_by(name: environment)
end
end