def update_employee(self, timestamp, id, position, salary ): product_address = addresser.get_product_address(id) employee = product_pb2.Product.Employee( timestamp = timestamp, position = position, salary = salary ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) for product in container.entries: if product.id == id: product.employees.extend([employee]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)
def update_company(self, timestamp, id, address, price_IPO ): product_address = addresser.get_product_address(id) company = product_pb2.Product.Company( timestamp = timestamp, address = address, price_IPO = price_IPO ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) for product in container.entries: if product.id == id: product.companies.extend([company]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)
def update_location(self, timestamp, id, longitude, latitude ): product_address = addresser.get_product_address(id) location = product_pb2.Product.Location( timestamp = timestamp, longitude = longitude, latitude = latitude ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) for product in container.entries: if product.id == id: product.locations.extend([location]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)
def update_status(self, timestamp, id, quantity, price ): product_address = addresser.get_product_address(id) status = product_pb2.Product.Status( timestamp = timestamp, quantity = quantity, price = price ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) for product in container.entries: if product.id == id: product.statuss.extend([status]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)
def get_product(self, id): address = addresser.get_product_address(id) state_entries = self._context.get_state( addresses=[address], timeout=self._timeout) if state_entries: container = product_pb2.ProductContainer() container.ParseFromString(state_entries[0].data) for product in container.entries: if product.id == id: return product return None
def drug_import(self, timestamp, id, name ): product_address = addresser.get_product_address(id) product = product_pb2.Product( id=id, name=name ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) container.entries.extend([product]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)
def createLc(self, timestamp, content, publicKeyUser ): product_address = addresser.get_product_address() product = product_pb2.Product( content=content, publicKeyUser=publicKeyUser ) container = product_pb2.ProductContainer() state_entries = self._context.get_state( addresses=[product_address], timeout=self._timeout) if state_entries: container.ParseFromString(state_entries[0].data) container.entries.extend([product]) data = container.SerializeToString() updated_state = {} updated_state[product_address] = data self._context.set_state(updated_state, timeout=self._timeout)