diff --git a/mitel_ommclient2/client.py b/mitel_ommclient2/client.py index c24a61d..fcc9490 100644 --- a/mitel_ommclient2/client.py +++ b/mitel_ommclient2/client.py @@ -3,6 +3,7 @@ from .connection import Connection from . import exceptions from . import messages +from . import types class OMMClient2: """ @@ -152,3 +153,22 @@ class OMMClient2: if r.errCode is None: return True return False + + def set_user_name(self, uid, name): + """ + Get PP user + + :param uid: User id + """ + t = types.PPUserType() + t.uid = uid + t.name = name + m = messages.SetPPUser() + m.childs.user = [t] + print(m) + r = self.connection.request(m) + + r.raise_on_error() + if r.childs.user is None: + return None + return r.childs.user[0] diff --git a/mitel_ommclient2/messages/__init__.py b/mitel_ommclient2/messages/__init__.py index 7b9b488..36ebf85 100644 --- a/mitel_ommclient2/messages/__init__.py +++ b/mitel_ommclient2/messages/__init__.py @@ -44,8 +44,11 @@ class Message: def __setattr__(self, name, value): if name in self.CHILDS.keys(): - if self.CHILDS[name] is not None and type(value) != self.CHILDS[name]: + if not isinstance(value, list): raise TypeError() + for v in value: + if self.CHILDS[name] is not None and type(v) != self.CHILDS[name]: + raise TypeError() self._child_dict[name] = value else: object.__setattr__(self, name, value) @@ -136,6 +139,7 @@ from .getppdev import GetPPDev, GetPPDevResp from .getppuser import GetPPUser, GetPPUserResp from .open import Open, OpenResp from .ping import Ping, PingResp +from .setppuser import SetPPUser, SetPPUserResp def construct(request): """ @@ -149,12 +153,13 @@ def construct(request): root.setAttribute(str(k), str(v)) - for k, v in request._childs.items(): - child = message.createElement(k) - if v is not None: - for c_k, c_v in v.items(): - child.setAttribute(str(c_k), str(c_v)) - root.appendChild(child) + for child_name, child_list in request._childs.items(): + if child_list is not None: + for child_list_item in child_list: + child = message.createElement(child_name) + for child_item_key, child_item_value in child_list_item._attrs.items(): + child.setAttribute(str(child_item_key), str(child_item_value)) + root.appendChild(child) return root.toxml() def parse(message): diff --git a/mitel_ommclient2/messages/setppuser.py b/mitel_ommclient2/messages/setppuser.py new file mode 100644 index 0000000..6141273 --- /dev/null +++ b/mitel_ommclient2/messages/setppuser.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +from . import Request, Response, request_type, response_type +from ..types import PPUserType + + +@request_type +class SetPPUser(Request): + CHILDS = { + "user": PPUserType, + } + + +@response_type +class SetPPUserResp(Response): + CHILDS = { + "user": PPUserType, + }