summaryrefslogtreecommitdiff
path: root/src/templates/meetingtools/ac/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/templates/meetingtools/ac/api.py')
-rw-r--r--src/templates/meetingtools/ac/api.py87
1 files changed, 0 insertions, 87 deletions
diff --git a/src/templates/meetingtools/ac/api.py b/src/templates/meetingtools/ac/api.py
deleted file mode 100644
index 1ed974b..0000000
--- a/src/templates/meetingtools/ac/api.py
+++ /dev/null
@@ -1,87 +0,0 @@
-'''
-Created on Jan 31, 2011
-
-@author: leifj
-'''
-
-from lxml import etree
-import httplib2
-from urllib import quote
-import logging
-from pprint import pformat
-
-class ACPException(Exception):
- def __init__(self, value):
- self.value = value
-
- def __str__(self):
- return etree.tostring(self.value)
-
-class ACPResult():
-
- def __init__(self,content):
- self.et = etree.fromstring(content)
- self.status = self.et.find('status')
-
- def is_error(self):
- return self.status.get('code') != 'ok'
-
- def exception(self):
- raise ACPException,self.status
-
- def get_principal(self):
- return self.et.find('principal')
-
-def _enc(v):
- ev = v
- if isinstance(ev,str) or isinstance(ev,unicode):
- ev = ev.encode('iso-8859-1')
- return ev
-
-class ACPClient():
-
- def __init__(self,url,username=None,password=None):
- self.url = url
- self.session = None
- if username and password:
- self.login(username,password)
-
- def request(self,method,p={},raise_error=False):
- url = self.url+"?"+"action=%s" % method
- if self.session:
- url = url + "&session=%s" % self.session
-
- u = []
- for (k,v) in p.items():
- if v:
- kv = "%s=%s" % (k,quote(str(v)))
- u.append(kv)
- url = url + "&" + "&".join(u)
-
- h = httplib2.Http(".cache");
- logging.debug(url)
- resp, content = h.request(url, "GET")
- logging.debug(pformat(resp))
- logging.debug(pformat(content))
- if resp.status != 200:
- raise ACPException,resp.reason
-
- if resp.has_key('set-cookie'):
- cookie = resp['set-cookie']
- if cookie:
- avp = cookie.split(";")
- if len(avp) > 0:
- av = avp[0].split('=')
- self.session = av[1]
-
- r = ACPResult(content)
- if r.is_error() and raise_error:
- raise r.exception()
-
- return r;
-
- def login(self,username,password):
- result = self.request('login',{'login':username,'password':password})
- if result.is_error():
- raise result.exception()
- \ No newline at end of file