Skip to content
Snippets Groups Projects
Select Git revision
  • 28233092fb4ff4dca9411233b5ca5bdd7b9c1336
  • main default
2 results

stats_controller.go

Blame
  • stats_controller.go 1.27 KiB
    /**
     * stats_controller.go
     *
     * COPYRIGHT: FUNDACIÓN TECNALIA RESEARCH & INNOVATION, 2022.
     */
    
    package stats
    
    import (
    	"git.code.tecnalia.com/blockchain/hypercog/model"
    	"git.code.tecnalia.com/ledgerbuilder/sdk/core/api"
    	"git.code.tecnalia.com/ledgerbuilder/sdk/core/fabric/protos"
    	"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
    )
    
    
    type StatsResult struct {
    	PerSteelCompany map[string]model.Stats `json:"perSteelCompany,omitempty"`
    }
    
    func GetStatsOperation(stub shared.LedgerBuildrStubInterface, request shared.LedgerBuildrAsset) protos.Response {
    	fnName := "GetStats"
    
    	ret := new(StatsResult)
    
    	orgs, err := getOrgList(stub)
    	if err != nil {
    		return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
    	}
    
    	if len(*orgs) > 0 {
    		ret.PerSteelCompany = make(map[string]model.Stats)
    	}
    
    	for _, org := range *orgs {
    		orgStat, err := getStats(stub, org)
    		if err != nil {
    			return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
    		}
    		ret.PerSteelCompany[org] = *orgStat.RefineStats()
        }
    
    	return api.NewAPIGenericResponsePtr(fnName, nil, ret).SendResponse()
    }
    
    func ResetStats(stub shared.LedgerBuildrStubInterface, request shared.LedgerBuildrAsset) protos.Response {
    	err := resetStats(stub)
    	return api.NewAPIGenericResponsePtr("ResetStats", err, nil).SendResponse()
    }