diff --git a/packages/api/internal/db/envs.go b/packages/api/internal/db/envs.go index 3c30e6852..f522bfa05 100644 --- a/packages/api/internal/db/envs.go +++ b/packages/api/internal/db/envs.go @@ -13,7 +13,6 @@ func (db *DB) DeleteEnv(envID string) error { _, err := models.Envs(models.EnvWhere.ID.EQ(envID)).DeleteAll(db.Client) if err != nil { - return fmt.Errorf("failed to delete env '%s': %w", envID, err) } @@ -24,8 +23,8 @@ func (db *DB) GetEnvs(teamID string) (result []*api.Environment, err error) { publicWhere := models.EnvWhere.Public.EQ(true) teamWhere := models.EnvWhere.TeamID.EQ(teamID) envs, err := models.Envs(publicWhere, qm.Or2(teamWhere)).All(db.Client) - if err != nil { + if err != nil { return nil, fmt.Errorf("failed to list envs: %w", err) } @@ -45,8 +44,8 @@ func (db *DB) GetEnv(envID string, teamID string) (env *api.Environment, err err teamWhere := models.EnvWhere.TeamID.EQ(teamID) envWhere := models.EnvWhere.ID.EQ(envID) dbEnv, err := models.Envs(qm.Expr(publicWhere, qm.Or2(teamWhere)), envWhere).One(db.Client) - if err != nil { + if err != nil { return nil, fmt.Errorf("failed to list envs: %w", err) } @@ -76,7 +75,7 @@ func (db *DB) CreateEnv(envID string, teamID string, dockerfile string) (*api.En return &api.Environment{EnvID: envID, Status: api.EnvironmentStatusBuilding, Public: false}, nil } -func (db *DB) UpdateEnv(envID string, dockerfile string) (*api.Environment, error) { +func (db *DB) UpdateDockerfileEnv(envID string, dockerfile string) (*api.Environment, error) { // trunk-ignore(golangci-lint/exhaustruct) env := &models.Env{ ID: envID, @@ -99,11 +98,11 @@ func (db *DB) UpdateEnv(envID string, dockerfile string) (*api.Environment, erro return &api.Environment{EnvID: envID, Status: api.EnvironmentStatusBuilding, Public: false}, nil } -func (db *DB) MarkEnvAsReady(envID string) (*api.Environment, error) { +func (db *DB) UpdateStatusEnv(envID string, status models.EnvStatusEnum) (*api.Environment, error) { // trunk-ignore(golangci-lint/exhaustruct) env := &models.Env{ ID: envID, - Status: models.EnvStatusEnumReady, + Status: status, } rowsAffected, err := env.Update(db.Client, boil.Whitelist("status")) @@ -117,13 +116,15 @@ func (db *DB) MarkEnvAsReady(envID string) (*api.Environment, error) { return nil, fmt.Errorf("didn't find env to update to, env with id '%s'", envID) } - return &api.Environment{EnvID: envID, Status: api.EnvironmentStatusBuilding, Public: false}, nil + return &api.Environment{EnvID: envID, Status: api.EnvironmentStatus(status), Public: false}, nil } func (db *DB) HasEnvAccess(envID string, teamID string, public bool) (bool, error) { env, err := db.GetEnv(envID, teamID) + if !public && env.Public { return false, err } + return env != nil, err } diff --git a/packages/api/internal/handlers/envs.go b/packages/api/internal/handlers/envs.go index 3c2954de3..123184038 100644 --- a/packages/api/internal/handlers/envs.go +++ b/packages/api/internal/handlers/envs.go @@ -63,7 +63,7 @@ func (a *APIStore) PostEnvs( return } - env, err = a.supabase.UpdateEnv(envID, c.PostForm("dockerfile")) + env, err = a.supabase.UpdateDockerfileEnv(envID, c.PostForm("dockerfile")) if err != nil { a.sendAPIStoreError(c, http.StatusInternalServerError, fmt.Sprintf("Error when updating envs: %s", err)) diff --git a/packages/api/internal/handlers/storage.go b/packages/api/internal/handlers/storage.go index 384189062..647ddf96e 100644 --- a/packages/api/internal/handlers/storage.go +++ b/packages/api/internal/handlers/storage.go @@ -60,7 +60,14 @@ func (a *APIStore) buildEnvs(ctx context.Context, envID string, filename string, } // TODO: Start building env + // buildResultChan, err := a.nomad.StartBuildingEnv(a.tracer, ctx, envID, url) + // buildResult := <-buildResultChan + // _, err = a.supabase.UpdateDockerfileEnv(&models.Env{ + // ID: envID, + // Status: buildResult, + // }) + // if err != nil { + // panic(err) + // } println(url) - //a.nomad.StartBuildingEnv(a.tracer, ctx, envID, url) - //a.supabase.MarkEnvAsReady(envID) } diff --git a/packages/api/internal/middleware/auth.go b/packages/api/internal/middleware/auth.go index 9195f6cd8..026435489 100644 --- a/packages/api/internal/middleware/auth.go +++ b/packages/api/internal/middleware/auth.go @@ -67,6 +67,7 @@ func (a *authenticator) Authenticate(ctx context.Context, input *openapi3filter. if err != nil { return fmt.Errorf("%s %w", a.errorMessage, err) } + handlers.ReportEvent(ctx, "Validated "+a.securitySchemeName) // Set the property on the gin context middleware.GetGinContext(ctx).Set(a.contextKey, id)