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 }