From aaacf0fa1ff7e16d3fb5654c83a720c053474869 Mon Sep 17 00:00:00 2001 From: Daniel Yohan Date: Thu, 29 Apr 2021 15:21:51 -0300 Subject: [PATCH] Added endpoint grpc connect get all projects in organization --- bothub/api/v2/grpc/__init__.py | 0 bothub/api/v2/grpc/urls.py | 11 ----------- bothub/api/v2/grpc/views.py | 19 ------------------- bothub/api/v2/repository/views.py | 23 +++++++++++++++++++++++ bothub/api/v2/urls.py | 2 -- 5 files changed, 23 insertions(+), 32 deletions(-) delete mode 100644 bothub/api/v2/grpc/__init__.py delete mode 100644 bothub/api/v2/grpc/urls.py delete mode 100644 bothub/api/v2/grpc/views.py diff --git a/bothub/api/v2/grpc/__init__.py b/bothub/api/v2/grpc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/bothub/api/v2/grpc/urls.py b/bothub/api/v2/grpc/urls.py deleted file mode 100644 index 4dcb6b8b..00000000 --- a/bothub/api/v2/grpc/urls.py +++ /dev/null @@ -1,11 +0,0 @@ -from django.urls import path - -from .views import GRPCListRepositoriesConnectView - -urlpatterns = [ - path( - "repositories//", - GRPCListRepositoriesConnectView.as_view(), - name="list-repositories-connect", - ) -] diff --git a/bothub/api/v2/grpc/views.py b/bothub/api/v2/grpc/views.py deleted file mode 100644 index 005ae321..00000000 --- a/bothub/api/v2/grpc/views.py +++ /dev/null @@ -1,19 +0,0 @@ -from rest_framework.response import Response -from rest_framework.views import APIView - -from bothub.api.grpc.connect_grpc_client import ConnectGRPCClient -from bothub.api.v2.repository.serializers import RepositorySerializer -from bothub.common.models import Repository - - -class GRPCListRepositoriesConnectView(APIView): - def get(self, request, project_uuid): - grpc_client = ConnectGRPCClient() - authorizations = grpc_client.list_authorizations(project_uuid=project_uuid) - - repositories = Repository.objects.filter( - authorizations__uuid__in=authorizations - ) - - serialized_data = RepositorySerializer(repositories, many=True) - return Response(serialized_data.data) diff --git a/bothub/api/v2/repository/views.py b/bothub/api/v2/repository/views.py index 7619519b..9b6affef 100644 --- a/bothub/api/v2/repository/views.py +++ b/bothub/api/v2/repository/views.py @@ -95,6 +95,7 @@ TrainSerializer, WordDistributionSerializer, ) +from ...grpc.connect_grpc_client import ConnectGRPCClient class NewRepositoryViewSet( @@ -556,6 +557,28 @@ class RepositoriesViewSet(mixins.ListModelMixin, GenericViewSet): filter_backends = [DjangoFilterBackend, SearchFilter] search_fields = ["$name", "^name", "=name"] + @action( + detail=True, + methods=["GET"], + url_name="list-project-organizatiton", + # lookup_fields=[], + ) + def list_project_organizatiton(self, request, **kwargs): + project_uuid = request.query_params.get("project_uuid") + + if not project_uuid: + raise ValidationError(_("Need to pass 'project_uuid' in query params")) + + grpc_client = ConnectGRPCClient() + authorizations = grpc_client.list_authorizations(project_uuid=project_uuid) + + repositories = Repository.objects.filter( + authorizations__uuid__in=authorizations + ) + + serialized_data = RepositorySerializer(repositories, many=True) + return Response(serialized_data.data) + @method_decorator( name="list", diff --git a/bothub/api/v2/urls.py b/bothub/api/v2/urls.py index be73ad46..59d28b76 100644 --- a/bothub/api/v2/urls.py +++ b/bothub/api/v2/urls.py @@ -2,7 +2,6 @@ from . import views from .routers import router -from .grpc import urls as grpc_urls urlpatterns = [ @@ -17,5 +16,4 @@ name="check-user-legacy", ), path("", include(router.urls)), - path("grpc/", include(grpc_urls)), ]