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

stub.go

Blame
  • stub.go 3.88 KiB
    /**
     * stub.go
     *
     * COPYRIGHT: FUNDACIÓN TECNALIA RESEARCH & INNOVATION, 2022.
     */
    
    package stats
    
    import (
    	"encoding/json"
    	"fmt"
    
    	"git.code.tecnalia.com/blockchain/hypercog/model"
    	"git.code.tecnalia.com/ledgerbuilder/sdk/core/util/logging"
    	"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
    )
    
    const GLOBAL_KEY = "global"
    const ORG_LIST_KEY = "org_list"
    
    type OrgList []string
    
    var log = logging.NewGoLogger("stats")
    
    func getStats(stub shared.LedgerBuildrStubInterface, key string) (st *model.RawStats, err error) {
    	value, err := stub.GetState(key)
    	if err != nil || len(value) == 0 {
    		st = new(model.RawStats)
    	} else {
    		err = json.Unmarshal(value, &st)
    		if err != nil  {
    			return nil, err
    		}
    	}
    
    	return st, nil
    }
    
    func putStats(stub shared.LedgerBuildrStubInterface, key string, stats *model.RawStats) (error) {
    	serialized, err := json.Marshal(stats)
    	if err != nil {
    		return err
    	}
    
    	err = stub.PutState(key, serialized)
    	if err != nil {
    		return err
    	}
    
    	return nil
    }
    
    func getOrgList(stub shared.LedgerBuildrStubInterface) (st *OrgList, err error) {
    	value, err := stub.GetState(ORG_LIST_KEY)
    	if err != nil || len(value) == 0 {
    		st = new(OrgList)
    	} else {
    		err = json.Unmarshal(value, &st)
    		if err != nil  {
    			return nil, err
    		}
    	}
    
    	return st, nil
    }
    
    func resetStats(stub shared.LedgerBuildrStubInterface) (error) {
    	err := stub.DelState(GLOBAL_KEY)
    	if err != nil {
    		return err