76 lines
1.9 KiB
Python
76 lines
1.9 KiB
Python
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()
|