def update_estimate(self, estimate_id, **kwargs): url = '/estimates/{0}'.format(estimate_id) return from_dict(data_class=Estimate, data=self._patch(url, data=kwargs))
def billable_rates(self, user_id, page=1, per_page=100): url = '/users/{0}/billable_rates'.format(user_id) url = '{0}?page={1}'.format(url, page) url = '{0}&per_page={1}'.format(url, per_page) return from_dict(data_class=BillableRates, data=self._get(url))
def create_billable_rate(self, user_id, amount, **kwargs): url = '/users/{0}/billable_rates'.format(user_id) kwargs.update({'amount': amount}) return from_dict(data_class=BillableRate, data=self._post(url, data=kwargs))
def roles(self, page=1, per_page=100): url = '/roles?page={0}'.format(page) url = '{0}&per_page={1}'.format(url, per_page) return from_dict(data_class=Roles, data=self._get(url))
def create_role(self, name, **kwargs): url = '/roles' kwargs.update({'name': name}) return from_dict(data_class=Role, data=self._post(url, data=kwargs))
def get_task_assignment(self, project_id, task_assignment_id): return from_dict(data_class=TaskAssignment, data=self._get( '/projects/{0}/task_assignments/{1}'.format( project_id, task_assignment_id)))
def get_project(self, project_id): return from_dict(data_class=Project, data=self._get('/projects/{0}'.format(project_id)))
def create_expense_category(self, name, **kwargs): url = '/expense_categories' kwargs.update({'name': name}) return from_dict(data_class=ExpenseCategory, data=self._post(url, data=kwargs))
def update_expense_category(self, expense_category_id, **kwargs): url = '/expense_categories/{0}'.format(expense_category_id) return from_dict(data_class=ExpenseCategory, data=self._patch(url, data=kwargs))
def get_expense(self, expense_id): return from_dict(data_class=Expense, data=self._get('/expenses/{0}'.format(expense_id)))
def get_expense_category(self, expense_category_id): return from_dict( data_class=ExpenseCategory, data=self._get( '/expense_categories/{0}'.format(expense_category_id)))
def update_estimate_item_category(self, estimate_item_category_id, name): url = '/estimate_item_categories/{0}'.format(estimate_item_category_id) return from_dict(data_class=EstimateItemCategory, data=self._patch(url, data={'name': name}))
def create_estimate_item_category(self, name): url = '/estimate_item_categories' return from_dict(data_class=EstimateItemCategory, data=self._post(url, data={'name': name}))
def get_estimate_item_category(self, estimate_item_category_id): url = '/estimate_item_categories/{0}'.format(estimate_item_category_id) return from_dict(data_class=EstimateItemCategory, data=self._get(url))
def get_user_assignment(self, project_id, user_assignment_id): return from_dict(data_class=UserAssignment, data=self._get( '/projects/{0}/user_assignments/{1}'.format( project_id, user_assignment_id)))
def get_task(self, task_id): return from_dict(data_class=Task, data=self._get('/tasks/{0}'.format(task_id)))
def create_user_assignment(self, project_id, user_id, **kwargs): url = '/projects/{0}/user_assignments'.format(project_id) kwargs.update({'user_id': user_id}) return from_dict(data_class=UserAssignment, data=self._post(url, data=kwargs))
def create_task(self, name, **kwargs): url = '/tasks' kwargs.update({'name': name}) return from_dict(data_class=Task, data=self._post(url, data=kwargs))
def update_task_assignment(self, project_id, task_assignment_id, **kwargs): url = '/projects/{0}/task_assignments/{1}'.format( project_id, task_assignment_id) return from_dict(data_class=TaskAssignment, data=self._patch(url, data=kwargs))
def update_task(self, task_id, **kwargs): url = '/tasks/{0}'.format(task_id) return from_dict(data_class=Task, data=self._patch(url, data=kwargs))
def update_project(self, project_id, **kwargs): url = '/projects/{0}'.format(project_id) return from_dict(data_class=Project, data=self._patch(url, data=kwargs))
def get_time_entry(self, time_entry_id): return from_dict(data_class=TimeEntry, data=self._get( '/time_entries/{0}'.format(time_entry_id)))
def get_role(self, role_id): return from_dict(data_class=Role, data=self._get('/roles/{0}'.format(role_id)))
def update_time_entry(self, time_entry_id, **kwargs): url = '/time_entries/{0}'.format(time_entry_id) return from_dict(data_class=TimeEntry, data=self._patch(url, data=kwargs))
def update_role(self, role_id, name, **kwargs): url = '/roles/{0}'.format(role_id) kwargs.update({'name': name}) return from_dict(data_class=Role, data=self._patch(url, data=kwargs))
def restart_a_stopped_time_entry(self, time_entry_id): return from_dict( data_class=TimeEntry, data=self._patch( '/time_entries/{0}/restart'.format(time_entry_id)))
def get_billable_rate(self, user_id, billable_rate_id): url = '/users/{0}/billable_rates/{1}'.format(user_id, billable_rate_id) return from_dict(data_class=BillableRate, data=self._get(url))
def stop_a_running_time_entry(self, time_entry_id): return from_dict(data_class=TimeEntry, data=self._patch( '/time_entries/{0}/stop'.format(time_entry_id)))
def user_cost_rates(self, user_id, page=1, per_page=100): url = '/users/{0}/cost_rates'.format(user_id) url = '{0}?page={1}'.format(url, page) url = '{0}&per_page={1}'.format(url, per_page) return from_dict(data_class=UserCostRates, data=self._get(url))
def create_estimate(self, client_id, **kwargs): url = '/estimates' kwargs.update({'client_id': client_id}) return from_dict(data_class=Estimate, data=self._post(url, data=kwargs))