diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-03-30 05:11:36 +0300 |
---|---|---|
committer | Mayra Cabrera <mcabrera@gitlab.com> | 2018-04-07 05:20:16 +0300 |
commit | 345ac03b7afb1dc9b941c53bc45cc3dfcf22e61c (patch) | |
tree | 42da609254928d746a961465d9ecfbff3ab71ad4 /app/services | |
parent | 370fc05da7f95bf6621867a71d51493cf3899e25 (diff) |
Address UX review
- Keep 'Deploy Section' open upon save, otherwise the token might get
lost
- When an error appears, display the error inside the form and also keep
the Deploy Section open
- Changue copy of revoke modal
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/deploy_tokens/create_service.rb | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/app/services/deploy_tokens/create_service.rb b/app/services/deploy_tokens/create_service.rb index e93c021557e..0332bb54167 100644 --- a/app/services/deploy_tokens/create_service.rb +++ b/app/services/deploy_tokens/create_service.rb @@ -3,22 +3,36 @@ module DeployTokens REDIS_EXPIRY_TIME = 3.minutes def execute - @deploy_token = @project.deploy_tokens.create(params) - store_in_redis if @deploy_token.persisted? - - @deploy_token + @project.deploy_tokens.build.tap do |deploy_token| + deploy_token.attributes = params + deploy_token.save + store_deploy_token_info_in_redis(deploy_token) + end end private - def store_in_redis - Gitlab::Redis::SharedState.with do |redis| - redis.set(deploy_token_key, @deploy_token.token, ex: REDIS_EXPIRY_TIME) + def store_deploy_token_info_in_redis(deploy_token) + deploy_token_key = deploy_token.redis_shared_state_key(current_user.id) + + if deploy_token.persisted? + store_in_redis(deploy_token_key, deploy_token.token) + else + store_deploy_attributes(deploy_token_key, deploy_token) end end - def deploy_token_key - DeployToken.redis_shared_state_key(current_user.id) + def store_deploy_attributes(deploy_token_key, deploy_token) + attributes = deploy_token.attributes.slice("name", "expires_at") + deploy_token_attributes_key = deploy_token_key + ":attributes" + + store_in_redis(deploy_token_attributes_key, attributes.to_json) + end + + def store_in_redis(key, value) + Gitlab::Redis::SharedState.with do |redis| + redis.set(key, value, ex: REDIS_EXPIRY_TIME) + end end end end |