sightplace-rep/core/registration/record.py

121 lines
3.3 KiB
Python
Raw Normal View History

import json
class RecordHeader():
__h_type = ""
__h_referral_name = ""
__h_receiver_list = []
def __init__(self, header_type: str, referral_name: str, receiver_list=None):
if receiver_list is None:
receiver_list = []
self.__h_receiver_list = receiver_list
self.__h_type = header_type
self.__h_referral_name = referral_name
def analyze(self):
if type(self.__h_type) != str:
print("wrong type value")
return False
if type(self.__h_receiver_list) == str:
self.__h_receiver_list = json.loads(self.__h_receiver_list)
if type(self.__h_receiver_list) == list:
return True
elif type(self.__h_receiver_list) == list:
return True
return False
def getType(self):
return self.__h_type
def getReferralName(self):
return self.__h_referral_name
def getReceivers(self):
return self.__h_receiver_list
# NO LIST [] just DICT {} any list in the dict will cause error.
def replaceDictCharacters(d):
for key, value in d.items():
if type(value) == dict:
d[key] = replaceDictCharacters(value)
else:
d[key] = str(value).replace('\\', '\\').replace('\'', "")
return d
class RecordData():
__data = ""
__data_json = ""
def __init__(self, user_data):
if user_data is None:
user_data = {}
self.__data = user_data
self.__data_json = ""
def analyze(self):
if type(self.__data) == str:
try:
# CREATING PYTHON DICT
self.__data = json.loads(self.__data)
# CREATING JSON STRING (for sight.js)
except ValueError:
print("wrong data value")
return False
if type(self.__data) == dict:
self.__data_json = json.dumps(replaceDictCharacters(self.__data))
return True
return False
def getData(self):
return self.__data
def getDataJson(self):
return self.__data_json
class Record():
__state = "CREATING"
__r_header = ""
def __init__(self, record_header, record_data):
if record_header.__class__.__name__ != "RecordHeader":
print("ERROR IT IS NOT A RECORD HEADER")
self.__state = "ERROR"
return
if record_data.__class__.__name__ != "RecordData":
print("ERROR IT IS NOT A RECORD DATA")
self.__state = "ERROR"
return
self.__r_header = record_header
self.__r_data = record_data
self.__state = "NEW"
def analyze(self):
if self.__state == "NEW":
#print(str(self.__r_header.analyze()) + " - data: " + str(self.__r_data.analyze()))
if self.__r_header.analyze() is True and self.__r_data.analyze() is True:
self.__state = "ANALYZED"
else:
self.__state = "ANALYZE_FAILED"
def getState(self):
return self.__state
def getHeader(self):
if self.__state == "ANALYZED":
return self.__r_header
return None
def getData(self, json_data=False):
if self.__state == "ANALYZED":
if json_data:
return self.__r_data.getDataJson()
return self.__r_data.getData()
return None