github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/version/converter.go (about) 1 package version 2 3 import ( 4 "github.com/kyma-incubator/compass/components/director/internal/model" 5 "github.com/kyma-incubator/compass/components/director/internal/repo" 6 "github.com/kyma-incubator/compass/components/director/pkg/graphql" 7 ) 8 9 type converter struct{} 10 11 // NewConverter missing godoc 12 func NewConverter() *converter { 13 return &converter{} 14 } 15 16 // ToGraphQL missing godoc 17 func (c *converter) ToGraphQL(in *model.Version) *graphql.Version { 18 if in == nil { 19 return nil 20 } 21 22 return &graphql.Version{ 23 Value: in.Value, 24 Deprecated: in.Deprecated, 25 DeprecatedSince: in.DeprecatedSince, 26 ForRemoval: in.ForRemoval, 27 } 28 } 29 30 // InputFromGraphQL missing godoc 31 func (c *converter) InputFromGraphQL(in *graphql.VersionInput) *model.VersionInput { 32 if in == nil { 33 return nil 34 } 35 36 return &model.VersionInput{ 37 Value: in.Value, 38 Deprecated: in.Deprecated, 39 DeprecatedSince: in.DeprecatedSince, 40 ForRemoval: in.ForRemoval, 41 } 42 } 43 44 // FromEntity missing godoc 45 func (c *converter) FromEntity(version Version) *model.Version { 46 value := repo.StringPtrFromNullableString(version.Value) 47 versionValue := "" 48 if value != nil { 49 versionValue = *value 50 } 51 52 if !version.ForRemoval.Valid && !version.Value.Valid && !version.Deprecated.Valid && !version.DeprecatedSince.Valid { 53 return nil 54 } 55 56 return &model.Version{ 57 Value: versionValue, 58 Deprecated: repo.BoolPtrFromNullableBool(version.Deprecated), 59 DeprecatedSince: repo.StringPtrFromNullableString(version.DeprecatedSince), 60 ForRemoval: repo.BoolPtrFromNullableBool(version.ForRemoval), 61 } 62 } 63 64 // ToEntity missing godoc 65 func (c *converter) ToEntity(version model.Version) Version { 66 return Version{ 67 Value: repo.NewNullableString(&version.Value), 68 Deprecated: repo.NewNullableBool(version.Deprecated), 69 DeprecatedSince: repo.NewNullableString(version.DeprecatedSince), 70 ForRemoval: repo.NewNullableBool(version.ForRemoval), 71 } 72 }