impl normalize in HTTP
All checks were successful
cicd / ci (push) Successful in 2m18s

This commit is contained in:
Bel LaPointe
2025-02-21 15:31:09 -07:00
parent 5cc7b7ec55
commit 4d01a5e481
3 changed files with 87 additions and 22 deletions

View File

@@ -44,20 +44,26 @@ func (n Normalizer) Normalize(deltas ledger.Deltas) ledger.Deltas {
if !like(delta) {
continue
}
func() {
for pattern := range n.m {
if regexp.MustCompile(pattern).MatchString(delta.Name) {
for _, normalize := range n.m[pattern] {
if normalize.startDate < delta.Date {
delta.Value /= normalize.factor
return
}
}
}
}
}()
deltas[i] = delta
deltas[i] = n.NormalizeDelta(delta)
}
return deltas
}
func (n Normalizer) NormalizeDelta(delta ledger.Delta) ledger.Delta {
delta.Value /= n.NormalizeFactor(delta)
return delta
}
func (n Normalizer) NormalizeFactor(delta ledger.Delta) float64 {
for pattern := range n.m {
if regexp.MustCompile(pattern).MatchString(delta.Name) {
for _, normalize := range n.m[pattern] {
if normalize.startDate < delta.Date {
return normalize.factor
}
}
}
}
return 1.0
}