def _get_project_perf_profile(self) -> ProjectPerfProfile: perf_profile = ProjectPerfProfile.get_or_none( ProjectPerfProfile.profile_id == self._profile_id) if perf_profile is None: raise ValueError( "ProjectPerfProfile with profile_id {} was not found".format( self._profile_id)) return perf_profile
def delete_perf_profile(project_id: str, profile_id: str): """ Route for deleting a specific perf profile for a given project. Raises an HTTPNotFoundError if the project or perf profile are not found in the database. :param project_id: the id of the project to delete the perf profile for :param profile_id: the id of the perf profile to delete :return: a tuple containing (json response, http status code) """ _LOGGER.info("deleting perf profile for project {} with id {}".format( project_id, profile_id)) get_project_by_id(project_id) # validate id # search for perf profile and verify that project_id matches perf_profile = ProjectPerfProfile.get_or_none( ProjectPerfProfile.profile_id == profile_id, ProjectPerfProfile.project_id == project_id, ) if perf_profile is None: _LOGGER.error( "could not find perf profile with profile_id {} and project_id {}". format(profile_id, project_id)) raise HTTPNotFoundError( "could not find perf profile with profile_id {} and project_id {}". format(profile_id, project_id)) perf_profile.delete_instance() resp_del = data_dump_and_validation( ResponseProjectProfileDeletedSchema(), { "success": True, "project_id": project_id, "profile_id": profile_id }, ) _LOGGER.info( "deleted perf profile with profile_id {} and project_id: {}".format( profile_id, project_id)) return jsonify(resp_del), HTTPStatus.OK.value
def get_profiles_by_id( profile_perf_id: Union[None, str], profile_loss_id: Union[None, str] ) -> Tuple[ProjectPerfProfile, ProjectLossProfile]: """ Get a performance and loss profile by their ids. If not found will return None instead of raising not found. :param profile_perf_id: id of the performance profile to get :param profile_loss_id: id of the loss profile to get :return: tuple containing (performance profile, loss profile) """ profile_perf = (ProjectPerfProfile.get_or_none( ProjectPerfProfile.profile_id == profile_perf_id) if profile_perf_id else None) profile_loss = (ProjectLossProfile.get_or_none( ProjectLossProfile.profile_id == profile_loss_id) if profile_loss_id else None) return profile_perf, profile_loss