From 3d4e6e3918b2326413f9276e0f546042d9ceb4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sun, 5 Jun 2022 13:51:57 +0200 Subject: [PATCH] Look for element in node in addition to one --- src/loan_token.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/loan_token.cpp b/src/loan_token.cpp index 1d10086..8977ef2 100644 --- a/src/loan_token.cpp +++ b/src/loan_token.cpp @@ -31,10 +31,23 @@ namespace gourou node = doc.select_node("/envelope/loanToken/loan").node(); - if (!node) - EXCEPTION(FFI_INVALID_LOAN_TOKEN, "No loanToken/loan element in document"); + if (node) + properties["id"] = node.first_child().value(); + else + { + node = doc.select_node("/envelope/fulfillmentResult/resourceItemInfo/licenseToken/permissions/display/loan").node(); - properties["id"] = node.first_child().value(); + if (node) + properties["id"] = node.first_child().value(); + else + { + node = doc.select_node("/envelope/fulfillmentResult/resourceItemInfo/licenseToken/permissions/play/loan").node(); + if (node) + properties["id"] = node.first_child().value(); + else + EXCEPTION(FFI_INVALID_LOAN_TOKEN, "No loanToken/loan element in document"); + } + } node = doc.select_node("/envelope/loanToken/operatorURL").node(); @@ -50,6 +63,7 @@ namespace gourou else { node = doc.select_node("/envelope/fulfillmentResult/resourceItemInfo/licenseToken/permissions/play/until").node(); + if (node) properties["validity"] = node.first_child().value(); else