Пример #1
0
def get_track_by_id(session,
                    track_id,
                    track_point_limit=None,
                    track_point_offset=None):
    """
    Gets a specific track
    """

    tracking_data = {}
    if track_point_limit:
        tracking_data['track_point_limit'] = track_point_limit
    if track_point_offset:
        tracking_data['track_point_offset'] = track_point_offset

    # GET /api/projects/0.1/tracks/{track_id}/

    response = make_get_request(session,
                                'tracks/{}'.format(track_id),
                                params_data=tracking_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise TrackNotFoundException(message=json_data['message'],
                                     error_code=json_data['error_code'])
Пример #2
0
def get_milestones(session,
                   project_ids=[],
                   milestone_ids=[],
                   user_details=None,
                   limit=10,
                   offset=0):
    """
    Get the list of milestones
    """
    get_milestones_data = {}
    if milestone_ids:
        get_milestones_data['milestones[]'] = milestone_ids
    if project_ids:
        get_milestones_data['projects[]'] = project_ids
    get_milestones_data['limit'] = limit
    get_milestones_data['offset'] = offset

    # Add projections if they exist
    if user_details:
        get_milestones_data.update(user_details)

    # GET /api/projects/0.1/milestones/

    response = make_get_request(session,
                                'milestones',
                                params_data=get_milestones_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise MilestonesNotFoundException(message=json_data['message'],
                                          error_code=json_data['error_code'])
Пример #3
0
def search_projects(session,
                    query,
                    project_types,
                    limit,
                    offset,
                    active_only=None):
    """
    Search for all projects
    """
    search_data = {
        'query': query,
        'project_types': project_types,
        'limit': limit,
        'offset': offset,
    }
    # GET /api/projects/0.1/projects/all/
    # GET /api/projects/0.1/projects/active/
    endpoint = 'projects/{}'.format('active' if active_only else 'all')
    response = make_get_request(session, endpoint, params_data=search_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise ProjectsNotFoundException(message=json_data['message'],
                                        error_code=json_data['error_code'])
Пример #4
0
def get_bids(session,
             project_ids=[],
             bid_ids=[],
             user_ids=[],
             awarded_statuses=[],
             project_details=True,
             offset=0,
             from_time=0):
    """
    Get the list of bids
    """
    get_bids_data = {}
    if bid_ids:
        get_bids_data['bids[]'] = bid_ids
    if project_ids:
        get_bids_data['projects[]'] = project_ids
    if user_ids:
        get_bids_data['bidders[]'] = user_ids
    if awarded_statuses:
        get_bids_data['award_statuses[]'] = awarded_statuses
    if project_details:
        get_bids_data['project_details'] = project_details
    get_bids_data['offset'] = offset
    get_bids_data['from_time'] = from_time
    # GET /api/projects/0.1/bids/
    response = make_get_request(session, 'bids', params_data=get_bids_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise BidsNotFoundException(message=json_data['message'],
                                    error_code=json_data['error_code'])
Пример #5
0
def search_projects(session,
                    query,
                    search_filter=None,
                    project_details=None,
                    user_details=None,
                    limit=10,
                    offset=0,
                    active_only=None):
    """
    Search for all projects
    """
    search_data = {
        'query': query,
        'limit': limit,
        'offset': offset,
    }
    if search_filter:
        search_data.update(search_filter)
    if project_details:
        search_data.update(project_details)
    if user_details:
        search_data.update(user_details)

    # GET /api/projects/0.1/projects/all/
    # GET /api/projects/0.1/projects/active/
    endpoint = 'projects/{}'.format('active' if active_only else 'all')
    response = make_get_request(session, endpoint, params_data=search_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise ProjectsNotFoundException(message=json_data['message'],
                                        error_code=json_data['error_code'],
                                        request_id=json_data['request_id'])
Пример #6
0
def get_projects(session, query):
    """
    Get one or more projects
    """
    # GET /api/projects/0.1/projects
    response = make_get_request(session, 'projects', params_data=query)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise ProjectsNotFoundException(message=json_data['message'],
                                        error_code=json_data['error_code'])
Пример #7
0
def get_milestone_by_id(session, milestone_id, user_details=None):
    """
    Get a specific milestone
    """
    # GET /api/projects/0.1/milestones/{milestone_id}/
    endpoint = 'milestones/{}'.format(milestone_id)

    response = make_get_request(session, endpoint, params_data=user_details)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise MilestonesNotFoundException(message=json_data['message'],
                                          error_code=json_data['error_code'])
Пример #8
0
def get_reviews(session, project_id):
    """
    Get a list of reviews
    """
    get_reviews_data = {'projects[]': project_id}

    # GET /api/projects/0.1/reviews/
    response = make_get_request(session,
                                'reviews',
                                params_data=get_reviews_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise ReviewNotFoundException(message=json_data['message'],
                                      error_code=json_data['error_code'])
Пример #9
0
def get_skills(session, **kwargs):
    """
    Get a list of jobs
    """

    keys = ['jobs[]', 'seo_details', 'lang']

    get_jobs_data = {k: v for k, v in kwargs.items() if k in keys}

    # GET /api/projects/0.1/jobs/
    response = make_get_request(session, 'jobs', params_data=get_jobs_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise JobsNotFoundException(message=json_data['message'],
                                    error_code=json_data['error_code'])
Пример #10
0
def get_jobs(session, job_ids, seo_details, lang):
    """
    Get a list of jobs
    """
    get_jobs_data = {
        'jobs[]': job_ids,
        'seo_details': seo_details,
        'lang': lang,
    }
    # GET /api/projects/0.1/jobs/
    response = make_get_request(session, 'jobs', params_data=get_jobs_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise JobsNotFoundException(message=json_data['message'],
                                    error_code=json_data['error_code'])
Пример #11
0
def get_bids(session, project_ids=[], bid_ids=[], limit=10, offset=0):
    """
    Get the list of bids
    """
    get_bids_data = {}
    if bid_ids:
        get_bids_data['bids[]'] = bid_ids
    if project_ids:
        get_bids_data['projects[]'] = project_ids
    get_bids_data['limit'] = limit
    get_bids_data['offset'] = offset
    # GET /api/projects/0.1/bids/
    response = make_get_request(session, 'bids', params_data=get_bids_data)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise BidsNotFoundException(message=json_data['message'],
                                    error_code=json_data['error_code'])
Пример #12
0
def get_project_by_id(session,
                      project_id,
                      project_details=None,
                      user_details=None):
    """
    Get a single project by ID
    """
    # GET /api/projects/0.1/projects/<int:project_id>
    query = {}
    if project_details:
        query.update(project_details)
    if user_details:
        query.update(user_details)
    response = make_get_request(session,
                                'projects/{}'.format(project_id),
                                params_data=query)
    json_data = response.json()
    if response.status_code == 200:
        return json_data['result']
    else:
        raise ProjectsNotFoundException(message=json_data['message'],
                                        error_code=json_data['error_code'])