Skip to content

Commit

Permalink
Merge branch 'develop' into feature/add_type_repository
Browse files Browse the repository at this point in the history
  • Loading branch information
mldzs committed Mar 29, 2021
2 parents 679a907 + 297a13f commit ae52b3f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
27 changes: 15 additions & 12 deletions bothub/api/v2/repository/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,35 @@
class RepositoriesFilter(filters.FilterSet):
class Meta:
model = Repository
fields = ["name", "categories", "org_id", "nickname"]
fields = ["name", "categories", "owner_id", "nickname"]

language = filters.CharFilter(
field_name="language", method="filter_language", help_text=_("Language")
)
org_id = filters.CharFilter(
method="filter_org_id", help_text=_("Repository Owner Id")
owner_id = filters.CharFilter(
method="filter_owner_id", help_text=_("Repository Owner Id")
)
nickname = filters.CharFilter(
method="filter_nickname", help_text=_("Repository Owner Nickname")
)

def __filter_by_owner(self, queryset, owner):
if owner.is_organization:
auth_org = OrganizationAuthorization.objects.filter(
organization=owner, user=self.request.user
).first()
if auth_org.can_read:
return queryset.filter(owner=owner).distinct()
return queryset.filter(owner=owner, is_private=False).distinct()
try:
if owner.is_organization:
auth_org = OrganizationAuthorization.objects.filter(
organization=owner, user=self.request.user
).first()
if auth_org.can_read:
return queryset.filter(owner=owner).distinct()
return queryset.filter(owner=owner, is_private=False).distinct()
except TypeError:
return queryset.none()

def filter_language(self, queryset, name, value):
return queryset.supported_language(value)

def filter_org_id(self, queryset, name, value):
owner = get_object_or_404(RepositoryOwner, org_id=value)
def filter_owner_id(self, queryset, name, value):
owner = get_object_or_404(RepositoryOwner, pk=value)
return self.__filter_by_owner(queryset, owner)

def filter_nickname(self, queryset, name, value):
Expand Down
2 changes: 1 addition & 1 deletion bothub/api/v2/repository/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ def get_queryset(self, *args, **kwargs):
try:
if not self.request.query_params.get(
"nickname", None
) and not self.request.query_params.get("org_id", None):
) and not self.request.query_params.get("owner_id", None):
return self.queryset.filter(owner=self.request.user).distinct()
return super().get_queryset()
except TypeError:
Expand Down

0 comments on commit ae52b3f

Please sign in to comment.