github.com/stampzilla/stampzilla-go@v2.0.0-rc9+incompatible/nodes/stampzilla-server/store/server.go (about)

     1  package store
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	"github.com/sirupsen/logrus"
     7  )
     8  
     9  func (s *Store) AddOrUpdateServer(area, item string, state map[string]interface{}) {
    10  	s.Lock()
    11  	if s.Server[area] == nil {
    12  		s.Server[area] = make(map[string]map[string]interface{})
    13  	}
    14  	if s.Server[area][item] == nil {
    15  		s.Server[area][item] = make(map[string]interface{})
    16  	}
    17  
    18  	for k, v := range state {
    19  		s.Server[area][item][k] = v
    20  	}
    21  	s.Unlock()
    22  
    23  	s.runCallbacks("server")
    24  }
    25  
    26  func (store *Store) GetServerStateAsJson() json.RawMessage {
    27  	store.RLock()
    28  	b, err := json.Marshal(store.Server)
    29  	store.RUnlock()
    30  
    31  	if err != nil {
    32  		logrus.Errorf("Failed to marshal server state: %s", err.Error())
    33  	}
    34  	return b
    35  }