1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-19 21:09:37 +02:00

fix: update request data handling in AdventureImageViewSet and improve error handling in RecommendationsViewSet

This commit is contained in:
Sean Morley 2025-06-05 14:53:08 -04:00
parent 9d817a5ce9
commit ebee6f52e8
3 changed files with 17 additions and 16 deletions

View file

@ -108,6 +108,7 @@ class AdventureImageViewSet(viewsets.ModelViewSet):
# Modify request data to use the downloaded image instead of immich_id # Modify request data to use the downloaded image instead of immich_id
request_data = request.data.copy() request_data = request.data.copy()
request_data.pop('immich_id', None) # Remove immich_id request_data.pop('immich_id', None) # Remove immich_id
request_data['image'] = image_file # Add the image file
# Create the serializer with the modified data # Create the serializer with the modified data
serializer = self.get_serializer(data=request_data) serializer = self.get_serializer(data=request_data)

View file

@ -59,8 +59,8 @@ class RecommendationsViewSet(viewsets.ViewSet):
float(request.query_params.get('lat')), float(request.query_params.get('lat')),
float(request.query_params.get('lon')) float(request.query_params.get('lon'))
) )
except: except(ValueError, TypeError):
pass origin = None
for node in nodes: for node in nodes:
if node.get('type') not in ['node', 'way', 'relation']: if node.get('type') not in ['node', 'way', 'relation']:

View file

@ -46,7 +46,7 @@ class ReverseGeocodeViewSet(viewsets.ViewSet):
return Response({"error": "An internal error occurred while processing the request"}, status=500) return Response({"error": "An internal error occurred while processing the request"}, status=500)
@action(detail=False, methods=['post']) @action(detail=False, methods=['post'])
def mark_visited_region(self, _): def mark_visited_region(self, request):
# searches through all of the users adventures, if the serialized data is_visited, is true, runs reverse geocode on the adventures and if a region is found, marks it as visited. Use the extractIsoCode function to get the region # searches through all of the users adventures, if the serialized data is_visited, is true, runs reverse geocode on the adventures and if a region is found, marks it as visited. Use the extractIsoCode function to get the region
new_region_count = 0 new_region_count = 0
new_regions = {} new_regions = {}
@ -66,9 +66,9 @@ class ReverseGeocodeViewSet(viewsets.ViewSet):
if 'error' in data: if 'error' in data:
continue continue
extracted_region = extractIsoCode(self.request.user, data) # data already contains region_id and city_id
if 'error' not in extracted_region: if 'region_id' in data and data['region_id'] is not None:
region = Region.objects.filter(id=extracted_region['region_id']).first() region = Region.objects.filter(id=data['region_id']).first()
visited_region = VisitedRegion.objects.filter(region=region, user_id=self.request.user).first() visited_region = VisitedRegion.objects.filter(region=region, user_id=self.request.user).first()
if not visited_region: if not visited_region:
visited_region = VisitedRegion(region=region, user_id=self.request.user) visited_region = VisitedRegion(region=region, user_id=self.request.user)
@ -76,8 +76,8 @@ class ReverseGeocodeViewSet(viewsets.ViewSet):
new_region_count += 1 new_region_count += 1
new_regions[region.id] = region.name new_regions[region.id] = region.name
if extracted_region['city_id'] is not None: if 'city_id' in data and data['city_id'] is not None:
city = City.objects.filter(id=extracted_region['city_id']).first() city = City.objects.filter(id=data['city_id']).first()
visited_city = VisitedCity.objects.filter(city=city, user_id=self.request.user).first() visited_city = VisitedCity.objects.filter(city=city, user_id=self.request.user).first()
if not visited_city: if not visited_city:
visited_city = VisitedCity(city=city, user_id=self.request.user) visited_city = VisitedCity(city=city, user_id=self.request.user)