diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-06-14 14:51:12 +0300 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-06-14 14:51:12 +0300 |
commit | 3ade826065f38e3734090cf34fbfc28b68ba79d0 (patch) | |
tree | 8894c90dc892086df16782f2c54ca8f6b8b4adb6 /app/services/create_deployment_service.rb | |
parent | e8f09f02bf8b0053f276a8e5ce0bdd18c621a1a3 (diff) |
Add specs for models and services
Diffstat (limited to 'app/services/create_deployment_service.rb')
-rw-r--r-- | app/services/create_deployment_service.rb | 40 |
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 |