Select Git revision
-
Steve Azzopardi authoredSteve Azzopardi authored
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()
}