Jelajahi Sumber

Fix tests, linting

Mauricio Araujo 2 tahun lalu
induk
melakukan
0e99a6e55c

+ 1 - 2
api/server/handlers/billing/customer.go

@@ -58,8 +58,7 @@ func (c *CreateBillingCustomerHandler) ServeHTTP(w http.ResponseWriter, r *http.
 
 	if proj.UsageID == uuid.Nil {
 		// Create Metronome customer and add to starter plan
-		if c.Config().ServerConf.MetronomeAPIKey != "" && c.Config().ServerConf.PorterCloudPlanID != "" &&
-			proj.GetFeatureFlag(models.MetronomeEnabled, c.Config().LaunchDarklyClient) {
+		if c.Config().ServerConf.MetronomeAPIKey != "" && c.Config().ServerConf.PorterCloudPlanID != "" && proj.GetFeatureFlag(models.MetronomeEnabled, c.Config().LaunchDarklyClient) {
 
 			// Create Metronome Customer
 			if c.Config().ServerConf.MetronomeAPIKey != "" {

+ 11 - 7
api/server/handlers/project/create.go

@@ -81,6 +81,7 @@ func (p *ProjectCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
 	}
 
 	// Create Stripe Customer
+	var shouldUpdate bool
 	if p.Config().ServerConf.StripeSecretKey != "" && p.Config().ServerConf.StripePublishableKey != "" {
 		// Create billing customer for project and set the billing ID
 		billingID, err := p.Config().BillingManager.StripeClient.CreateCustomer(ctx, user.Email, proj)
@@ -90,6 +91,7 @@ func (p *ProjectCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
 			return
 		}
 		proj.BillingID = billingID
+		shouldUpdate = true
 
 		telemetry.WithAttributes(span,
 			telemetry.AttributeKV{Key: "project-id", Value: proj.ID},
@@ -99,8 +101,7 @@ func (p *ProjectCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
 	}
 
 	// Create Metronome customer and add to starter plan
-	if p.Config().ServerConf.MetronomeAPIKey != "" && p.Config().ServerConf.PorterCloudPlanID != "" &&
-		proj.GetFeatureFlag(models.MetronomeEnabled, p.Config().LaunchDarklyClient) {
+	if p.Config().ServerConf.MetronomeAPIKey != "" && p.Config().ServerConf.PorterCloudPlanID != "" && proj.GetFeatureFlag(models.MetronomeEnabled, p.Config().LaunchDarklyClient) {
 
 		// Create Metronome Customer
 		if p.Config().ServerConf.MetronomeAPIKey != "" {
@@ -111,6 +112,7 @@ func (p *ProjectCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
 				return
 			}
 			proj.UsageID = usageID
+			shouldUpdate = true
 		}
 
 		porterCloudPlanID, err := uuid.Parse(p.Config().ServerConf.PorterCloudPlanID)
@@ -130,11 +132,13 @@ func (p *ProjectCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
 		proj.UsagePlanID = customerPlanID
 	}
 
-	_, err = p.Repo().Project().UpdateProject(proj)
-	if err != nil {
-		err := telemetry.Error(ctx, span, err, "error updating project")
-		p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
-		return
+	if shouldUpdate {
+		_, err = p.Repo().Project().UpdateProject(proj)
+		if err != nil {
+			err := telemetry.Error(ctx, span, err, "error updating project")
+			p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
+			return
+		}
 	}
 
 	// create default project usage restriction

+ 1 - 0
api/server/shared/config/loader/loader.go

@@ -40,6 +40,7 @@ import (
 )
 
 var (
+	// InstanceBillingManager manages Stripe and Metronome clients
 	InstanceBillingManager billing.Manager
 	InstanceEnvConf        *envloader.EnvConf
 	InstanceDB             *pgorm.DB