Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 63 additions & 63 deletions app/ebay/api/v1/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,72 +64,72 @@ def post(self, request):
owner_id = None if request.user.is_anonymous else request.user.pk

# date_from = datetime.datetime.now() - datetime.timedelta(days=2)
search = Search.objects.filter(
# search = Search.objects.filter(
# keyword=request.data.get('query'),
# brand_types=request.data.get('brand_types', None),
# compatibility=request.data.get('compatibility', None),
# max_delivery_cost=request.data.get('maxDeliveryCost', False),
# # updated_at__gte=date_from
# ).first()
# call_ebay = False
# if not search or not SearchProduct.objects.filter(search=search).all():
call_ebay = True
search = Search.objects.create(
keyword=request.data.get('query'),
owner_id=owner_id,
brand_types=request.data.get('brand_types', None),
compatibility=request.data.get('compatibility', None),
max_delivery_cost=request.data.get('maxDeliveryCost', False),
# updated_at__gte=date_from
).first()
call_ebay = False
if not search or not SearchProduct.objects.filter(search=search).all():
call_ebay = True
search = Search.objects.create(
keyword=request.data.get('query'),
owner_id=owner_id,
brand_types=request.data.get('brand_types', None),
compatibility=request.data.get('compatibility', None),
max_delivery_cost=request.data.get('maxDeliveryCost', False),
)
search_index, created = SearchIndex.objects.get_or_create(
search=search,
keywords=request.data.get('query')
)
)
search_index, created = SearchIndex.objects.get_or_create(
search=search,
keywords=request.data.get('query')
)
try:
ebay = EbayService(auto_save=True)
except EbayServiceError as error:
raise ValidationError({"ebay": error.__str__()})
data = {
"search_id": search.pk
}

if search.conditions:
data.update({
'conditions': ast.literal_eval(search.conditions)
})
if request.data.get('query', None) and call_ebay:
try:
ebay = EbayService(auto_save=True)
conditions = ebay.search(
keywords=request.data.get('query'),
brand_types=request.data.get('brand_types', None),
compatibility=request.data.get('compatibility', None),
max_delivery_cost=request.data.get('maxDeliveryCost', False),
item_filter=item_filter,
sort_order=request.data.get('sort_order', None),
owner_id=owner_id,
search_id=search.pk,
zipcode=zipcode
)
if conditions:
data.update({
'conditions': conditions
})
search.conditions = str(conditions)
search.save()
except EbayServiceError as error:
raise ValidationError({"ebay": error.__str__()})
data = {
"search_id": search.pk
}

if search.conditions:
data.update({
'conditions': ast.literal_eval(search.conditions)
})
if request.data.get('query', None) and call_ebay:
try:
conditions = ebay.search(
keywords=request.data.get('query'),
brand_types=request.data.get('brand_types', None),
compatibility=request.data.get('compatibility', None),
max_delivery_cost=request.data.get('maxDeliveryCost', False),
item_filter=item_filter,
sort_order=request.data.get('sort_order', None),
owner_id=owner_id,
search_id=search.pk,
zipcode=zipcode
)
if conditions:
data.update({
'conditions': conditions
})
search.conditions = str(conditions)
search.save()
except EbayServiceError as error:
raise ValidationError({"query": error.__str__()})
try:
parse_partsgeek.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"partsgeek": "Something went wrong during parsing PartsGeek"})
try:
parse_carid.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"carid": "Something went wrong during parsing CarId"})
try:
parse_car_parts.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"parse_car_parts": "Something went wrong during parsing CarParts"})
return Response(data=data, status=status.HTTP_201_CREATED)
else:
return Response(data={"search_id": search.pk}, status=status.HTTP_201_CREATED)
raise ValidationError({"query": error.__str__()})
try:
parse_partsgeek.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"partsgeek": "Something went wrong during parsing PartsGeek"})
try:
parse_carid.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"carid": "Something went wrong during parsing CarId"})
try:
parse_car_parts.apply_async((request.data.get('query'), search.pk), countdown=0.00168)
except:
raise ValidationError({"parse_car_parts": "Something went wrong during parsing CarParts"})
return Response(data=data, status=status.HTTP_201_CREATED)
# else:
# return Response(data={"search_id": search.pk}, status=status.HTTP_201_CREATED)
18 changes: 18 additions & 0 deletions app/ebay/migrations/0028_auto_20220324_1029.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.1.4 on 2022-03-24 10:29

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('ebay', '0027_auto_20210701_1231'),
]

operations = [
migrations.AlterField(
model_name='searchindex',
name='keywords',
field=models.CharField(help_text='Max. length 255 characters.', max_length=255, verbose_name='Search index keyword'),
),
]
1 change: 0 additions & 1 deletion app/ebay/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ class SearchIndex(CoreModel):
vendors = models.ManyToManyField(Vendor, blank=True)
top_product = models.ManyToManyField(Product, blank=True)
keywords = models.CharField(
unique=True,
max_length=255,
verbose_name=_("Search index keyword"),
help_text=_("Max. length 255 characters."),
Expand Down