()
| 710 | } |
| 711 | |
| 712 | func (t TemplateVersionBuilder) Do() TemplateVersionResponse { |
| 713 | t.t.Helper() |
| 714 | |
| 715 | t.seed.OrganizationID = takeFirst(t.seed.OrganizationID, uuid.New()) |
| 716 | t.seed.ID = takeFirst(t.seed.ID, uuid.New()) |
| 717 | t.seed.CreatedBy = takeFirst(t.seed.CreatedBy, uuid.New()) |
| 718 | // nolint: revive |
| 719 | t.fileID = takeFirst(t.fileID, uuid.New()) |
| 720 | |
| 721 | var resp TemplateVersionResponse |
| 722 | if t.seed.TemplateID.UUID == uuid.Nil && t.autoCreateTemplate { |
| 723 | resp.Template = dbgen.Template(t.t, t.db, database.Template{ |
| 724 | ActiveVersionID: t.seed.ID, |
| 725 | OrganizationID: t.seed.OrganizationID, |
| 726 | CreatedBy: t.seed.CreatedBy, |
| 727 | }) |
| 728 | t.seed.TemplateID = uuid.NullUUID{ |
| 729 | Valid: true, |
| 730 | UUID: resp.Template.ID, |
| 731 | } |
| 732 | t.logger.Debug(context.Background(), "created template", |
| 733 | slog.F("organization_id", resp.Template.OrganizationID), |
| 734 | slog.F("template_id", resp.Template.CreatedBy), |
| 735 | ) |
| 736 | } |
| 737 | |
| 738 | version := dbgen.TemplateVersion(t.t, t.db, t.seed) |
| 739 | t.logger.Debug(context.Background(), "created template version", |
| 740 | slog.F("template_version_id", version.ID), |
| 741 | ) |
| 742 | if t.promote { |
| 743 | err := t.db.UpdateTemplateActiveVersionByID(ownerCtx, database.UpdateTemplateActiveVersionByIDParams{ |
| 744 | ID: t.seed.TemplateID.UUID, |
| 745 | ActiveVersionID: t.seed.ID, |
| 746 | UpdatedAt: dbtime.Now(), |
| 747 | }) |
| 748 | require.NoError(t.t, err) |
| 749 | t.logger.Debug(context.Background(), "promoted template version", |
| 750 | slog.F("template_version_id", t.seed.ID), |
| 751 | ) |
| 752 | } |
| 753 | |
| 754 | for _, preset := range t.presets { |
| 755 | prst := dbgen.Preset(t.t, t.db, database.InsertPresetParams{ |
| 756 | ID: preset.ID, |
| 757 | TemplateVersionID: version.ID, |
| 758 | Name: preset.Name, |
| 759 | CreatedAt: version.CreatedAt, |
| 760 | DesiredInstances: preset.DesiredInstances, |
| 761 | InvalidateAfterSecs: preset.InvalidateAfterSecs, |
| 762 | SchedulingTimezone: preset.SchedulingTimezone, |
| 763 | IsDefault: false, |
| 764 | Description: preset.Description, |
| 765 | Icon: preset.Icon, |
| 766 | LastInvalidatedAt: preset.LastInvalidatedAt, |
| 767 | }) |
| 768 | t.logger.Debug(context.Background(), "added preset", |
| 769 | slog.F("preset_id", prst.ID), |
nothing calls this directly
no test coverage detected