Beispiel #1
0
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)
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
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"])
Beispiel #14
0
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
Beispiel #18
0
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
Beispiel #22
0
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)
Beispiel #23
0
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)
Beispiel #24
0
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)
Beispiel #25
0
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
Beispiel #28
0
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