add position update API endpoint and remove old one, also some more api tweaks
This commit is contained in:
parent
92ce608034
commit
d6b9161345
9 changed files with 73 additions and 89 deletions
|
@ -65,40 +65,3 @@ class I18nModelFormMixin(ModelForm):
|
|||
super().full_clean()
|
||||
for field, values in self.i18n_fields:
|
||||
setattr(self.instance, field.attname, {lang: value for lang, value in values.items() if value})
|
||||
|
||||
|
||||
class PositionAPIUpdateForm(ModelForm):
|
||||
secret = CharField()
|
||||
|
||||
def __init__(self, *args, request=None, **kwargs):
|
||||
self.request = request
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = Position
|
||||
fields = ['coordinates_id', 'timeout']
|
||||
|
||||
def save(self, commit=True):
|
||||
self.instance.last_coordinates_update = timezone.now()
|
||||
super().save(commit)
|
||||
|
||||
def clean_secret(self):
|
||||
# not called api_secret so we don't overwrite it
|
||||
api_secret = self.cleaned_data['secret']
|
||||
if api_secret != self.instance.api_secret:
|
||||
raise ValidationError(_('Wrong API secret.'))
|
||||
return api_secret
|
||||
|
||||
def clean_coordinates_id(self):
|
||||
coordinates_id = self.cleaned_data['coordinates_id']
|
||||
if coordinates_id is None:
|
||||
return coordinates_id
|
||||
|
||||
if not coordinates_id.startswith('c:'):
|
||||
raise ValidationError(_('Invalid coordinates.'))
|
||||
|
||||
coordinates = get_location_by_id_for_request(self.cleaned_data['coordinates_id'], self.request)
|
||||
if coordinates is None:
|
||||
raise ValidationError(_('Invalid coordinates.'))
|
||||
|
||||
return coordinates_id
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue