def get(self, request, organization, integration_id):
        org_integration = self.get_organization_integration(
            organization, integration_id)

        return self.respond(
            serialize(org_integration, request.user,
                      OrganizationIntegrationSerializer(params=request.GET)))
Beispiel #2
0
    def put(self, request, organization, integration_id):
        try:
            integration = Integration.objects.get(organizations=organization, id=integration_id)
        except Integration.DoesNotExist:
            return self.respond(status=404)

        if integration.provider != "custom_scm":
            return self.respond({"detail": "Invalid action for this integration"}, status=400)

        update_kwargs = {}

        serializer = IntegrationSerializer(data=request.data, partial=True)

        if serializer.is_valid():
            data = serializer.validated_data
            if data.get("name"):
                update_kwargs["name"] = data["name"]
            if data.get("domain") is not None:
                metadata = integration.metadata
                metadata["domain_name"] = data["domain"]
                update_kwargs["metadata"] = metadata

            integration.update(**update_kwargs)
            integration.save()

            org_integration = self.get_organization_integration(organization, integration_id)

            return self.respond(
                serialize(
                    org_integration,
                    request.user,
                    OrganizationIntegrationSerializer(params=request.GET),
                )
            )
        return self.respond(serializer.errors, status=400)