Files
ihrm/geofencing/serializers.py

28 lines
893 B
Python

from rest_framework import serializers
from .models import GeoFencing
from geopy.geocoders import Nominatim
class GeoFencingSetupSerializer(serializers.ModelSerializer):
class Meta:
model = GeoFencing
fields = '__all__'
def validate(self, data):
geolocator = Nominatim(user_agent="geo_checker") # Use a unique user-agent
try:
latitude = data.get("latitude")
longitude = data.get("longitude")
location = geolocator.reverse((latitude, longitude), exactly_one=True)
if not location:
raise serializers.ValidationError("Invalid Location")
except Exception as e:
raise serializers.ValidationError(e)
return data
class EmployeeLocationSerializer(serializers.ModelSerializer):
class Meta:
model = GeoFencing
fields = ['latitude', 'longitude']