[open-ils-commits] r128 - in servres/trunk: . sip/py (gfawcett)
svn at svn.open-ils.org
svn at svn.open-ils.org
Fri Feb 20 15:04:58 EST 2009
Author: gfawcett
Date: 2009-02-20 15:04:55 -0500 (Fri, 20 Feb 2009)
New Revision: 128
Modified:
servres/trunk/.gitignore
servres/trunk/sip/py/sipclient.py
Log:
SIP: added ITEM_INFORMATION and ITEM_INFO_RESP messages.
Modified: servres/trunk/.gitignore
===================================================================
--- servres/trunk/.gitignore 2009-02-20 18:55:25 UTC (rev 127)
+++ servres/trunk/.gitignore 2009-02-20 20:04:55 UTC (rev 128)
@@ -2,3 +2,5 @@
sip/openncip/*
sip/doc/sip2_developers_guide.pdf
sip/java/*
+*.pyc
+
Modified: servres/trunk/sip/py/sipclient.py
===================================================================
--- servres/trunk/sip/py/sipclient.py 2009-02-20 18:55:25 UTC (rev 127)
+++ servres/trunk/sip/py/sipclient.py 2009-02-20 20:04:55 UTC (rev 128)
@@ -216,6 +216,18 @@
#------------------------------------------------------------
# SIP Message Definitions
+# some common fields
+
+
+fld_localtime = localtime('localtime')
+fld_INST_ID = field('inst', FID_INST_ID)
+fld_ITEM_ID = field('item', FID_ITEM_ID)
+fld_PATRON_ID = field('patron', FID_PATRON_ID)
+ofld_TERMINAL_PWD = optfield('termpwd', FID_TERMINAL_PWD)
+fld_proto_version = charfield('version', default='2.00')
+ofld_print_line = optfield('print_line', FID_PRINT_LINE)
+ofld_screen_msg = optfield('screenmsg', FID_SCREEN_MSG)
+
MESSAGES = {
LOGIN : message(
LOGIN,
@@ -232,7 +244,7 @@
SC_STATUS,
charfield('online', default='1'),
charfield('width', default='040'),
- charfield('version', default='2.00')),
+ fld_proto_version),
ACS_STATUS : message(
ACS_STATUS,
@@ -244,22 +256,22 @@
yn('offline_OK'),
charfield('timeout', default='01'),
charfield('retries', default='9999'),
- charfield('localtime', default='YYYYMMDD HHMMSS'),
+ fld_localtime,
charfield('protocol', default='2.00'),
- field('inst', FID_INST_ID),
+ fld_INST_ID,
optfield('instname', FID_LIBRARY_NAME),
field('supported', FID_SUPPORTED_MSGS),
optfield('ttylocn', FID_TERMINAL_LOCN),
- optfield('screenmsg', FID_SCREEN_MSG),
- optfield('printline', FID_PRINT_LINE)),
+ ofld_screen_msg,
+ ofld_print_line),
PATRON_INFO : message(
PATRON_INFO,
charfield('lang', width=3, default=1),
- localtime('localtime'),
+ fld_localtime,
charfield('holditemsreq', default='Y '),
- field('inst', FID_INST_ID),
- field('patron', FID_PATRON_ID),
- optfield('termpwd', FID_TERMINAL_PWD),
+ fld_INST_ID,
+ fld_PATRON_ID,
+ ofld_TERMINAL_PWD,
optfield('patronpwd', FID_PATRON_PWD),
optfield('startitem', FID_START_ITEM, width=5),
optfield('enditem', FID_END_ITEM, width=5)),
@@ -268,19 +280,18 @@
PATRON_INFO_RESP,
charfield('hmmm', width=14),
charfield('lang', width=3, default=1),
- localtime('localtime'),
+ fld_localtime,
charfield('onhold', width=4),
charfield('overdue', width=4),
charfield('charged', width=4),
charfield('fine', width=4),
charfield('recall', width=4),
charfield('unavail_holds', width=4),
-
- field('inst', FID_INST_ID),
- optfield('screenmsg', FID_SCREEN_MSG),
- optfield('printline', FID_PRINT_LINE),
+ fld_INST_ID,
+ ofld_screen_msg,
+ ofld_print_line,
optfield('instname', FID_LIBRARY_NAME),
- field('patron', FID_PATRON_ID),
+ fld_PATRON_ID,
field('personal', FID_PERSONAL_NAME),
optfield('hold_limit', FID_HOLD_ITEMS_LMT, width=4),
@@ -304,24 +315,53 @@
END_PATRON_SESSION : message(
END_PATRON_SESSION,
- localtime('localtime'),
+ fld_localtime,
field('inst', FID_INST_ID),
field('patron', FID_PATRON_ID)),
END_SESSION_RESP : message(
END_SESSION_RESP,
yn('session_ended'),
- localtime('localtime'),
- field('inst', FID_INST_ID),
- field('patron', FID_PATRON_ID),
- optfield('printline', FID_PRINT_LINE),
- optfield('screenmsg', FID_SCREEN_MSG)),
+ fld_localtime,
+ fld_INST_ID,
+ fld_PATRON_ID,
+ ofld_print_line,
+ ofld_screen_msg),
+ ITEM_INFORMATION : message(
+ ITEM_INFORMATION,
+ fld_localtime,
+ fld_INST_ID,
+ fld_ITEM_ID,
+ ofld_TERMINAL_PWD),
+
+ ITEM_INFO_RESP : message(
+ ITEM_INFO_RESP,
+ charfield('circstat', width=2),
+ charfield('security', width=2),
+ charfield('feetype', width=2),
+ fld_localtime,
+ fld_ITEM_ID,
+ field('title', FID_TITLE_ID),
+ optfield('mediatype', FID_MEDIA_TYPE),
+ optfield('perm_locn', FID_PERM_LOCN),
+ optfield('current_locn', FID_CURRENT_LOCN),
+ optfield('item_props', FID_ITEM_PROPS),
+ optfield('currency', FID_CURRENCY),
+ optfield('fee', FID_FEE_AMT),
+ optfield('owner', FID_OWNER),
+ optfield('hold_queue_len', FID_HOLD_QUEUE_LEN),
+ optfield('due_date', FID_DUE_DATE),
+
+ optfield('recall_date', FID_RECALL_DATE),
+ optfield('hold_pickup_date', FID_HOLD_PICKUP_DATE),
+ ofld_screen_msg,
+ ofld_print_line),
+
RAW : message(raw()),
}
-
class SipClient(object):
def __init__(self, host, port, error_detect=False):
self.hostport = (host, port)
@@ -362,6 +402,9 @@
return self.send(SC_STATUS, ACS_STATUS)
+# ------------------------------------------------------------
+# Test code.
+
if __name__ == '__main__':
from pprint import pprint
@@ -370,12 +413,21 @@
pwd='clientpwd', locn='The basement')
pprint(resp)
pprint(sip.status())
+
pprint(sip.send(PATRON_INFO, PATRON_INFO_RESP,
- {'patron':'scclient'}))
+ {'patron':'scclient',
+ 'startitem':1, 'enditem':2}))
+ # these are items from openncip's test database.
+ item_ids = ['1565921879', '0440242746', '660']
+ bad_ids = ['xx' + i for i in item_ids]
+ for item in (item_ids + bad_ids):
+ result = sip.send(ITEM_INFORMATION, ITEM_INFO_RESP,
+ {'item':item})
+ print '%-12s: %s' % (item, result['title'] or '????')
pprint(sip.send(END_PATRON_SESSION, END_SESSION_RESP,
{'patron':'scclient',
'inst':'UWOLS'}))
- #{'raw': '36Y20090220 133339AOUWOLS|AAscclient|AFThank you for using Evergreen!|\r'}
+
More information about the open-ils-commits
mailing list