Started refactoring

This commit is contained in:
Benjamyn Love 2018-11-11 19:59:42 +11:00
parent 3aaa21388a
commit d0705886a1
2 changed files with 186 additions and 153 deletions

337
gotipy.py
View File

@ -3,203 +3,236 @@ import json
import base64 import base64
from pprint import pprint from pprint import pprint
proxies = {
'http': "localhost:8080"
}
class gotipy(object): class gotipy(object):
def __init__(self, token, url): ## Application Functions
self.token = token class applications(object):
self.url = url def __init__(self, token, url, proxies = {}):
self.headers = {'X-Gotify-Key' : self.token} self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
def getApplications(self):
self.requrl = self.url + '/application'
req = requests.get(self.requrl, headers=self.headers, proxies=self.proxies)
return req
def createApplication(self, name, description):
self.name = name
self.description = description
self.requrl = self.url + '/application'
data = {}
data["name"] = self.name
data["description"] = self.description
req = requests.post(self.requrl, headers=self.headers, json=data)
pprint(req)
return req
def deleteApplication(self, appid):
self.appid = appid
self.requrl = self.url + '/application/' + str(self.appid)
req = requests.delete(self.requrl, headers=self.headers)
return req
def updateApplicationImage(self, appid, imgData):
self.id = appid
self.imgData = { 'file': imgData}
self.requrl = self.url + '/application/' + self.id + '/image'
req = requests.post(self.requrl, headers=self.headers, files=self.imgData)
return req
## Auth Function ## Auth Function
def basicAuth(self, user, passwd):
self.user = user
self.passwd = passwd
self.string = self.user + ':' + self.passwd
self.encoded = base64.b64encode(self.string.encode("utf-8"))
print(self.string.encode('utf-8'))
self.headers["authorization"] = "Basic " + base64.b64encode(self.string)
print(self.encoded)
return self.headers
## Token Functions
def getApplications(self):
self.requrl = self.url + '/application'
req = requests.get(self.requrl, headers=self.headers) ## Client Functions
return req class clients(object):
def __init__(self, token, url, proxies = {}):
self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
def createApplication(self, name, description): def getClients(self):
self.name = name self.requrl = self.url + '/client'
self.description = description
self.requrl = self.url + '/application'
data = {} req = requests.get(self.requrl, headers=self.headers)
data["name"] = self.name return req
data["description"] = self.description
req = requests.post(self.requrl, headers=self.headers, json=data) def addClient(self, name):
pprint(req) self.name = name
return req self.requrl = self.url + '/client'
data = {"name": self.name}
pprint(data)
def deleteApplication(self, appid): req = requests.post(self.requrl, headers=self.headers, json=data)
self.appid = appid return req
self.requrl = self.url + '/application/' + str(self.appid)
req = requests.delete(self.requrl, headers=self.headers) def deleteClient(self, clientid):
return req self.clientid = clientid
self.requrl = self.url + '/client/' + str(self.clientid)
def updateApplicationImage(self, appid, imgData): req = requests.delete(self.requrl, headers=self.headers)
self.id = appid return req
self.imgData = { 'file': imgData}
self.requrl = self.url + '/application/' + self.id + '/image'
req = requests.post(self.requrl, headers=self.headers, files=self.imgData)
return req
def getClients(self):
self.requrl = self.url + '/client'
req = requests.get(self.requrl, headers=self.headers)
return req
def addClient(self, name):
self.name = name
self.requrl = self.url + '/client'
data = {"name": self.name}
pprint(data)
req = requests.post(self.requrl, headers=self.headers, json=data)
return req
def deleteClient(self, clientid):
self.clientid = clientid
self.requrl = self.url + '/client/' + str(self.clientid)
req = requests.delete(self.requrl, headers=self.headers)
return req
## Message Functions ## Message Functions
def getMessagesByApp(self, appid): class msgManager(object):
self.appid = appid def __init__(self, token, url, proxies = {}):
self.requrl = self.url + '/application/' + str(self.appid) + "/message" self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
req = requests.get(self.requrl, headers=self.headers) def getMessagesByApp(self, appid):
return req self.appid = appid
self.requrl = self.url + '/application/' + str(self.appid) + "/message"
def deleteAllMessagesFromApp(self, appid): req = requests.get(self.requrl, headers=self.headers)
self.appid = appid return req
self.requrl = self.url + '/application/' + str(self.appid) + "/message"
req = requests.delete(self.requrl, headers=self.headers) def deleteAllMessagesFromApp(self, appid):
return req self.appid = appid
self.requrl = self.url + '/application/' + str(self.appid) + "/message"
def getAllMessages(self): req = requests.delete(self.requrl, headers=self.headers)
self.requrl = self.url + '/message' return req
req = requests.get(self.requrl, headers=self.headers) def getAllMessages(self):
return req self.requrl = self.url + '/message'
def sendMessage(self, title, message): req = requests.get(self.requrl, headers=self.headers)
self.title = title return req
self.message = message
self.requrl = self.url + '/message'
#define a new dict for the message def deleteAllMessages(self):
data = {} self.requrl = self.url + '/message'
data["message"] = self.message
data["title"] = self.title
req = requests.post(self.requrl, headers=self.headers, json=data) req = requests.delete(self.requrl, headers=self.headers)
return req return req
def deleteAllMessages(self): def deleteMessageByID(self, msgid):
self.requrl = self.url + '/message' self.msgid = msgid
self.requrl = self.url + '/message/' + str(self.msgid)
req = requests.delete(self.requrl, headers=self.headers) req = requests.delete(self.requrl, headers=self.headers)
return req return req
def deleteMessageByID(self, msgid): def getStream(self): ## Currently broken, returns 400 error, no idea why
self.msgid = msgid self.requrl = self.url + '/stream'
self.requrl = self.url + '/message/' + str(self.msgid)
req = requests.delete(self.requrl, headers=self.headers) req = requests.get(self.requrl, headers=self.headers)
return req return req
def getStream(self): ## Currently broken, returns 400 error, no idea why class messages(object):
self.requrl = self.url + '/stream' def __init__(self, token, url, proxies = {}):
self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
req = requests.get(self.requrl, headers=self.headers) def sendMessage(self, title, message):
return req self.title = title
self.message = message
self.requrl = self.url + '/message'
#define a new dict for the message
data = {}
data["message"] = self.message
data["title"] = self.title
req = requests.post(self.requrl, headers=self.headers, json=data)
return req
## User Functions ## User Functions
class users(object):
def __init__(self, token, url, proxies = {}):
self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
def getCurrentUser(self):
self.requrl = self.url + '/current/user'
req = requests.get(self.requrl, headers=self.headers) def getCurrentUser(self):
return req self.requrl = self.url + '/current/user'
def changeUserPassword(self, passwd): req = requests.get(self.requrl, headers=self.headers)
self.passwd = str(passwd) return req
self.requrl = self.url + '/current/user/password'
data = {"pass": self.passwd} def changeUserPassword(self, passwd):
req = requests.post(self.requrl, headers=self.headers, json=data) self.passwd = str(passwd)
return req self.requrl = self.url + '/current/user/password'
def getUsers(self): data = {"pass": self.passwd}
self.requrl = self.url + '/user' req = requests.post(self.requrl, headers=self.headers, json=data)
return req
req = requests.get(self.requrl, headers=self.headers) def getUsers(self):
return req self.requrl = self.url + '/user'
def createUser(self, isAdmin, username, password): req = requests.get(self.requrl, headers=self.headers)
self.isAdmin = bool(isAdmin) return req
self.username = str(username)
self.password = str(password)
self.requrl = self.url + '/user'
data = {"admin": self.isAdmin, def createUser(self, isAdmin, username, password):
"name": self.username, self.isAdmin = bool(isAdmin)
"pass": self.password} self.username = str(username)
self.password = str(password)
self.requrl = self.url + '/user'
req = requests.post(self.requrl, headers=self.headers, json=data) data = {"admin": self.isAdmin,
return req "name": self.username,
"pass": self.password}
def getUserByID(self, userID): req = requests.post(self.requrl, headers=self.headers, json=data)
self.userID = str(userID) return req
self.requrl = self.url + '/user/' + self.userID
req = requests.get(self.requrl, headers=self.headers) def getUserByID(self, userID):
return req self.userID = str(userID)
self.requrl = self.url + '/user/' + self.userID
def updateUserByID(self, userID, isAdmin, username, password): ## I really do not like this implementation will look into a better way req = requests.get(self.requrl, headers=self.headers)
self.userID = str(userID) return req
self.isAdmin = bool(isAdmin)
self.username = str(username)
self.password = str(password)
self.requrl = self.url + '/user/' + self.userID
data = {"admin": self.isAdmin, def updateUserByID(self, userID, isAdmin, username, password): ## I really do not like this implementation will look into a better way
"name": self.username, self.userID = str(userID)
"pass": self.password} self.isAdmin = bool(isAdmin)
req = requests.post(self.requrl, headers=self.headers, json=data) self.username = str(username)
return req self.password = str(password)
self.requrl = self.url + '/user/' + self.userID
def deleteUserByID(self, userID): data = {"admin": self.isAdmin,
self.userID = str(userID) "name": self.username,
self.requrl = self.url + '/user/' + self.userID "pass": self.password}
req = requests.post(self.requrl, headers=self.headers, json=data)
return req
req = requests.delete(self.requrl, headers=self.headers) def deleteUserByID(self, userID):
return req self.userID = str(userID)
self.requrl = self.url + '/user/' + self.userID
req = requests.delete(self.requrl, headers=self.headers)
return req
## Get version information ## Get version information
class utils(object):
def __init__(self, token, url, proxies = {}):
self.token = token
self.url = url
self.headers = {'X-Gotify-Key' : self.token}
self.proxies = proxies
def getVersion(self): def getVersion(self):
self.requrl = self.url + '/version' self.requrl = self.url + '/version'
req = requests.get(self.requrl) req = requests.get(self.requrl)
return req return req
def basicAuth(self, user, passwd):
self.user = user
self.passwd = passwd
self.string = self.user + ':' + self.passwd
self.encoded = base64.b64encode(self.string.encode("utf-8"))
print(self.string.encode('utf-8'))
self.headers["authorization"] = "Basic " + base64.b64encode(self.string)
print(self.encoded)
return self.headers

View File