def sample_create_milestone_payment(): url = os.environ['FLN_URL'] id = os.environ['FLN_DEVELOPER_ID'] token = os.environ['FLN_DEVELOPER_TOKEN'] project_id = os.environ['PROJECT_ID'] bidder_id = os.environ['BIDDER_ID'] session = Session(id=id, token=token, url=url) milestone_data = { 'project_id': int(project_id), 'bidder_id': int(bidder_id), 'amount': 10, 'reason': MilestoneReason.PARTIAL_PAYMENT.value, 'description': 'This is a milestone', } try: m = create_milestone_payment(session, **milestone_data) except MilestoneNotCreatedException as e: print('Error message: %s' % e.message) print('Server response: %s' % e.error_code) return None else: return m
def create_milestone(): # get bid details bid_id = json.loads(request.data)['bid_id'] get_bid_data = { 'bid_ids': [ bid_id, ], } try: # TODO: Make this an app level attribute instead s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) response = get_bids(s, **get_bid_data) except BidsNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return jsonify(response) # create the milestone if (len(response['bids']) > 0): response = response['bids'][0] else: error = { 'status': 'error', 'message': 'No bid found.', } return jsonify(error) milestone_data = { "bidder_id": response["bidder_id"], "amount": response["amount"], "project_id": response["project_id"], "reason": MilestoneReason.PARTIAL_PAYMENT.value, "description": "Full payment upon delivery." } data = None try: s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) data = create_milestone_payment(s, **milestone_data) except MilestoneNotCreatedException as e: print(('Error message: %s' % e.message)) print(('Server response: %s' % e.error_code)) return jsonify(data) else: result = { 'result': { 'amount': data.amount, 'transaction_id': data.transaction_id } } return jsonify(result)
def test_create_milestone_payment(self): milestone_data = { 'project_id': 1, 'bidder_id': 2, 'amount': 10, 'reason': MilestoneReason.PARTIAL_PAYMENT, 'description': 'This is a milestone', } self.session.session.post = Mock() self.session.session.post.return_value = FakeMilestonePaymentCreatePostResponse() m = create_milestone_payment(self.session, **milestone_data) self.session.session.post.assert_called_once_with( 'https://fake-fln.com/api/projects/0.1/milestones/', json=milestone_data, verify=True) self.assertTrue(getattr(m, 'bidder_id')) self.assertTrue(getattr(m, 'description')) self.assertEquals(m.reason, MilestoneReason.PARTIAL_PAYMENT)