Select Git revision
units.go 844 B
/**
* units.go
*
* COPYRIGHT: FUNDACIÓN TECNALIA RESEARCH & INNOVATION, 2022.
*/
package middleware
import (
"errors"
"strings"
"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
"git.code.tecnalia.com/traceblock/sdk/middleware"
)
var (
ValidateUnits = shared.NewMiddlewareFunction("validate-units", _rejectIfInvalidUnits)
errInvalidUnits = errors.New("invalid units provided")
)
func _rejectIfInvalidUnits(stub shared.LedgerBuildrStubInterface, ctl shared.ControllerInterface, req shared.TXRequestInterface, requestAsset shared.LedgerBuildrAsset) (shared.LedgerBuildrAsset, error) {
asst, err := middleware.ConvertToTraceableAsset(requestAsset)
if err != nil {
return nil, err
}
asst.Units = strings.ToLower(asst.Units)
if (asst.Units != "kg" && asst.Units != "t") {
return nil, errInvalidUnits
}
return asst, nil
}