python-sdk/happydomain/provider.py

61 lines
1.5 KiB
Python

import json
from urllib.parse import quote
from .error import HappyError
from .domain import Domain
class Provider:
def __init__(self, _session, _srctype, _id, _ownerid, _comment, Provider={}):
self._session = _session
self._srctype = _srctype
self._id = _id
self._ownerid = _ownerid
self._comment = _comment
self.args = Provider
def _dumps(self):
return json.dumps({
"_srctype": self._srctype,
"_id": self._id,
"_ownerid": self._ownerid,
"_comment": self._comment,
"Provider": self.args,
})
def domain_add(self, dn):
r = self._session.session.post(
self._session.baseurl + "/api/domains",
data=json.dumps({
"domain": dn,
"id_provider": self._id,
})
)
if r.status_code != 200:
raise HappyError(r.status_code, **r.json())
return Domain(self._session, **r.json())
def delete(self):
r = self._session.session.delete(
self._session.baseurl + "/api/providers/" + quote(self._id),
)
if r.status_code > 300:
raise HappyError(r.status_code, **r.json())
return r.json()
def update(self):
r = self._session.session.put(
self._session.baseurl + "/api/providers/" + quote(self._id),
data=self._dumps(),
)
if r.status_code > 300:
raise HappyError(r.status_code, **r.json())
return r.json()