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  }