new company search endpoint, but searchfilter not working

This commit is contained in:
Sam
2021-03-17 11:00:37 +00:00
parent 6a3bd7acea
commit 0c70763345
3 changed files with 58 additions and 3 deletions

View File

@@ -44,6 +44,7 @@ urlpatterns = [
path('api/v1/my_user/', core_views.my_user, name='my-user'),
path('api/v1/my_company/', company_views.my_company, name='my-company'),
path('api/v1/companies/sample/', company_views.random_company_sample , name='company-sample'),
path('api/v1/search/companies/', company_views.CompanySearchViewSet.as_view({'get': 'list'}) , name='company-search'),
path('api/v1/purchase_email/', product_views.purchase_email, name='purchase-email'),
path('api/v1/products/all_categories/', product_views.all_categories, name='all-categories'),
path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),

View File

@@ -551,3 +551,51 @@ class AdminCompanyViewSetTest(APITestCase):
# assertions
self.assertEquals(response.status_code, 204)
class CompanySearchViewSet(APITestCase):
def setUp(self):
"""Tests setup
"""
self.endpoint = '/api/v1/search/companies/'
self.factory = CompanyFactory
self.model = Company
# create user
self.email = f"user@mail.com"
self.password = ''.join(random.choices(string.ascii_uppercase, k = 10))
self.user = CustomUserFactory(email=self.email, is_active=True)
self.user.set_password(self.password)
self.user.save()
def test_anon_user_can_search_company_name(self):
company_name = 'Test company name'
# create instance
instance = self.factory(company_name=company_name)
# query
url = f"{self.endpoint}?search={company_name}"
response = self.client.get(url)
# assertions
self.assertEquals(response.status_code, 200)
payload = response.json()
print(payload)
self.assertEquals(len(payload), 1)
def test_anon_user_can_search_short_name(self):
short_name = 'Test company name'
# create instance
instance = self.factory(short_name=short_name)
# query
url = f"{self.endpoint}?search={short_name}"
response = self.client.get(url)
# assertions
self.assertEquals(response.status_code, 200)
payload = response.json()
print(payload)
self.assertEquals(len(payload), 1)

View File

@@ -24,14 +24,20 @@ from back_latienda.permissions import IsCreator, IsSiteAdmin
from utils import woocommerce
class CompanySearchViewSet(viewsets.ModelViewSet):
queryset = Company.objects.filter(is_validated=True).order_by('-created')
serializer_class = CompanySerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
filter_backends = (filters.SearchFilter, )
# search_fields = ['company_name__unaccent__icontains', 'short_name__unaccent__icontains']
search_fields = ['@company_name', '@short_name']
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.filter(is_validated=True).order_by('-created')
serializer_class = CompanySerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
filterset_class = CompanyTagFilter
filter_backends = [filters.SearchFilter]
search_fields = ['company_name__unaccent__icontains', 'short_name__unaccent__icontains']
def perform_create(self, serializer):
serializer.save(creator=self.request.user)