ba-thesis/app/gotify/api.py

76 lines
1.9 KiB
Python
Raw Normal View History

2023-07-28 22:27:12 +01:00
import requests
from requests.auth import HTTPBasicAuth
from django.conf import settings
from .models import GotifyUser
def create_user(username: str, password: str) -> dict:
"""Creates a user on the Gotify instance.
:param username: The name of the user to be created.
:param password: The password of the user to be created.
"""
data = {
'admin': False,
'name': username,
'pass': password
}
response = requests.post(
url=f"http://{settings.GOTIFY_CONFIG['HOST']}/user",
auth=HTTPBasicAuth(
settings.GOTIFY_CONFIG['USERNAME'],
settings.GOTIFY_CONFIG['PASSWORD'],
),
json=data
)
if response is not None:
response.raise_for_status()
return response.json()
def create_application(username: str, password: str) -> dict:
"""Creates an application on the Gotify instance.
:param username: The user for whom an application will be created.
:param password: The user's password.
"""
data = {
'defaultPriority': 6,
'description': 'A remote patient health monitoring system.',
'name': 'Medwings'
}
response = requests.post(
url=f"http://{settings.GOTIFY_CONFIG['HOST']}/application",
auth=HTTPBasicAuth(username, password),
json=data
)
if response is not None:
response.raise_for_status()
return response.json()
def upload_application_picture(username: str, password: str, app_id: int):
with open('/app/static/medwings/images/logo/medwings-logo.png', 'rb') as image_file:
response = requests.post(
url=f"http://{settings.GOTIFY_CONFIG['HOST']}/application/{app_id}/image",
auth=HTTPBasicAuth(
username,
password,
),
files={
'file': image_file
}
)
if response is not None:
response.raise_for_status()