Initial MVP commit
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
This commit is contained in:
35
internal/application/units/converter.go
Normal file
35
internal/application/units/converter.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package units
|
||||
|
||||
import (
|
||||
"math"
|
||||
|
||||
"gitea.maximumdirect.net/ejr/weatherapi/internal/platform/constants"
|
||||
)
|
||||
|
||||
type Converter interface {
|
||||
TemperatureCToOutput(celsius *float64) *float64
|
||||
SpeedKmhToOutput(kmh *float64) *float64
|
||||
}
|
||||
|
||||
type USConverter struct{}
|
||||
|
||||
func (USConverter) TemperatureCToOutput(celsius *float64) *float64 {
|
||||
if celsius == nil {
|
||||
return nil
|
||||
}
|
||||
f := round(constants.CelsiusToFahrenheit(*celsius), constants.TempFahrenheitPrecision)
|
||||
return &f
|
||||
}
|
||||
|
||||
func (USConverter) SpeedKmhToOutput(kmh *float64) *float64 {
|
||||
if kmh == nil {
|
||||
return nil
|
||||
}
|
||||
mph := round(constants.KmhToMph(*kmh), constants.WindMphPrecision)
|
||||
return &mph
|
||||
}
|
||||
|
||||
func round(v float64, precision int) float64 {
|
||||
pow := math.Pow(10, float64(precision))
|
||||
return math.Round(v*pow) / pow
|
||||
}
|
||||
Reference in New Issue
Block a user