Mercurial > hg > orthanc-transfers
comparison 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 |
comparison
equal
deleted
inserted
replaced
43:c3fefbb11321 | 44:f4e828607f02 |
---|---|
18 | 18 |
19 | 19 |
20 #include "TransferQuery.h" | 20 #include "TransferQuery.h" |
21 | 21 |
22 #include <OrthancException.h> | 22 #include <OrthancException.h> |
23 #include "Toolbox.h" | |
23 | 24 |
24 | 25 |
25 namespace OrthancPlugins | 26 namespace OrthancPlugins |
26 { | 27 { |
27 TransferQuery::TransferQuery(const Json::Value& body) | 28 TransferQuery::TransferQuery(const Json::Value& body) |
72 } | 73 } |
73 else | 74 else |
74 { | 75 { |
75 priority_ = 0; | 76 priority_ = 0; |
76 } | 77 } |
78 | |
79 if (body.isMember(KEY_SENDER_TRANSFER_ID)) | |
80 { | |
81 if (body[KEY_SENDER_TRANSFER_ID].type() != Json::stringValue) | |
82 { | |
83 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat, std::string(KEY_SENDER_TRANSFER_ID) + " should be a string"); | |
84 } | |
85 senderTransferId_ = body[KEY_SENDER_TRANSFER_ID].asString(); | |
86 } | |
87 else | |
88 { | |
89 senderTransferId_ = Orthanc::Toolbox::GenerateUuid(); | |
90 } | |
91 | |
77 } | 92 } |
78 | 93 |
79 | 94 |
80 const std::string& TransferQuery::GetOriginator() const | 95 const std::string& TransferQuery::GetOriginator() const |
81 { | 96 { |
87 { | 102 { |
88 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 103 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
89 } | 104 } |
90 } | 105 } |
91 | 106 |
107 const std::string& TransferQuery::GetSenderTransferID() const | |
108 { | |
109 return senderTransferId_; | |
110 } | |
111 | |
112 void TransferQuery::GetHttpHeaders(std::map<std::string, std::string>& headers) const | |
113 { | |
114 headers[HEADER_KEY_SENDER_TRANSFER_ID] = senderTransferId_; | |
115 } | |
92 | 116 |
93 void TransferQuery::Serialize(Json::Value& target) const | 117 void TransferQuery::Serialize(Json::Value& target) const |
94 { | 118 { |
95 target = Json::objectValue; | 119 target = Json::objectValue; |
96 target[KEY_PEER] = peer_; | 120 target[KEY_PEER] = peer_; |
97 target[KEY_RESOURCES] = resources_; | 121 target[KEY_RESOURCES] = resources_; |
98 target[KEY_COMPRESSION] = EnumerationToString(compression_); | 122 target[KEY_COMPRESSION] = EnumerationToString(compression_); |
99 | 123 target[KEY_SENDER_TRANSFER_ID] = senderTransferId_; |
124 | |
100 if (hasOriginator_) | 125 if (hasOriginator_) |
101 { | 126 { |
102 target[KEY_ORIGINATOR_UUID] = originator_; | 127 target[KEY_ORIGINATOR_UUID] = originator_; |
103 } | 128 } |
104 } | 129 } |