Exemple #1
0
    def patron_status_request(self, patron_id, **kwargs):
        ''' Sends a Patron Status Request message.

        optional kwargs
            - institution 
                -- required if default_institution is unset
            - patron_pwd
        '''

        logging.debug("patron_status_request() for %s" % patron_id)

        msg = Message(
            spec = mspec.patron_status,
            fixed_fields = [
                FixedField(ffspec.language, '000'),
                FixedField(ffspec.date, Message.sipdate())
            ]
        )

        msg.add_field(fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id)
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #2
0
    def patron_status_request(self, patron_id, **kwargs):
        ''' Sends a Patron Status Request message.

        optional kwargs
            - institution 
                -- required if default_institution is unset
            - patron_pwd
        '''

        logging.debug("patron_status_request() for %s" % patron_id)

        msg = Message(spec=mspec.patron_status,
                      fixed_fields=[
                          FixedField(ffspec.language, '000'),
                          FixedField(ffspec.date, Message.sipdate())
                      ])

        msg.add_field(fspec.institution_id,
                      kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id)
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #3
0
    def item_info_request(self, item_id, **kwargs):
        ''' Sends an Item Information Request message

        kwargs
            - institution 
                -- required if default_institution is unset
        '''

        logging.debug("item_info_request() for %s" % item_id)

        msg = Message(
            spec = mspec.item_info, 
            fixed_fields = [
                FixedField(ffspec.date, Message.sipdate())
            ]
        )

        msg.add_field(fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.item_id, item_id)
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        
        self.send_msg(msg)
        return self.recv_msg()
Exemple #4
0
    def item_info_request(self, item_id, **kwargs):
        ''' Sends an Item Information Request message

        kwargs
            - institution 
                -- required if default_institution is unset
        '''

        logging.debug("item_info_request() for %s" % item_id)

        msg = Message(
            spec = mspec.item_info, 
            fixed_fields = [
                FixedField(ffspec.date, Message.sipdate())
            ]
        )

        msg.add_field(fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.item_id, item_id)
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        
        self.send_msg(msg)
        return self.recv_msg()
