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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])