Skip to content
Snippets Groups Projects
Select Git revision
  • 67f305aeb8179a6d4ba558a67b4eecac619e81e7
  • main default
2 results

units.go

Blame
  • 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
    }