All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.golang.database.mappers.mappers.go.template Maven / Gradle / Ivy

The newest version!
package mappers

import (
	"@code_url@@namespace@/@service_name@/zerotouch/golang/database/models"
	fs @go_proto_path@
	"github.com/golang/protobuf/ptypes"
	"database/sql"
	"time"
	"google.golang.org/protobuf/types/known/timestamppb"
)

@insert_maps@

func getNullableInt32(nullableInt int32) sql.NullInt32{

	var result sql.NullInt32
	if nullableInt != 0 {
		result = sql.NullInt32{Int32: nullableInt, Valid: true}
	} else {
		result = sql.NullInt32{}
	}
	return result
}

func getNullableInt32s(nullableInts []int32) []sql.NullInt32{

	var result []sql.NullInt32
	if len(nullableInts) > 0 {
		for _, nullableInt := range nullableInts {
			result = append(result, sql.NullInt32{Int32: nullableInt, Valid: true})
		}
	} else {
		result = []sql.NullInt32{}
	}
	return result
}

func getNullableInt64(nullableInt int64) sql.NullInt64{

	var result sql.NullInt64
	if nullableInt != 0 {
		result = sql.NullInt64{Int64: nullableInt, Valid: true}
	} else {
		result = sql.NullInt64{}
	}
	return result
}

func getNullableInt64s(nullableInts []int64) []sql.NullInt64{

	var result []sql.NullInt64
	if len(nullableInts) > 0 {
		for _, nullableInt := range nullableInts {
			result = append(result, sql.NullInt64{Int64: nullableInt, Valid: true})
		}
	} else {
		result = []sql.NullInt64{}
	}
	return result
}

func getNullableFloat64(nullableFloat float64) sql.NullFloat64 {

	var result sql.NullFloat64
	if &nullableFloat != nil {
		result = sql.NullFloat64{Float64: nullableFloat, Valid: true}
	} else {
		result = sql.NullFloat64{}
	}
	return result
}

func getNullableString(nullableString string) sql.NullString{

	var result sql.NullString
	if len(nullableString) > 0 {
		result = sql.NullString{String: nullableString, Valid: true}
	} else {
		result = sql.NullString{}
	}
	return result
}

func getNullableStrings(nullableStrings []string) []sql.NullString{

	var result []sql.NullString
	if len(nullableStrings) > 0 {
		for _, nullableString := range nullableStrings {
			result = append(result, sql.NullString{String: nullableString, Valid: true})
		}
	} else {
		result = []sql.NullString{}
	}
	return result
}

func getNullableDateTime(timeStamp int64) sql.NullTime{

	gTime := time.Unix(timeStamp, 0)
	pTime, _ := ptypes.TimestampProto(gTime)

	var result sql.NullTime
	parsedAllottedTime, err := ptypes.Timestamp(pTime)
	if err != nil {
		result = sql.NullTime{}
	} else {
		result = sql.NullTime{Time: parsedAllottedTime, Valid: true}
	}
	return result
}

func getNullableTimestamp(timeStamp *timestamppb.Timestamp) sql.NullString{

	  //gTime := time.Unix(timeStamp, 0)
  	//pTime, _ := ptypes.TimestampProto(gTime)

  	var result sql.NullString
  	parsedAllottedTime, err := ptypes.Timestamp(timeStamp)
  	if err != nil {
  		result = sql.NullString{}
  	} else if parsedAllottedTime.IsZero() {
        	result = sql.NullString{}
      } else {
  		result = sql.NullString{String: parsedAllottedTime.Format("2006-01-02 15:04:05"), Valid: true}
  	}
  	return result
  }

func getNullableBool(boolean bool) sql.NullBool {

	var result sql.NullBool
	result = sql.NullBool{Bool: boolean, Valid: true}
	return result
}

func getUnixTime(timestamp string) int64{

	layout := "2006-01-02T15:04:05Z"
	parsedTime, _ := time.Parse(layout, timestamp)
	return parsedTime.Unix()
}

func getProtoTime(timestamp string) *timestamppb.Timestamp {
	layout := "2006-01-02T15:04:05Z"
	time, _ := time.Parse(layout, timestamp)
	return timestamppb.New(time)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy