def document_resolver(loan_pid): """Resolve a Document given a Loan PID.""" Loan = current_circulation.loan_record_cls try: document_pid = get_field_value(Loan, loan_pid, "document_pid") except KeyError: return {} Document = current_app_ils.document_record_cls try: document = Document.get_record_by_pid(document_pid) except PIDDeletedError: obj = {} else: obj = pick( document, "authors", "cover_metadata", "document_type", "edition", "identifiers", "open_access", "pid", "publication_year", "title", ) obj["authors"] = flatten_authors(obj["authors"]) return obj
def get_document(document_pid): """Return the Document record.""" Document = current_app_ils.document_record_cls document = Document.get_record_by_pid(document_pid) obj = pick(document, "authors", "cover_metadata", "edition", "pid", "publication_year", "title", "document_type") obj["authors"] = flatten_authors(obj["authors"]) return obj
def document_resolver(order_line, doc): """Resolve the Document for the given Order Line.""" order_line["document"] = pick( doc, "authors", "cover_metadata", "edition", "pid", "publication_year", "title", ) order_line["document"]["authors"] = flatten_authors( order_line["document"]["authors"]) return doc