Compare commits

..

No commits in common. "b2bf152af4738bfb28ab4fad502eceff031a126e" and "3b905bd28e3415a48a164296013d172755e77bec" have entirely different histories.

7 changed files with 30 additions and 46 deletions

View File

@ -65,7 +65,7 @@ class Admin:
return ret return ret
def authuser_update(self, Id, au): def authuser_udpate(self, Id, au):
r = self.session.put( r = self.session.put(
"http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id), "http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id),
data=json.dumps({ data=json.dumps({

View File

@ -1,6 +1,3 @@
import json
from urllib.parse import quote
class AuthUser: class AuthUser:
def __init__(self, _session, Id, Email, EmailVerification, Password, CreatedAt, LastLoggedIn, AllowCommercials): def __init__(self, _session, Id, Email, EmailVerification, Password, CreatedAt, LastLoggedIn, AllowCommercials):
@ -17,9 +14,9 @@ class AuthUser:
def Delete(self): def Delete(self):
self._session.authuser_delete(self.Id) self._session.authuser_delete(self.Id)
def ResetPassword(self, NewPassword): def ResetPassword(self, Id, NewPassword):
r = self._session.session.post( r = self.session.post(
"http+unix://" + self._session.socket_path + "/api/auth/" + quote(self.Id) + "/reset_password", "http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id) + "/reset_password",
data=json.dumps({ data=json.dumps({
"password": NewPassword, "password": NewPassword,
}) })

View File

@ -1,5 +1,4 @@
import json import json
from urllib.parse import quote
from .error import HappyError from .error import HappyError
from .domain import Domain from .domain import Domain
@ -16,13 +15,14 @@ class Provider:
self.args = kwargs self.args = kwargs
def _dumps(self): def _dumps(self):
return json.dumps({ d = {
"_srctype": self._srctype, "_srctype": self._srctype,
"_id": self._id, "_id": self._id,
"_ownerid": self._ownerid, "_ownerid": self._ownerid,
"_comment": self._comment, "_comment": self._comment,
"Provider": self.args, }
}) d.update(self.kwargs)
return json.dumps(d)
def domain_add(self, dn): def domain_add(self, dn):
r = self._session.session.post( r = self._session.session.post(
@ -36,11 +36,11 @@ class Provider:
if r.status_code != 200: if r.status_code != 200:
raise HappyError(r.status_code, **r.json()) raise HappyError(r.status_code, **r.json())
return Domain(self._session, **r.json()) return Domain(self, **r.json())
def delete(self): def delete(self):
r = self._session.session.delete( r = self._session.session.delete(
self._session.baseurl + "/api/providers/" + quote(self._id), self.baseurl + "/api/providers/" + quote(self._id),
) )
if r.status_code > 300: if r.status_code > 300:
@ -50,8 +50,8 @@ class Provider:
def update(self): def update(self):
r = self._session.session.put( r = self._session.session.put(
self._session.baseurl + "/api/providers/" + quote(self._id), self.baseurl + "/api/providers/" + quote(self._id),
data=self._dumps(), date=self._dumps(),
) )
if r.status_code > 300: if r.status_code > 300:

View File

@ -6,8 +6,6 @@ from .error import HappyError
class ServiceMeta: class ServiceMeta:
def __init__(self, _session, _svctype, _domain, _ttl, _id=None, _ownerid=None, _comment="", _mycomment="", _aliases=[], _tmp_hint_nb=0): def __init__(self, _session, _svctype, _domain, _ttl, _id=None, _ownerid=None, _comment="", _mycomment="", _aliases=[], _tmp_hint_nb=0):
self._session = _session
self._svctype = _svctype self._svctype = _svctype
self._domain = _domain self._domain = _domain
self._ttl = _ttl self._ttl = _ttl
@ -44,25 +42,22 @@ class HService(ServiceMeta):
return json.dumps(self._flat()) return json.dumps(self._flat())
def _flat(self): def _flat(self):
d = { return {
"_svctype": self._svctype, "_svctype": self._svctype,
"_domain": self._domain, "_domain": self._domain,
"_ttl": self._ttl, "_ttl": self._ttl,
"_id": self._id,
"_ownerid": self._ownerid,
"_comment": self._comment, "_comment": self._comment,
"_mycomment": self._mycomment, "_mycomment": self._mycomment,
"_aliases": self._aliases, "_aliases": self._aliases,
"_tmp_hint_nb": self._tmp_hint_nb, "_tmp_hint_nb": self._tmp_hint_nb,
"Service": self.service, "Service": self.service,
} }
if self._id is not None:
d["_id"] = self._id
if self._ownerid is not None:
d["_ownerid"] = self._ownerid
return d
def delete(self): def delete(self):
r = self._session.session.delete( r = self._session.session.delete(
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self._zoneid) + "/" + quote(self._domain) + "/services/" + quote(self._id), self.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self._zoneid) + "/" + quote(self._domain) + "/services/" + quote(self._id),
) )
if r.status_code > 300: if r.status_code > 300:

View File

@ -33,20 +33,23 @@ class ZoneMeta:
class Zone(ZoneMeta): class Zone(ZoneMeta):
def __init__(self, _session, _domainid, **kwargs): def __init__(self, _session, _domainid, services, **kwargs):
self._domainid = _domainid
super(Zone, self).__init__(_session, **kwargs) super(Zone, self).__init__(_session, **kwargs)
self._domainid = _domainid
self._load(services)
def _load(self, services, **kwargs): def _load(self, services, **kwargs):
super(Zone, self)._load(**kwargs) if "id" in kwargs:
super(Zone, self).__init__(**kwargs)
self.services = {} self.services = {}
if services is not None: if services is not None:
for k in services: for k in services:
self.services[k] = [] self.services[k] = []
for s in services[k]: for s in services[k]:
self.services[k].append(HService(self._session, self._domainid, self.id, **s)) self.services[k].append(HService(_session, self._domainid, self.id, **s))
def _svc_dumps(self): def _svc_dumps(self):
services = {} services = {}
@ -59,7 +62,9 @@ class Zone(ZoneMeta):
return services return services
def _dumps(self): def _dumps(self):
d = json.dumps({ return json.dumps({
"id": self.id,
"id_author": self.id_author,
"default_ttl": self.default_ttl, "default_ttl": self.default_ttl,
"last_modified": self.last_modified, "last_modified": self.last_modified,
"commit_message": self.commit_message, "commit_message": self.commit_message,
@ -67,11 +72,6 @@ class Zone(ZoneMeta):
"published": self.published, "published": self.published,
"services": self._svc_dumps(), "services": self._svc_dumps(),
}) })
if self.id is not None:
d["id"] = self.id
if self.id_author is not None:
d["id_author"] = self.id_author
return d
def add_zone_service(self, subdomain, svctype, svc): def add_zone_service(self, subdomain, svctype, svc):
r = self._session.session.post( r = self._session.session.post(
@ -97,19 +97,11 @@ class Zone(ZoneMeta):
return r.json() return r.json()
def apply_changes(self): def apply_changes(self):
rdiff = self._session.session.post(
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/diff_zones/%40/" + quote(self.id),
)
if rdiff.status_code > 300:
raise HappyError(rdiff.status_code, **rdiff.json())
r = self._session.session.post( r = self._session.session.post(
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self.id) + "/apply_changes", self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self.id) + "/apply_changes",
data=rdiff.text
) )
if r.status_code > 300: if r.status_code > 300:
raise HappyError(r.status_code, **r.json()) raise HappyError(r.status_code, **r.json())
return ZoneMeta(self._session, **r.json()) return r.json()

View File

@ -1,6 +1,6 @@
[project] [project]
name = "happydomain" name = "happydomain"
version = "0.0.5" version = "0.0.4"
authors = [ authors = [
{ name="happyDomain's team", email="contact+pypi@happydomain.org" }, { name="happyDomain's team", email="contact+pypi@happydomain.org" },
] ]

View File

@ -8,7 +8,7 @@ try:
except ImportError: except ImportError:
from distutils.core import setup from distutils.core import setup
version = "0.0.5" version = "0.0.4"
setup( setup(
name = "happydomain", name = "happydomain",