-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathIITLookup.py
53 lines (47 loc) · 2.09 KB
/
IITLookup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from requests import Session, auth
import zeep
class IITLookup:
def __init__(self, wsurl, user=None, pwd=None, idlength=6):
self.idlength=idlength
if(user or pwd):
session = Session()
session.auth = auth.HTTPBasicAuth(user, pwd)
self.sclient=zeep.Client(wsdl=wsurl, transport=zeep.Transport(session=session))
else:
self.sclient=zeep.Client(wsdl=wsurl)
def getServices(self):
for service in self.sclient.wsdl.services.values():
print(service)
for port in service.ports.values():
print(port)
try:
operations = port.binding._operations.values()
for operation in operations:
print(operation.name)
node = self.sclient.create_message(self.sclient.service, operation.name)
print(node)
except zeep.exceptions.Error as zeep_error:
print(zeep_error)
return None
def nameByID(self, idnumber):
try:
return self.sclient.service.PCSGetName(idNumber=idnumber)
except zeep.exceptions.Error as zeep_error:
print(zeep_error)
return None
def nameIDByCard(self,cardnum):
lookupstr = str(cardnum).zfill(self.idlength)
try:
ret = self.sclient.service.PCSGetbyCardNum(cardNumber=lookupstr)
except zeep.exceptions.Error as zeep_error:
print(zeep_error)
return None
if(ret == 'Not Found'):
return None
ret = ret.split(',')
output = {}
output['last_name'] = ret[0]
output['first_name'] = ret[1]
output['middle_name'] = ret[2]
output['idnumber'] = ret[3]
return output