def create(cls, uid, value, check_sum=None, processes=list()): """ Creates, processes and returns a record :param uid: str :param value: str :param check_sum: str :param processes: list :return: object """ record = dict() record['uid'] = uid record['value'] = value record['timestamp'] = time.time() if not check_sum: check_sum = Helpers.sign(value) record['check_sum'] = check_sum for process in processes: process.process(record) record['size'] = Helpers.iterable_size(target=record) return record
def update(self, uid, values): """ Updates a record. Raises an exception if record exists :param uid: str :param values: dict :return: dict """ text = values['value'] self._valid_exists(uid=uid) last_check_sum = self.get_check_sum(uid=uid) new_check_sum = Helpers.sign(text) if last_check_sum == new_check_sum: raise RecordExists('Record has no change') record = self.create(uid=uid, value=text, check_sum=new_check_sum, processes=self._processes) self._storage.update(record=record) return record