|
@@ -1,59 +0,0 @@
|
|
|
-package database
|
|
|
-
|
|
|
-import (
|
|
|
- "encoding/json"
|
|
|
- "strings"
|
|
|
-)
|
|
|
-
|
|
|
-// SetPeers - sets peers for a network
|
|
|
-func SetPeers(newPeers map[string]string, networkName string) bool {
|
|
|
- areEqual := PeersAreEqual(newPeers, networkName)
|
|
|
- if !areEqual {
|
|
|
- jsonData, err := json.Marshal(newPeers)
|
|
|
- if err != nil {
|
|
|
- return false
|
|
|
- }
|
|
|
- InsertPeer(networkName, string(jsonData))
|
|
|
- return true
|
|
|
- }
|
|
|
- return !areEqual
|
|
|
-}
|
|
|
-
|
|
|
-// GetPeers - gets peers for a given network
|
|
|
-func GetPeers(networkName string) (map[string]string, error) {
|
|
|
- record, err := FetchRecord(PEERS_TABLE_NAME, networkName)
|
|
|
- if err != nil && !IsEmptyRecord(err) {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- currentDataMap := make(map[string]string)
|
|
|
- if IsEmptyRecord(err) {
|
|
|
- return currentDataMap, nil
|
|
|
- }
|
|
|
- err = json.Unmarshal([]byte(record), ¤tDataMap)
|
|
|
- return currentDataMap, err
|
|
|
-}
|
|
|
-
|
|
|
-// PeersAreEqual - checks if peers are the same
|
|
|
-func PeersAreEqual(toCompare map[string]string, networkName string) bool {
|
|
|
- currentDataMap, err := GetPeers(networkName)
|
|
|
- if err != nil {
|
|
|
- return false
|
|
|
- }
|
|
|
- if len(currentDataMap) != len(toCompare) {
|
|
|
- return false
|
|
|
- }
|
|
|
- for k := range currentDataMap {
|
|
|
- if toCompare[k] != currentDataMap[k] {
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
- return true
|
|
|
-}
|
|
|
-
|
|
|
-// IsEmptyRecord - checks for if it's an empty record error or not
|
|
|
-func IsEmptyRecord(err error) bool {
|
|
|
- if err == nil {
|
|
|
- return false
|
|
|
- }
|
|
|
- return strings.Contains(err.Error(), NO_RECORD) || strings.Contains(err.Error(), NO_RECORDS)
|
|
|
-}
|