Class: Swaggerless::SwaggerExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/swaggerless/swaggerextractor.rb

Instance Method Summary collapse

Instance Method Details

#get_lambda_map(swagger) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/swaggerless/swaggerextractor.rb', line 19

def get_lambda_map(swagger)
  lambdas_map = Hash.new
  swagger["paths"].each do |path, path_config|
    path_config.each do |method, method_config|
      process_lambda_config(lambdas_map, method_config, swagger)
    end
  end
  if swagger.key?("securityDefinitions") then
    swagger["securityDefinitions"].each do |securityDefinitionName, securityDefinition|
      if securityDefinition[AMZ_APIGATEWAY_AUTHORIZER] != nil
        process_lambda_config(lambdas_map, securityDefinition, swagger)
      end
    end
  end
  return lambdas_map
end

#process_lambda_config(lambdas_map, objContainingLambdaConfig, swagger) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/swaggerless/swaggerextractor.rb', line 36

def process_lambda_config(lambdas_map, objContainingLambdaConfig, swagger)
  if lambdas_map[objContainingLambdaConfig[EXT_LAMBDA_NAME]]
    stored_version = lambdas_map[objContainingLambdaConfig[EXT_LAMBDA_NAME]];
    encountered_version = build_lambda_config_hash(objContainingLambdaConfig)
    fill_in_config_gaps(stored_version, encountered_version)
    unless is_lambda_config_correct(stored_version, encountered_version)
      raise "Lambda #{objContainingLambdaConfig[EXT_LAMBDA_NAME]} mentioned multiple times in configuration with different settings"
    end
    lambdas_map[objContainingLambdaConfig[EXT_LAMBDA_NAME]][:description] = 'Part of ' + Deployer.get_service_prefix(swagger)
  elsif objContainingLambdaConfig[EXT_LAMBDA_NAME]
    lambdas_map[objContainingLambdaConfig[EXT_LAMBDA_NAME]] = build_lambda_config_hash(objContainingLambdaConfig)
  end
end