Browse Source

chore(hybrid-cloud): Adds organization owner member RPC method (#58835)

Gabe Villalobos 1 year ago
parent
commit
a02874cc7e

+ 6 - 0
src/sentry/services/hybrid_cloud/organization/impl.py

@@ -564,6 +564,12 @@ class DatabaseBackedOrganizationService(OrganizationService):
     ) -> None:
         signal.signal.send_robust(None, organization_id=organization_id, **args)
 
+    def get_organization_owner_members(self, organization_id: int) -> List[RpcOrganizationMember]:
+        org: Organization = Organization.objects.get(id=organization_id)
+        owner_members = org.get_members_with_org_roles(roles=[roles.get_top_dog().id])
+
+        return list(map(serialize_member, owner_members))
+
 
 class OutboxBackedOrganizationSignalService(OrganizationSignalService):
     def schedule_signal(

+ 6 - 1
src/sentry/services/hybrid_cloud/organization/service.py

@@ -4,7 +4,7 @@
 # defined, because we want to reflect on type annotations and avoid forward references.
 import abc
 from abc import abstractmethod
-from typing import Any, Iterable, Mapping, Optional, Union
+from typing import Any, Iterable, List, Mapping, Optional, Union
 
 from django.dispatch import Signal
 
@@ -321,6 +321,11 @@ class OrganizationService(RpcService):
             signal=signal, organization_id=organization_id, args=args
         )
 
+    @regional_rpc_method(resolve=ByOrganizationId())
+    @abstractmethod
+    def get_organization_owner_members(self, organization_id: int) -> List[RpcOrganizationMember]:
+        pass
+
 
 class OrganizationSignalService(abc.ABC):
     @abc.abstractmethod