示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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
示例#6
0
    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)
示例#7
0
    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)