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 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 sample_get_projects(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) query = create_get_projects_object( project_ids=[ 201, 202, 203, ], project_details=create_get_projects_project_details_object( full_description=True, jobs=True, qualifications=True, ), user_details=create_get_projects_user_details_object( basic=True, profile_description=True, reputation=True, ), ) try: p = get_projects(session, query) except ProjectsNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return p
def sample_create_contest(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) contest_data = { 'title': 'Design a logo', 'description': 'I need a logo for my company', 'type': 'freemium', 'duration': 7, # Days 'job_ids': [ 1, 2, ], 'currency_id': 1, # USD 'prize': 100, } try: t = create_contest(session, **contest_data) except ContestNotCreatedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return t
def sample_get_users(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) query = create_get_users_object( user_ids=[ 110013, 221202, 231203, ], user_details=create_get_users_details_object( basic=True, profile_description=True, reputation=True, ), ) try: p = get_users(session, query) except UsersNotFoundException as e: print(('Error message: {}'.format(e.message))) print(('Server response: {}'.format(e.error_code))) return None else: return p
def sample_post_review(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) review = create_review_freelancer_object(project_id=201, employer_id=101, freelancer_id=102, on_budget=True, on_time=True, quality=5, communication=5, expertise=5, professionalism=5, hire_again=5, comment='Great work') try: r = post_review(session, review) except ReviewNotPostedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return r
def request_projects(query): session = Session(oauth_token=settings.FREELANCER_TOKEN) search_filter = create_search_projects_filter( sort_field='time_updated', or_search_query=True, from_time=functions.get_today_midnight(as_a_timestamp=True), ) result = [] offset = 0 limit = 500 try: while True: response = search_projects( session, query=query, active_only=True, limit=limit, offset=offset, search_filter=search_filter, ) result += response['projects'] offset += limit if offset > response['total_count']: break except ProjectsNotFoundException as e: logger.error('freelancer.get_projects {} {}'.format( e.error_code, e.args[0])) return [] else: return result
def sample_post_attachment(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) file1 = open('/path/to/text.txt', 'rb') file2 = open('/path/to/image.jpg', 'rb') file3 = open('/path/to/code.c', 'rb') thread_data = { 'thread_id': 401, 'attachments': [ create_attachment(file1, 'description.txt'), create_attachment(file2, 'screenshot.jpg'), create_attachment(file3, 'source.c'), ] } ret = None try: t = post_attachment(session, **thread_data) except MessageNotCreatedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) ret = None else: ret = t finally: file1.close() file2.close() file3.close() return ret
def sample_get_milestones(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) get_milestones_data = { 'project_ids': [ 101, 102, ], 'limit': 10, 'offset': 0, 'user_details': create_get_users_details_object(country=True, profile_description=True) } try: milestones = get_milestones(session, **get_milestones_data) except MilestonesNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return milestones
def sample_create_hireme_project(): oauth_token = os.environ.get('FLN_OAUTH_TOKEN') url = os.environ.get('FLN_URL') session = Session(oauth_token=oauth_token, url=url) project_data = { 'title': 'My new hireme project', 'description': 'description', 'currency': create_currency_object(id=1), 'budget': create_budget_object(minimum=10), 'jobs': [create_job_object(id=7)], 'hireme_initial_bid': create_bid_object( id=None, # No bid id yet bidder_id=2, # Freelancer we want to hire project_id=None, # This project retracted=None, amount=100, period=7, # Days description='Hello', project_owner_id=1) } try: p = create_hireme_project(session, **project_data) except ProjectNotCreatedException as e: print(('Error message: %s' % e.message)) print(('Error code: %s' % e.error_code)) return None else: return p
def sample_create_local_project(): oauth_token = os.environ.get('FLN_OAUTH_TOKEN') url = os.environ.get('FLN_URL') session = Session(oauth_token=oauth_token, url=url) project_data = { 'title': 'My new local project', 'description': 'description', 'currency': create_currency_object(id=1), 'budget': create_budget_object(minimum=10), 'jobs': [create_job_object(id=649)], # Must be a local job 'location': create_location_object(create_country_object('Australia'), 'Sydney', -33.875461, 151.201678) } try: p = create_local_project(session, **project_data) except ProjectNotCreatedException as e: print(('Error message: %s' % e.message)) print(('Error code: %s' % e.error_code)) return None else: return p
def sample_create_hourly_project(): oauth_token = os.environ.get('FLN_OAUTH_TOKEN') url = os.environ.get('FLN_URL') session = Session(oauth_token=oauth_token, url=url) project_data = { 'title': 'My new hourly project', 'description': 'description', 'currency': create_currency_object(id=1), 'budget': create_budget_object(minimum=10), 'jobs': [create_job_object(id=7)], 'hourly_project_info': create_hourly_project_info_object(40, 'WEEK', 'ONE_TO_FOUR_WEEKS') } try: p = create_hourly_project(session, **project_data) except ProjectNotCreatedException as e: print(('Error message: %s' % e.message)) print(('Error code: %s' % e.error_code)) return None else: return p
def fetch(category=None): """ Function fetch() returns latest job posts from freelance.com :param category: :return: list of dictionaries """ session = Session(oauth_token=env["FLN_OAUTH_TOKEN"])
def getproject(project_id): s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) query = create_get_projects_object(project_ids=[project_id]) data = None try: data = get_projects(s, query) except ProjectsNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return jsonify(data) return jsonify(data)
def sample_get_track(track_id): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) try: track = get_track_by_id(session, track_id) except TrackNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return track
def sample_get_user_by_id(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) try: p = get_user_by_id(session, 110013) except UserNotFoundException as e: print(('Error message: {}'.format(e.message))) print(('Server response: {}'.format(e.error_code))) return None else: return p
def sample_accept_project_bid(): oauth_token = os.environ.get('FLN_OAUTH_TOKEN') url = os.environ.get('FLN_URL') session = Session(oauth_token=oauth_token, url=url) bid_data = {'bid_id': 1} try: return accept_project_bid(session, **bid_data) except BidNotAcceptedException as e: print(('Error message: %s' % e.message)) print(('Error code: %s' % e.error_code)) return None
def sample_create_track(user_id, project_id, latitude, longitude): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) try: track = post_track(session, user_id, project_id, latitude, longitude) except TrackNotCreatedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return track
def sample_update_track(track_id, latitude, longitude, stop_tracking): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) try: track = update_track(session, track_id, latitude, longitude, stop_tracking) except TrackNotUpdatedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return track
def sample_get_specific_milestone(milestone_id): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) user_details = create_get_users_details_object(country=True, profile_description=True) try: milestone = get_milestone_by_id(session, milestone_id, user_details) except MilestonesNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return milestone
def sample_get_self(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) user_details = create_get_users_details_object(country=True, profile_description=True) try: result = get_self(session, user_details) except SelfNotRetrievedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return result
def getbids(project_id): get_bids_data = {'project_ids': [project_id]} data = None try: # TODO: Make this an app level attribute instead s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) data = get_bids(s, **get_bids_data) except BidsNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return jsonify(data) else: result = {'result': data} return jsonify(result)
def pay(transaction_id): milestone_data = { 'milestone_id': transaction_id, 'amount': json.loads(request.data)["amount"], } data = None try: s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) data = release_milestone_payment(s, **milestone_data) except MilestoneNotReleasedException as e: print(('Error message: %s' % e.message)) print(('Server response: %s' % e.error_code)) return jsonify(data) else: return jsonify(data)
def award_bid(bid_id): bid_data = { 'bid_id': bid_id, } data = None try: # TODO: Make this an app level attribute instead s = Session(oauth_token=h["Freelancer-OAuth-V1"], url=base_url) data = award_project_bid(s, **bid_data) except BidNotAwardedException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return jsonify(data) else: return jsonify(data)
def sample_get_portfolios(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) user_ids = [7344704] # 3112780 try: portfolios = get_portfolios(session, user_ids=user_ids) except PortfoliosNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server: response: {}'.format(e.error_code)) return None else: return portfolios
def sample_delete_user_jobs(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) user_jobs_data = {'job_ids': [1, 2, 3]} try: m = delete_user_jobs(session, **user_jobs_data) except UserJobsNotDeletedException as e: print(('Error message: %s' % e.message)) print(('Server response: %s' % e.error_code)) return None else: return m
def sample_cancel_milestone_payment(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) milestone_data = { 'milestone_id': 15295214, } try: m = cancel_milestone_payment(session, **milestone_data) except MilestoneNotCancelledException as e: print(('Error message: %s' % e.message)) print(('Server response: %s' % e.error_code)) return None else: return m
def sample_search_freelancers(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) user_details = create_get_users_details_object(country=True, profile_description=True) try: result = search_freelancers(session, username='******', user_details=user_details) except UsersNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server response: {}'.format(e.error_code)) return None else: return result
def sample_search_messages(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) thread_id = 80034553 query = "hello" try: messages = search_messages(session, thread_id, query) except MessagesNotFoundException as e: print('Error message: {}'.format(e.message)) print('Server: response: {}'.format(e.error_code)) return None else: return messages
def sample_delete_milestone_request(): url = os.environ.get('FLN_URL') oauth_token = os.environ.get('FLN_OAUTH_TOKEN') session = Session(oauth_token=oauth_token, url=url) milestone_request_data = { 'milestone_request_id': 1, } try: m = delete_milestone_request(session, **milestone_request_data) except MilestoneRequestNotDeletedException as e: print(('Error message: %s' % e.message)) print(('Server response: %s' % e.error_code)) return None else: return m