class Skala::AlephAdapter::RenewUserLoans
Public Instance Methods
call(username, loan_ids = nil, options = {})
click to toggle source
# File lib/skala/aleph_adapter/renew_user_loans.rb, line 9 def call(username, loan_ids = nil, options = {}) resolved_user_id = resolve_user(username) if loan_ids.blank? # renew all raw_aleph_response = adapter.restful_api.patron(resolved_user_id).circulationActions.loans.post successfully_renewed_loans_xpath = "//loan/status[contains(text(), 'success')]/parent::*" adapter.class::RenewUserLoans::Result.new( renewed_loans: begin Nokogiri::XML(raw_aleph_response).xpath(successfully_renewed_loans_xpath).map do |_loan| { id: _loan.attr("id"), due_date: new_due_date(_loan) } end end, source: raw_aleph_response ) else raise "Unimplemented" end end
Private Instance Methods
new_due_date(loan)
click to toggle source
# File lib/skala/aleph_adapter/renew_user_loans.rb, line 34 def new_due_date(loan) if date = loan.at_xpath("./new-due-date").try(:content) Date.strptime(date, "%Y%m%d") end end