def process(self, commit, *args, **kwargs): data = commit.data try: erc20d = ERC20D.objects.get(id=data["contractAddress"]) claimFrom = erc20d.claimers.get(id=data["from"]) claimTo = erc20d.claimers.get(id=data["to"]) new_claimedFrom = int(claimFrom.claimedAmount) - int( data.get("value")) new_claimedTo = int(claimTo.claimedAmount) + int(data.get("value")) claimFrom.claimedAmount = str(new_claimedFrom) claimFrom.claimedAmount = str(new_claimedTo) commit.save() erc20d.save() except ERC20D.DoesNotExist: self.logger.warning("ERC20D with address {} does not exist".format( data["contractAddress"])) except Claim.DoesNotExist: claimer = Claim() claimer.lender = data["to"] claimer.claimed_amount = data["value"] erc20d.claimers.append(claimer) commit.save() erc20d.save()
def add_claim(claimant_information, employee_record): with contextlib.closing(make_session()) as session: claim = Claim() claim.employer_id = employee_record.get('employer_id', None) claim.claimant_information = json_encode(claimant_information) claim.employee_record = json_encode(employee_record) session.add(claim) session.commit() return claim.claim_id
def post(self, registry): viewer = self.registry_view_authorized(registry) if not viewer or viewer == 'anonymous_user': return self.redirect_to('registry-verify', registry_name=registry.registry_name) for id, num_claimed in self.request.POST.iteritems(): try: parsed_id = int(id) parsed_num_claimed = int(num_claimed) except ValueError: continue entry = RegistryEntry.get_by_id(parsed_id, parent=registry.key) if entry and entry.num_claimed_by(viewer) != parsed_num_claimed: try: claim = next(c for c in entry.claims if c.viewer == viewer) claim.num = parsed_num_claimed except StopIteration: entry.claims.append( Claim(viewer=viewer, num=parsed_num_claimed)) entry.put() return self.redirect_to('registry-view', registry_name=registry.registry_name)