Mercurial > hg > orthanc-transfers
diff Framework/TransferQuery.cpp @ 44:f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
author | Alain Mazy <am@osimis.io> |
---|---|
date | Wed, 19 Oct 2022 21:12:57 +0200 |
parents | 44a0430d7899 |
children | 5480f176b282 |
line wrap: on
line diff
--- a/Framework/TransferQuery.cpp Tue Jul 12 17:49:40 2022 +0200 +++ b/Framework/TransferQuery.cpp Wed Oct 19 21:12:57 2022 +0200 @@ -20,6 +20,7 @@ #include "TransferQuery.h" #include <OrthancException.h> +#include "Toolbox.h" namespace OrthancPlugins @@ -74,6 +75,20 @@ { priority_ = 0; } + + if (body.isMember(KEY_SENDER_TRANSFER_ID)) + { + if (body[KEY_SENDER_TRANSFER_ID].type() != Json::stringValue) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat, std::string(KEY_SENDER_TRANSFER_ID) + " should be a string"); + } + senderTransferId_ = body[KEY_SENDER_TRANSFER_ID].asString(); + } + else + { + senderTransferId_ = Orthanc::Toolbox::GenerateUuid(); + } + } @@ -89,6 +104,15 @@ } } + const std::string& TransferQuery::GetSenderTransferID() const + { + return senderTransferId_; + } + + void TransferQuery::GetHttpHeaders(std::map<std::string, std::string>& headers) const + { + headers[HEADER_KEY_SENDER_TRANSFER_ID] = senderTransferId_; + } void TransferQuery::Serialize(Json::Value& target) const { @@ -96,7 +120,8 @@ target[KEY_PEER] = peer_; target[KEY_RESOURCES] = resources_; target[KEY_COMPRESSION] = EnumerationToString(compression_); - + target[KEY_SENDER_TRANSFER_ID] = senderTransferId_; + if (hasOriginator_) { target[KEY_ORIGINATOR_UUID] = originator_;