def as_dto(self): """ Returns a dto for an organisation """ organisation_dto = OrganisationDTO() organisation_dto.organisation_id = self.id organisation_dto.name = self.name organisation_dto.logo = self.logo organisation_dto.url = self.url organisation_dto.managers = [] for manager in self.managers: org_manager_dto = OrganisationManagerDTO() org_manager_dto.username = manager.username org_manager_dto.picture_url = manager.picture_url organisation_dto.managers.append(org_manager_dto) return organisation_dto
def assert_validate_users(organisation_dto: OrganisationDTO): """ Validates that the users exist""" if organisation_dto.managers and len(organisation_dto.managers) == 0: raise OrganisationServiceError("Must have at least one admin") managers = [] for user in organisation_dto.managers: try: admin = UserService.get_user_by_username(user) except NotFound: raise NotFound(f"User {user} does not exist") managers.append(admin.username) organisation_dto.managers = managers
def as_dto(self, omit_managers=False): """ Returns a dto for an organisation """ organisation_dto = OrganisationDTO() organisation_dto.organisation_id = self.id organisation_dto.name = self.name organisation_dto.logo = self.logo organisation_dto.description = self.description organisation_dto.url = self.url organisation_dto.managers = [] organisation_dto.type = OrganisationType(self.type).name if omit_managers: return organisation_dto for manager in self.managers: org_manager_dto = OrganisationManagerDTO() org_manager_dto.username = manager.username org_manager_dto.picture_url = manager.picture_url organisation_dto.managers.append(org_manager_dto) return organisation_dto