Mercurial > hg > orthanc-transfers
annotate Framework/TransferQuery.cpp @ 70:3f43bfbea00e
fix deprecated calls
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 22 Mar 2024 15:37:40 +0100 |
parents | 5480f176b282 |
children | 1e396fb509ca |
rev | line source |
---|---|
0 | 1 /** |
2 * Transfers accelerator plugin for Orthanc | |
33
44a0430d7899
upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
20
diff
changeset
|
3 * Copyright (C) 2018-2021 Osimis S.A., Belgium |
0 | 4 * |
5 * This program is free software: you can redistribute it and/or | |
6 * modify it under the terms of the GNU Affero General Public License | |
7 * as published by the Free Software Foundation, either version 3 of | |
8 * the License, or (at your option) any later version. | |
9 * | |
10 * This program is distributed in the hope that it will be useful, but | |
11 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 * Affero General Public License for more details. | |
14 * | |
15 * You should have received a copy of the GNU Affero General Public License | |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 **/ | |
18 | |
19 | |
20 #include "TransferQuery.h" | |
21 | |
20 | 22 #include <OrthancException.h> |
44
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
23 #include "Toolbox.h" |
0 | 24 |
25 | |
26 namespace OrthancPlugins | |
27 { | |
28 TransferQuery::TransferQuery(const Json::Value& body) | |
29 { | |
30 if (body.type() != Json::objectValue || | |
31 !body.isMember(KEY_RESOURCES) || | |
32 !body.isMember(KEY_PEER) || | |
33 !body.isMember(KEY_COMPRESSION) || | |
34 body[KEY_RESOURCES].type() != Json::arrayValue || | |
35 body[KEY_PEER].type() != Json::stringValue || | |
36 body[KEY_COMPRESSION].type() != Json::stringValue) | |
37 { | |
38 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat); | |
39 } | |
40 | |
41 peer_ = body[KEY_PEER].asString(); | |
42 resources_ = body[KEY_RESOURCES]; | |
43 compression_ = StringToBucketCompression(body[KEY_COMPRESSION].asString()); | |
44 | |
45 if (body.isMember(KEY_ORIGINATOR_UUID)) | |
46 { | |
47 if (body[KEY_ORIGINATOR_UUID].type() != Json::stringValue) | |
48 { | |
49 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat); | |
50 } | |
51 else | |
52 { | |
53 hasOriginator_ = true; | |
54 originator_ = body[KEY_ORIGINATOR_UUID].asString(); | |
55 } | |
56 } | |
57 else | |
58 { | |
59 hasOriginator_ = false; | |
60 } | |
61 | |
62 if (body.isMember(KEY_PRIORITY)) | |
63 { | |
64 if (body[KEY_PRIORITY].type() != Json::intValue && | |
65 body[KEY_PRIORITY].type() != Json::uintValue) | |
66 { | |
67 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat); | |
68 } | |
69 else | |
70 { | |
71 priority_ = body[KEY_PRIORITY].asInt(); | |
72 } | |
73 } | |
74 else | |
75 { | |
76 priority_ = 0; | |
77 } | |
44
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
78 |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
79 if (body.isMember(KEY_SENDER_TRANSFER_ID)) |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
80 { |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
81 if (body[KEY_SENDER_TRANSFER_ID].type() != Json::stringValue) |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
82 { |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
83 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat, std::string(KEY_SENDER_TRANSFER_ID) + " should be a string"); |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
84 } |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
85 senderTransferId_ = body[KEY_SENDER_TRANSFER_ID].asString(); |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
86 } |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
87 else |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
88 { |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
89 senderTransferId_ = Orthanc::Toolbox::GenerateUuid(); |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
90 } |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
91 |
0 | 92 } |
93 | |
94 | |
95 const std::string& TransferQuery::GetOriginator() const | |
96 { | |
97 if (hasOriginator_) | |
98 { | |
99 return originator_; | |
100 } | |
101 else | |
102 { | |
103 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
104 } | |
105 } | |
106 | |
44
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
107 const std::string& TransferQuery::GetSenderTransferID() const |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
108 { |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
109 return senderTransferId_; |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
110 } |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
111 |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
112 void TransferQuery::GetHttpHeaders(std::map<std::string, std::string>& headers) const |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
113 { |
56 | 114 headers["Expect"] = ""; // to avoid HttpClient performance warning |
44
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
115 headers[HEADER_KEY_SENDER_TRANSFER_ID] = senderTransferId_; |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
116 } |
0 | 117 |
118 void TransferQuery::Serialize(Json::Value& target) const | |
119 { | |
120 target = Json::objectValue; | |
121 target[KEY_PEER] = peer_; | |
122 target[KEY_RESOURCES] = resources_; | |
123 target[KEY_COMPRESSION] = EnumerationToString(compression_); | |
44
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
124 target[KEY_SENDER_TRANSFER_ID] = senderTransferId_; |
f4e828607f02
Added 'SenderTransferID' option that is added as an HTTP header in outgoing requests in PushMode
Alain Mazy <am@osimis.io>
parents:
33
diff
changeset
|
125 |
0 | 126 if (hasOriginator_) |
127 { | |
128 target[KEY_ORIGINATOR_UUID] = originator_; | |
129 } | |
130 } | |
131 } |