def update_organization(inteligence_organization: int, organization_name: str, user_email: str): ai_client = IntelligenceRESTClient() ai_client.update_organization(organization_id=inteligence_organization, organization_name=organization_name, user_email=user_email) return True
def create_organization(organization_name: str, user_email: str): ai_client = IntelligenceRESTClient() organization = ai_client.create_organization( organization_name=organization_name, user_email=user_email, ) return {"id": organization.id}
def delete_organization(inteligence_organization: int, user_email): ai_client = IntelligenceRESTClient() ai_client.delete_organization( organization_id=inteligence_organization, user_email=user_email, ) return True
def org_authorizations(sender, instance, created, **kwargs): if instance.role is not OrganizationLevelRole.NOTHING.value: if created: organization_permission_mapper = { OrganizationRole.ADMIN.value: ProjectRole.MODERATOR.value, OrganizationRole.CONTRIBUTOR.value: ProjectRole.CONTRIBUTOR.value, OrganizationRole.SUPPORT.value: ProjectRole.SUPPORT.value, } for project in instance.organization.project.all(): project_perm = project.project_authorizations.filter( user=instance.user) project_role = organization_permission_mapper.get( instance.role, ProjectRole.NOT_SETTED.value) if not project_perm.exists(): project.project_authorizations.create( user=instance.user, role=project_role, organization_authorization=instance, ) else: project_perm = project_perm.first() if instance.role > project_perm.role: project_perm.role = project_role project_perm.save(update_fields=["role"]) if not settings.TESTING: ai_client = IntelligenceRESTClient() ai_client.update_user_permission_organization( organization_id=instance.organization.inteligence_organization, user_email=instance.user.email, permission=instance.role)
def perform_destroy(self, instance): intelligence_organization = instance.inteligence_organization instance.delete() ai_client = IntelligenceRESTClient() ai_client.delete_organization( organization_id=intelligence_organization, user_email=self.request.user.email)
def update_user_permission_organization(inteligence_organization: int, user_email: str, permission: int): ai_client = IntelligenceRESTClient() ai_client.update_user_permission_organization( organization_id=inteligence_organization, user_email=user_email, permission=permission, ) return True
def update_user_language(user_email: str, language: str): utils.get_grpc_types().get("flow").update_language( user_email=user_email, language=language, ) IntelligenceRESTClient().update_language( user_email=user_email, language=language, ) return True
def migrate_organization(user_email: str): user = User.objects.get(email=user_email) ai_client = IntelligenceRESTClient() organizations = ai_client.list_organizations(user_email=user_email) for organization in organizations: org, created = Organization.objects.get_or_create( inteligence_organization=organization.get("id"), defaults={ "name": organization.get("name"), "description": "" }, ) role = ai_client.get_user_organization_permission_role( user_email=user_email, organization_id=organization.get("id")) org.authorizations.create(user=user, role=role)
def sync_repositories_statistics(): flow_instance = utils.get_grpc_types().get("flow") ai_client = IntelligenceRESTClient() for project in Project.objects.all(): classifiers_project = flow_instance.get_classifiers( project_uuid=str(project.flow_organization), classifier_type="bothub", is_active=True, ) try: intelligence_count = int( ai_client.get_count_intelligences_project( classifiers=classifiers_project, ).get( "repositories_count")) except Exception: intelligence_count = 0 project.intelligence_count = intelligence_count project.save(update_fields=["inteligence_count"])
def search_project(organization_id: int, project_uuid: str, text: str): flow_result = (utils.get_grpc_types().get("flow").get_project_flows( project_uuid=project_uuid, flow_name=text, )) inteligence_result = ( IntelligenceRESTClient().get_organization_intelligences( intelligence_name=text, organization_id=organization_id)) return { "flow": flow_result, "inteligence": inteligence_result, }
def create(self, validated_data): organization = {"id": 0} if not settings.TESTING: ai_client = IntelligenceRESTClient() organization = ai_client.create_organization( user_email=self.context["request"].user.email, organization_name=validated_data.get("name")) validated_data.update( {"inteligence_organization": organization.get("id")}) # Added for the manager to set the date when the next invoice will be generated validated_data.update({ "organization_billing__cycle": BillingPlan._meta.get_field("cycle").default }) instance = super(OrganizationSeralizer, self).create(validated_data) instance.authorizations.create(user=self.context["request"].user, role=OrganizationRole.ADMIN.value) return instance