Exemple #5
0
    def patron_info_request(self, patron_id, **kwargs):
        ''' Send a Patron Information Request message.

        optional kwargs
            - institution 
                -- required if default_institution is unset
            - summary
                -- determines what detailed information to request, if any
            - patron_pwd
            - start_item
            - end_item
        '''

        logging.debug("patron_information_request() for %s" % patron_id)

        # summary may contain up to 1 "Y" value.
        summary = kwargs.get('summary', '          ')
        if summary.count('Y') > 1:
            raise ProtocolError(
                'Too many summary values requested in patron info request')

        msg = Message(
            spec=mspec.patron_info,
            fixed_fields=[
                FixedField(ffspec.language, '000'),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(ffspec.summary, summary)
            ],
        )

        msg.add_field(fspec.institution_id,
                      kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id),
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))
        msg.maybe_add_field(fspec.start_item, kwargs.get('start_item'))
        msg.maybe_add_field(fspec.end_item, kwargs.get('end_item'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #6
0
    def patron_info_request(self, patron_id, **kwargs):
        ''' Send a Patron Information Request message.

        optional kwargs
            - institution 
                -- required if default_institution is unset
            - summary
                -- determines what detailed information to request, if any
            - patron_pwd
            - start_item
            - end_item
        '''

        logging.debug("patron_information_request() for %s" % patron_id)

        # summary may contain up to 1 "Y" value.
        summary = kwargs.get('summary', '          ')
        if summary.count('Y') > 1:
            raise ProtocolError(
                'Too many summary values requested in patron info request')

        msg = Message(
            spec = mspec.patron_info,
            fixed_fields = [
                FixedField(ffspec.language, '000'),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(ffspec.summary, summary)
            ],
        )

        msg.add_field(fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id),
        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))
        msg.maybe_add_field(fspec.start_item, kwargs.get('start_item'))
        msg.maybe_add_field(fspec.end_item, kwargs.get('end_item'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #7
0
    def fee_paid_request(self, patron_id, fee_amount, **kwargs):
        ''' Send a Fee Paid message.

        fee_id refers the ILS identifier for the fee / transaction.

        kwargs
            - institution
                -- required if default_institution is unset
            - transaction_id
                -- Unique client-side identifier for the payment
            - fee_id
                -- Unique ILS identifier for the fee/transaction toward
                    which the payment is applied.
            - fee_type
                -- defaults to 01 (other/unknown)
            - payment_type
                -- defaults to 00 (cash)
            - check_number
            - register_login
            - patron_pwd
            - currency_type
                -- defaults to USD
        '''

        logging.debug("fee_paid_request() for patron %s and amount %s" %
                      (patron_id, fee_amount))

        msg = Message(spec=mspec.fee_paid,
                      fixed_fields=[
                          FixedField(ffspec.date, Message.sipdate()),
                          FixedField(ffspec.fee_type,
                                     kwargs.get('fee_type', '01')),
                          FixedField(ffspec.payment_type,
                                     kwargs.get('payment_type', '00')),
                          FixedField(ffspec.currency_type,
                                     kwargs.get('currency_type', 'USD')),
                      ])

        msg.add_field(fspec.institution_id,
                      kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id)
        msg.add_field(fspec.fee_amount, fee_amount)

        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(fspec.fee_identifier, kwargs.get('fee_id'))
        msg.maybe_add_field(fspec.transaction_id, kwargs.get('transaction_id'))
        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))
        msg.maybe_add_field(fspec.check_number, kwargs.get('check_number'))
        msg.maybe_add_field(fspec.register_login, kwargs.get('register_login'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #8
0
    def checkout_request(self, item_id, patron_id, **kwargs):
        ''' Send a Checkout message.

        kwargs
            - institution
                -- required if default_institution is unset
            - sc_renewal_policy
            - no_block
            - nb_due_date
            - item_properties
            - fee acknowledged
            - cancel
        '''

        logging.debug(
            "checkout_request() for patron=%s and item=%s" % (
            patron_id, item_id))

        msg = Message(
            spec = mspec.checkout,
            fixed_fields = [
                FixedField(
                    ffspec.sc_renewal_policy,
                    kwargs.get('sc_renewal_policy', 'N')),
                FixedField(
                    ffspec.no_block,
                    kwargs.get('no_block', 'N')),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(
                    ffspec.nb_due_date, 
                    kwargs.get('nb_due_date', Message.sipdate()))
            ],
        )

        msg.add_field(
            fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id),
        msg.add_field(fspec.item_id, item_id),

        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(
            fspec.item_properties, kwargs.get('item_properties'))

        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))
        msg.maybe_add_field(
            fspec.fee_acknowledged, kwargs.get('fee_acknowledged'))
        msg.maybe_add_field(fspec.cancel, kwargs.get('cancel'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #9
0
    def checkout_request(self, item_id, patron_id, **kwargs):
        ''' Send a Checkout message.

        kwargs
            - institution
                -- required if default_institution is unset
            - sc_renewal_policy
            - no_block
            - nb_due_date
            - item_properties
            - fee acknowledged
            - cancel
        '''

        logging.debug(
            "checkout_request() for patron=%s and item=%s" % (
            patron_id, item_id))

        msg = Message(
            spec = mspec.checkout,
            fixed_fields = [
                FixedField(
                    ffspec.sc_renewal_policy,
                    kwargs.get('sc_renewal_policy', 'N')),
                FixedField(
                    ffspec.no_block,
                    kwargs.get('no_block', 'N')),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(
                    ffspec.nb_due_date, 
                    kwargs.get('nb_due_date', Message.sipdate()))
            ],
        )

        msg.add_field(
            fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.patron_id, patron_id),
        msg.add_field(fspec.item_id, item_id),

        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(
            fspec.item_properties, kwargs.get('item_properties'))

        msg.maybe_add_field(fspec.patron_pwd, kwargs.get('patron_pwd'))
        msg.maybe_add_field(
            fspec.fee_acknowledged, kwargs.get('fee_acknowledged'))
        msg.maybe_add_field(fspec.cancel, kwargs.get('cancel'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #10
0
    def checkin_request(self, item_id, current_location, **kwargs):
        ''' Send a Checkin message.

        kwargs
            - institution
                -- required if default_institution is unset
            - no_block
            - return_date
            - item_properties
            - cancel
        '''

        logging.debug(
            "checkin_request() for item %s" % (item_id))

        msg = Message(
            spec = mspec.checkin,
            fixed_fields = [
                FixedField(
                    ffspec.no_block,
                    kwargs.get('no_block', 'N')),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(
                    ffspec.return_date, 
                    kwargs.get('return_date', Message.sipdate()))
            ],
        )

        msg.add_field(
            fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.current_location, current_location),
        msg.add_field(fspec.item_id, item_id),

        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(
            fspec.item_properties, kwargs.get('item_properties'))
        msg.maybe_add_field(fspec.cancel, kwargs.get('cancel'))

        self.send_msg(msg)
        return self.recv_msg()
Exemple #11
0
    def checkin_request(self, item_id, current_location, **kwargs):
        ''' Send a Checkin message.

        kwargs
            - institution
                -- required if default_institution is unset
            - no_block
            - return_date
            - item_properties
            - cancel
        '''

        logging.debug(
            "checkin_request() for item %s" % (item_id))

        msg = Message(
            spec = mspec.checkin,
            fixed_fields = [
                FixedField(
                    ffspec.no_block,
                    kwargs.get('no_block', 'N')),
                FixedField(ffspec.date, Message.sipdate()),
                FixedField(
                    ffspec.return_date, 
                    kwargs.get('return_date', Message.sipdate()))
            ],
        )

        msg.add_field(
            fspec.institution_id, 
            kwargs.get('institution', self.default_institution))

        msg.add_field(fspec.current_location, current_location),
        msg.add_field(fspec.item_id, item_id),

        msg.maybe_add_field(fspec.terminal_pwd, self.terminal_pwd)
        msg.maybe_add_field(
            fspec.item_properties, kwargs.get('item_properties'))
        msg.maybe_add_field(fspec.cancel, kwargs.get('cancel'))

        self.send_msg(msg)
        return self.recv_msg()