Source code for divera.api.v2.statusgeber

import datetime
import json

from divera.api import endpointwrappers as _epw


[docs]class SetStatus(_epw.FunctionalEndPoint): method = 'POST' path = '/api/v2/statusgeber/set-status' def __init__( self, id: int = None, vehicle: int = None, note: str = None, reset_date: [int, datetime.datetime] = None, reset_to: int = None, alarm_skip: bool = None, status_skip_statusplan: bool = None, status_skip_geofence: bool = None, ): """ Status setzen :param id: ID des neuen Status :param vehicle: ID des Fahrzeugs, dem der Nutzer zugewiesen werden soll - Zuordnung erlischt bei erneutem Statuswechsel :param note: Freitext zur Statusmeldung - Erlischt bei erneutem Statuswechsel :param reset_date: Zeitpunkt als UNIX-Zeitstempel, an dem der Status zurückgesetzt werden soll :param reset_to: ID des Folgestatus bei Zurücksetzen :param alarm_skip: Statusänderung ignorieren wenn gerade ein Einsatz anliegt :param status_skip_statusplan: Alle Termine im Zeitraum überschreiben :param status_skip_geofence: Alle Geofences im Zeitraum ignorieren """ self.data = { 'id': id, 'vehicle': vehicle, 'note': note, 'reset_date': reset_date if type(reset_date) is not datetime.datetime else reset_date.timestamp(), 'reset_to': reset_to, 'alarm_skip': alarm_skip, 'status_skip_statusplan': status_skip_statusplan, 'status_skip_geofence': status_skip_geofence, } def __call__( self, base_url, access_token, *args, **kwargs ): args = [ base_url.rstrip('/') + '/' + self.path.lstrip('/') + f'?accesskey={access_token}', ] kwargs = { 'headers': { 'Content-Type': 'application/json', }, 'data': json.dumps({ 'Status': { key: self.data[key] for key in self.data if self.data[key] is not None }, }), } return args, kwargs