aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xejabberdrpc.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/ejabberdrpc.py b/ejabberdrpc.py
index e89c14a..7de19e6 100755
--- a/ejabberdrpc.py
+++ b/ejabberdrpc.py
@@ -20,7 +20,10 @@ class EjabberdMetrics:
self.url = url
self._cmd = self._rpc
else:
+ import requests
+
self._url = url
+ self.session = requests.Session()
self._cmd = self._rest
@property
@@ -43,15 +46,19 @@ class EjabberdMetrics:
return None
- def _rest(self, command: str, data):
- import requests
+ def _rest(self, command: str, data) -> dict:
+ # add authentication header to the session obj
+ if self.session.auth is None:
+ self.session.auth = self._auth
+
+ # post
+ r = self.session.post('/'.join([self._url, command]), json=data)
- with requests.Session() as s:
- r = s.post(f'{self._url}/{command}', auth=self._auth, json=data)
+ # proceed if response is ok
+ if r.ok:
+ return r.json()
- if r.status_code == 200:
- return r.json()
- return{}
+ return {}
def _rpc(self, command: str, data):
from xmlrpc import client