From f62579ce908f3baf97cddeac2918ca794c341fa6 Mon Sep 17 00:00:00 2001 From: clerie Date: Thu, 6 Jan 2022 18:13:48 +0100 Subject: [PATCH] Add GetAccount --- mitel_ommclient2/client.py | 12 +++++++++++ mitel_ommclient2/messages/__init__.py | 4 ++-- mitel_ommclient2/messages/getaccount.py | 27 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 mitel_ommclient2/messages/getaccount.py diff --git a/mitel_ommclient2/client.py b/mitel_ommclient2/client.py index b598336..b36bc7b 100644 --- a/mitel_ommclient2/client.py +++ b/mitel_ommclient2/client.py @@ -37,6 +37,18 @@ class OMMClient2: else: self.session = session + def get_account(self, id): + """ + Get account + + :param id: User id + """ + + r = self.session.request(message.GetAccount(id)) + r.raise_on_error() + + return r.account[0] + def ping(self): """ Is OMM still there? diff --git a/mitel_ommclient2/messages/__init__.py b/mitel_ommclient2/messages/__init__.py index b2e9a2d..41f1322 100644 --- a/mitel_ommclient2/messages/__init__.py +++ b/mitel_ommclient2/messages/__init__.py @@ -97,10 +97,9 @@ class Response: def maxLen(self): return self.attrs.get("maxLen") - +from .getaccount import GetAccount, GetAccountResp from .ping import Ping, PingResp - def construct(request): """ Builds the XML message DOM and returns as string @@ -123,6 +122,7 @@ def construct(request): def _response_type_by_name(name): response_types = [ + GetAccountResp, PingResp, ] diff --git a/mitel_ommclient2/messages/getaccount.py b/mitel_ommclient2/messages/getaccount.py new file mode 100644 index 0000000..fb0b949 --- /dev/null +++ b/mitel_ommclient2/messages/getaccount.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +from . import Request, Response + + +class GetAccount(Request): + def __init__(self, id, maxRecords=None, **kwargs): + super().__init__("GetAccount", **kwargs) + + self.attrs["id"] = id + + if maxRecords is not None: + self.attrs["maxRecords"] = maxRecords + + @property + def id(self): + return self.attrs.get("id") + + @property + def maxRecords(self): + return self.attrs.get("maxRecords") + + +class GetAccountResp(Response): + @property + def account(self): + return self.attrs.get("account")