Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. module Enterprises
  2. class AccessKeysController < DashboardsController
  3. def create
  4. gateway = Aws::APIGateway::Client.new
  5.  
  6. begin
  7. api_key = create_api_key!(gateway, current_enterprise, params[:stage])
  8. current_enterprise.update_stage_key!(api_key: api_key, stage: params[:stage])
  9.  
  10. redirect_to enterprises_access_keys_path
  11. rescue Aws::APIGateway::Errors::ServiceError => e
  12. redirect_to enterprises_access_keys_path, alert: e.message
  13. end
  14. end
  15.  
  16. def update
  17. gateway = Aws::APIGateway::Client.new
  18.  
  19. begin
  20. api_key_id = current_enterprise.stage_key_id(params[:stage])
  21. gateway.delete_api_key(api_key: api_key_id)
  22.  
  23. api_key = create_api_key!(gateway, current_enterprise, params[:stage])
  24. current_enterprise.update_stage_key!(api_key: api_key, stage: params[:stage])
  25.  
  26. redirect_to enterprises_access_keys_path
  27. rescue Aws::APIGateway::Errors::ServiceError => e
  28. redirect_to enterprises_access_keys_path, alert: e.message
  29. end
  30. end
  31.  
  32. private
  33.  
  34. def create_api_key!(gateway, enterprise, stage)
  35. api_key = gateway.create_api_key(
  36. value: SecureRandom.base58(40),
  37. name: "#{enterprise.name} [#{stage}]"
  38. )
  39.  
  40. gateway.create_usage_plan_key(
  41. usage_plan_id: enterprise.stage_plan_id(stage),
  42. key_type: 'API_KEY',
  43. key_id: api_key.id
  44. )
  45.  
  46. api_key
  47. end
  48. end
  49. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement