platform/lambda/lambda.go
File lambda.go
has 793 lines of code (exceeds 500 allowed). Consider refactoring. Open
Open
// Package lambda implements the API Gateway & AWS Lambda platform.
package lambda
import (
"bytes"
Platform
has 39 methods (exceeds 20 allowed). Consider refactoring. Open
Open
type Platform struct {
config *up.Config
handler string
zip *bytes.Buffer
events event.Events
Method Platform.updateFunction
has 61 lines of code (exceeds 50 allowed). Consider refactoring. Open
Open
func (p *Platform) updateFunction(c *lambda.Lambda, a *apigateway.APIGateway, up *s3manager.Uploader, region string, d up.Deploy) (version string, err error) {
b := aws.String(p.getS3BucketName(region))
k := aws.String(p.getS3Key(d.Stage))
// upload
Method Platform.createCerts
has 57 lines of code (exceeds 50 allowed). Consider refactoring. Open
Open
func (p *Platform) createCerts() error {
s := session.New(aws.NewConfig().WithRegion("us-east-1"))
a := acm.New(s)
var domains []string
Method Platform.updateFunction
has 10 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) updateFunction(c *lambda.Lambda, a *apigateway.APIGateway, up *s3manager.Uploader, region string, d up.Deploy) (version string, err error) {
b := aws.String(p.getS3BucketName(region))
k := aws.String(p.getS3Key(d.Stage))
// upload
Method Platform.createRole
has 7 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) createRole() error {
s := session.New(aws.NewConfig())
c := iam.New(s)
name := p.roleName()
Method Platform.Deploy
has 6 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) Deploy(d up.Deploy) error {
regions := p.config.Regions
var g errgroup.Group
if err := p.createRole(); err != nil {
Method Platform.Build
has 6 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) Build() error {
start := time.Now()
p.zip = new(bytes.Buffer)
if err := p.injectProxy(); err != nil {
Method Platform.DeleteStack
has 6 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) DeleteStack(region string, wait bool) error {
versions := resources.Versions{}
for _, s := range p.config.Stages {
versions[s.Name] = "1"
Method Platform.createFunction
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
func (p *Platform) createFunction(c *lambda.Lambda, a *apigateway.APIGateway, up *s3manager.Uploader, region string, d up.Deploy) (version string, err error) {
Method Platform.updateFunction
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
func (p *Platform) updateFunction(c *lambda.Lambda, a *apigateway.APIGateway, up *s3manager.Uploader, region string, d up.Deploy) (version string, err error) {
Method Platform.createFunction
has 5 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) createFunction(c *lambda.Lambda, a *apigateway.APIGateway, up *s3manager.Uploader, region string, d up.Deploy) (version string, err error) {
// ensure bucket exists
if err := p.createBucket(region); err != nil && !util.IsBucketExists(err) {
return "", errors.Wrap(err, "creating s3 bucket")
}
Method Platform.createCerts
has 5 return statements (exceeds 4 allowed). Open
Open
func (p *Platform) createCerts() error {
s := session.New(aws.NewConfig().WithRegion("us-east-1"))
a := acm.New(s)
var domains []string
Function getCert
has 5 return statements (exceeds 4 allowed). Open
Open
func getCert(certs []*acm.CertificateDetail, domain string) string {
// exact domain
for _, c := range certs {
if *c.DomainName == domain {
return *c.CertificateArn