Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Enterprises
- class AccessKeysController < DashboardsController
- def create
- gateway = Aws::APIGateway::Client.new
- begin
- api_key = create_api_key!(gateway, current_enterprise, params[:stage])
- current_enterprise.update_stage_key!(api_key: api_key, stage: params[:stage])
- redirect_to enterprises_access_keys_path
- rescue Aws::APIGateway::Errors::ServiceError => e
- redirect_to enterprises_access_keys_path, alert: e.message
- end
- end
- def update
- gateway = Aws::APIGateway::Client.new
- begin
- api_key_id = current_enterprise.stage_key_id(params[:stage])
- gateway.delete_api_key(api_key: api_key_id)
- api_key = create_api_key!(gateway, current_enterprise, params[:stage])
- current_enterprise.update_stage_key!(api_key: api_key, stage: params[:stage])
- redirect_to enterprises_access_keys_path
- rescue Aws::APIGateway::Errors::ServiceError => e
- redirect_to enterprises_access_keys_path, alert: e.message
- end
- end
- private
- def create_api_key!(gateway, enterprise, stage)
- api_key = gateway.create_api_key(
- value: SecureRandom.base58(40),
- name: "#{enterprise.name} [#{stage}]"
- )
- gateway.create_usage_plan_key(
- usage_plan_id: enterprise.stage_plan_id(stage),
- key_type: 'API_KEY',
- key_id: api_key.id
- )
- api_key
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement