Source code for divera.api.v2.crud

import abc
import logging

import aiohttp


[docs]class CrudAPI(abc.ABC): URL_TYPE: str = None # CRUD: The most important methods for creating, editing, archiving and deleting alarms, events, news and messages
[docs] async def get( self, base_url: str, access_token: str, object_id: int = None, *args, **kwargs, ): """ Methode zum Abrufen aller nicht archivierten Modelle Method to read all non archived models :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ async with aiohttp.ClientSession() as session: async with session.get( base_url + f'/api/v2/{self.URL_TYPE}' + ('/' + str(object_id) if object_id is not None else ''), headers={ 'accept': 'application/json', }, data={ 'accesskey': access_token, }, *args, **kwargs, ) as res: if 400 <= res.status < 500: logging.warning(PermissionError(res)) return await res.json()
[docs] def create( self, base_url: str, access_token: str, *args, **kwargs, ): """ Methode zum Erstellen eines neuen Modells Method to create a new item :param base_url: The URL of you divera instance :param access_token: You personal access token :param args: :param kwargs: :return: """ return NotImplemented
[docs] def get_detail( self, base_url: str, access_token: str, object_id: int, *args, **kwargs, ): """ Methode zum Anzeigen des Modells anhand der ID Method to show an alarm based on its id :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ return self.get( base_url=base_url, access_token=access_token, object_id=object_id, *args, **kwargs, )
[docs] def change( self, base_url: str, access_token: str, object_id: int, *args, **kwargs, ): """ Methode zum Bearbeiten des Modells anhand der ID Method to edit an item based on its id :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ return NotImplemented
[docs] def delete( self, base_url: str, access_token: str, object_id: int, *args, **kwargs, ): """ Methode zum Löschen des Modells Method to delete an item :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ return NotImplemented
[docs] def add_attachment( self, base_url: str, access_token: str, object_id: int, *args, **kwargs, ): """ Methode zum Hinzufügen eines Anhangs Method to add an attachment :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ return NotImplemented
[docs] def archive( self, base_url: str, access_token: str, object_id: int, *args, **kwargs, ): """ Methode zum Archivieren des Modells Method to archive an alarm :param base_url: The URL of you divera instance :param access_token: You personal access token :param object_id: the id of the model :param args: :param kwargs: :return: """ return NotImplemented