chore: implement instance metadata import

This commit is contained in:
DevMiner 2024-09-22 01:08:21 +02:00
parent 5f9b611921
commit 95cff10def
13 changed files with 173 additions and 20 deletions

View file

@ -47,7 +47,7 @@ type InstanceMetadata struct {
// SoftwareVersion holds the value of the "softwareVersion" field.
SoftwareVersion string `json:"softwareVersion,omitempty"`
// SharedInboxURI holds the value of the "sharedInboxURI" field.
SharedInboxURI string `json:"sharedInboxURI,omitempty"`
SharedInboxURI *string `json:"sharedInboxURI,omitempty"`
// ModeratorsURI holds the value of the "moderatorsURI" field.
ModeratorsURI *string `json:"moderatorsURI,omitempty"`
// AdminsURI holds the value of the "adminsURI" field.
@ -231,7 +231,8 @@ func (im *InstanceMetadata) assignValues(columns []string, values []any) error {
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sharedInboxURI", values[i])
} else if value.Valid {
im.SharedInboxURI = value.String
im.SharedInboxURI = new(string)
*im.SharedInboxURI = value.String
}
case instancemetadata.FieldModeratorsURI:
if value, ok := values[i].(*sql.NullString); !ok {
@ -383,8 +384,10 @@ func (im *InstanceMetadata) String() string {
builder.WriteString("softwareVersion=")
builder.WriteString(im.SoftwareVersion)
builder.WriteString(", ")
builder.WriteString("sharedInboxURI=")
builder.WriteString(im.SharedInboxURI)
if v := im.SharedInboxURI; v != nil {
builder.WriteString("sharedInboxURI=")
builder.WriteString(*v)
}
builder.WriteString(", ")
if v := im.ModeratorsURI; v != nil {
builder.WriteString("moderatorsURI=")

View file

@ -851,6 +851,16 @@ func SharedInboxURIHasSuffix(v string) predicate.InstanceMetadata {
return predicate.InstanceMetadata(sql.FieldHasSuffix(FieldSharedInboxURI, v))
}
// SharedInboxURIIsNil applies the IsNil predicate on the "sharedInboxURI" field.
func SharedInboxURIIsNil() predicate.InstanceMetadata {
return predicate.InstanceMetadata(sql.FieldIsNull(FieldSharedInboxURI))
}
// SharedInboxURINotNil applies the NotNil predicate on the "sharedInboxURI" field.
func SharedInboxURINotNil() predicate.InstanceMetadata {
return predicate.InstanceMetadata(sql.FieldNotNull(FieldSharedInboxURI))
}
// SharedInboxURIEqualFold applies the EqualFold predicate on the "sharedInboxURI" field.
func SharedInboxURIEqualFold(v string) predicate.InstanceMetadata {
return predicate.InstanceMetadata(sql.FieldEqualFold(FieldSharedInboxURI, v))

View file

@ -134,6 +134,14 @@ func (imc *InstanceMetadataCreate) SetSharedInboxURI(s string) *InstanceMetadata
return imc
}
// SetNillableSharedInboxURI sets the "sharedInboxURI" field if the given value is not nil.
func (imc *InstanceMetadataCreate) SetNillableSharedInboxURI(s *string) *InstanceMetadataCreate {
if s != nil {
imc.SetSharedInboxURI(*s)
}
return imc
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (imc *InstanceMetadataCreate) SetModeratorsURI(s string) *InstanceMetadataCreate {
imc.mutation.SetModeratorsURI(s)
@ -410,9 +418,6 @@ func (imc *InstanceMetadataCreate) check() error {
return &ValidationError{Name: "softwareVersion", err: fmt.Errorf(`ent: validator failed for field "InstanceMetadata.softwareVersion": %w`, err)}
}
}
if _, ok := imc.mutation.SharedInboxURI(); !ok {
return &ValidationError{Name: "sharedInboxURI", err: errors.New(`ent: missing required field "InstanceMetadata.sharedInboxURI"`)}
}
if v, ok := imc.mutation.SharedInboxURI(); ok {
if err := instancemetadata.SharedInboxURIValidator(v); err != nil {
return &ValidationError{Name: "sharedInboxURI", err: fmt.Errorf(`ent: validator failed for field "InstanceMetadata.sharedInboxURI": %w`, err)}
@ -544,7 +549,7 @@ func (imc *InstanceMetadataCreate) createSpec() (*InstanceMetadata, *sqlgraph.Cr
}
if value, ok := imc.mutation.SharedInboxURI(); ok {
_spec.SetField(instancemetadata.FieldSharedInboxURI, field.TypeString, value)
_node.SharedInboxURI = value
_node.SharedInboxURI = &value
}
if value, ok := imc.mutation.ModeratorsURI(); ok {
_spec.SetField(instancemetadata.FieldModeratorsURI, field.TypeString, value)
@ -846,6 +851,12 @@ func (u *InstanceMetadataUpsert) UpdateSharedInboxURI() *InstanceMetadataUpsert
return u
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (u *InstanceMetadataUpsert) ClearSharedInboxURI() *InstanceMetadataUpsert {
u.SetNull(instancemetadata.FieldSharedInboxURI)
return u
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (u *InstanceMetadataUpsert) SetModeratorsURI(v string) *InstanceMetadataUpsert {
u.Set(instancemetadata.FieldModeratorsURI, v)
@ -1225,6 +1236,13 @@ func (u *InstanceMetadataUpsertOne) UpdateSharedInboxURI() *InstanceMetadataUpse
})
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (u *InstanceMetadataUpsertOne) ClearSharedInboxURI() *InstanceMetadataUpsertOne {
return u.Update(func(s *InstanceMetadataUpsert) {
s.ClearSharedInboxURI()
})
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (u *InstanceMetadataUpsertOne) SetModeratorsURI(v string) *InstanceMetadataUpsertOne {
return u.Update(func(s *InstanceMetadataUpsert) {
@ -1793,6 +1811,13 @@ func (u *InstanceMetadataUpsertBulk) UpdateSharedInboxURI() *InstanceMetadataUps
})
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (u *InstanceMetadataUpsertBulk) ClearSharedInboxURI() *InstanceMetadataUpsertBulk {
return u.Update(func(s *InstanceMetadataUpsert) {
s.ClearSharedInboxURI()
})
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (u *InstanceMetadataUpsertBulk) SetModeratorsURI(v string) *InstanceMetadataUpsertBulk {
return u.Update(func(s *InstanceMetadataUpsert) {

View file

@ -194,6 +194,12 @@ func (imu *InstanceMetadataUpdate) SetNillableSharedInboxURI(s *string) *Instanc
return imu
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (imu *InstanceMetadataUpdate) ClearSharedInboxURI() *InstanceMetadataUpdate {
imu.mutation.ClearSharedInboxURI()
return imu
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (imu *InstanceMetadataUpdate) SetModeratorsURI(s string) *InstanceMetadataUpdate {
imu.mutation.SetModeratorsURI(s)
@ -609,6 +615,9 @@ func (imu *InstanceMetadataUpdate) sqlSave(ctx context.Context) (n int, err erro
if value, ok := imu.mutation.SharedInboxURI(); ok {
_spec.SetField(instancemetadata.FieldSharedInboxURI, field.TypeString, value)
}
if imu.mutation.SharedInboxURICleared() {
_spec.ClearField(instancemetadata.FieldSharedInboxURI, field.TypeString)
}
if value, ok := imu.mutation.ModeratorsURI(); ok {
_spec.SetField(instancemetadata.FieldModeratorsURI, field.TypeString, value)
}
@ -978,6 +987,12 @@ func (imuo *InstanceMetadataUpdateOne) SetNillableSharedInboxURI(s *string) *Ins
return imuo
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (imuo *InstanceMetadataUpdateOne) ClearSharedInboxURI() *InstanceMetadataUpdateOne {
imuo.mutation.ClearSharedInboxURI()
return imuo
}
// SetModeratorsURI sets the "moderatorsURI" field.
func (imuo *InstanceMetadataUpdateOne) SetModeratorsURI(s string) *InstanceMetadataUpdateOne {
imuo.mutation.SetModeratorsURI(s)
@ -1423,6 +1438,9 @@ func (imuo *InstanceMetadataUpdateOne) sqlSave(ctx context.Context) (_node *Inst
if value, ok := imuo.mutation.SharedInboxURI(); ok {
_spec.SetField(instancemetadata.FieldSharedInboxURI, field.TypeString, value)
}
if imuo.mutation.SharedInboxURICleared() {
_spec.ClearField(instancemetadata.FieldSharedInboxURI, field.TypeString)
}
if value, ok := imuo.mutation.ModeratorsURI(); ok {
_spec.SetField(instancemetadata.FieldModeratorsURI, field.TypeString, value)
}

File diff suppressed because one or more lines are too long

View file

@ -114,7 +114,7 @@ var (
{Name: "private_key", Type: field.TypeBytes, Nullable: true},
{Name: "software_name", Type: field.TypeString},
{Name: "software_version", Type: field.TypeString},
{Name: "shared_inbox_uri", Type: field.TypeString},
{Name: "shared_inbox_uri", Type: field.TypeString, Nullable: true},
{Name: "moderators_uri", Type: field.TypeString, Nullable: true},
{Name: "admins_uri", Type: field.TypeString, Nullable: true},
{Name: "logo_endpoint", Type: field.TypeString, Nullable: true},

View file

@ -3071,7 +3071,7 @@ func (m *InstanceMetadataMutation) SharedInboxURI() (r string, exists bool) {
// OldSharedInboxURI returns the old "sharedInboxURI" field's value of the InstanceMetadata entity.
// If the InstanceMetadata object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *InstanceMetadataMutation) OldSharedInboxURI(ctx context.Context) (v string, err error) {
func (m *InstanceMetadataMutation) OldSharedInboxURI(ctx context.Context) (v *string, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldSharedInboxURI is only allowed on UpdateOne operations")
}
@ -3085,9 +3085,22 @@ func (m *InstanceMetadataMutation) OldSharedInboxURI(ctx context.Context) (v str
return oldValue.SharedInboxURI, nil
}
// ClearSharedInboxURI clears the value of the "sharedInboxURI" field.
func (m *InstanceMetadataMutation) ClearSharedInboxURI() {
m.sharedInboxURI = nil
m.clearedFields[instancemetadata.FieldSharedInboxURI] = struct{}{}
}
// SharedInboxURICleared returns if the "sharedInboxURI" field was cleared in this mutation.
func (m *InstanceMetadataMutation) SharedInboxURICleared() bool {
_, ok := m.clearedFields[instancemetadata.FieldSharedInboxURI]
return ok
}
// ResetSharedInboxURI resets all changes to the "sharedInboxURI" field.
func (m *InstanceMetadataMutation) ResetSharedInboxURI() {
m.sharedInboxURI = nil
delete(m.clearedFields, instancemetadata.FieldSharedInboxURI)
}
// SetModeratorsURI sets the "moderatorsURI" field.
@ -4053,6 +4066,9 @@ func (m *InstanceMetadataMutation) ClearedFields() []string {
if m.FieldCleared(instancemetadata.FieldPrivateKey) {
fields = append(fields, instancemetadata.FieldPrivateKey)
}
if m.FieldCleared(instancemetadata.FieldSharedInboxURI) {
fields = append(fields, instancemetadata.FieldSharedInboxURI)
}
if m.FieldCleared(instancemetadata.FieldModeratorsURI) {
fields = append(fields, instancemetadata.FieldModeratorsURI)
}
@ -4091,6 +4107,9 @@ func (m *InstanceMetadataMutation) ClearField(name string) error {
case instancemetadata.FieldPrivateKey:
m.ClearPrivateKey()
return nil
case instancemetadata.FieldSharedInboxURI:
m.ClearSharedInboxURI()
return nil
case instancemetadata.FieldModeratorsURI:
m.ClearModeratorsURI()
return nil

View file

@ -25,7 +25,10 @@ func (InstanceMetadata) Fields() []ent.Field {
field.String("softwareName").NotEmpty(),
field.String("softwareVersion").NotEmpty(),
field.String("sharedInboxURI").Validate(ValidateURI),
field.String("sharedInboxURI").
Validate(ValidateURI).
Optional().
Nillable(),
field.String("moderatorsURI").
Validate(ValidateURI).
Optional().