Parcourir la source

Add OnsMessageDetail for query message body.

sdk-team il y a 3 ans
Parent
commit
84f0671771

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1419
+1.36.1420

+ 4 - 0
ons/CMakeLists.txt

@@ -59,6 +59,8 @@ set(ons_public_header_model
 	include/alibabacloud/ons/model/OnsInstanceInServiceListResult.h
 	include/alibabacloud/ons/model/OnsInstanceUpdateRequest.h
 	include/alibabacloud/ons/model/OnsInstanceUpdateResult.h
+	include/alibabacloud/ons/model/OnsMessageDetailRequest.h
+	include/alibabacloud/ons/model/OnsMessageDetailResult.h
 	include/alibabacloud/ons/model/OnsMessageGetByKeyRequest.h
 	include/alibabacloud/ons/model/OnsMessageGetByKeyResult.h
 	include/alibabacloud/ons/model/OnsMessageGetByMsgIdRequest.h
@@ -140,6 +142,8 @@ set(ons_src
 	src/model/OnsInstanceInServiceListResult.cc
 	src/model/OnsInstanceUpdateRequest.cc
 	src/model/OnsInstanceUpdateResult.cc
+	src/model/OnsMessageDetailRequest.cc
+	src/model/OnsMessageDetailResult.cc
 	src/model/OnsMessageGetByKeyRequest.cc
 	src/model/OnsMessageGetByKeyResult.cc
 	src/model/OnsMessageGetByMsgIdRequest.cc

+ 8 - 0
ons/include/alibabacloud/ons/OnsClient.h

@@ -60,6 +60,8 @@
 #include "model/OnsInstanceInServiceListResult.h"
 #include "model/OnsInstanceUpdateRequest.h"
 #include "model/OnsInstanceUpdateResult.h"
+#include "model/OnsMessageDetailRequest.h"
+#include "model/OnsMessageDetailResult.h"
 #include "model/OnsMessageGetByKeyRequest.h"
 #include "model/OnsMessageGetByKeyResult.h"
 #include "model/OnsMessageGetByMsgIdRequest.h"
@@ -166,6 +168,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::OnsInstanceUpdateResult> OnsInstanceUpdateOutcome;
 			typedef std::future<OnsInstanceUpdateOutcome> OnsInstanceUpdateOutcomeCallable;
 			typedef std::function<void(const OnsClient*, const Model::OnsInstanceUpdateRequest&, const OnsInstanceUpdateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OnsInstanceUpdateAsyncHandler;
+			typedef Outcome<Error, Model::OnsMessageDetailResult> OnsMessageDetailOutcome;
+			typedef std::future<OnsMessageDetailOutcome> OnsMessageDetailOutcomeCallable;
+			typedef std::function<void(const OnsClient*, const Model::OnsMessageDetailRequest&, const OnsMessageDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OnsMessageDetailAsyncHandler;
 			typedef Outcome<Error, Model::OnsMessageGetByKeyResult> OnsMessageGetByKeyOutcome;
 			typedef std::future<OnsMessageGetByKeyOutcome> OnsMessageGetByKeyOutcomeCallable;
 			typedef std::function<void(const OnsClient*, const Model::OnsMessageGetByKeyRequest&, const OnsMessageGetByKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OnsMessageGetByKeyAsyncHandler;
@@ -288,6 +293,9 @@ namespace AlibabaCloud
 			OnsInstanceUpdateOutcome onsInstanceUpdate(const Model::OnsInstanceUpdateRequest &request)const;
 			void onsInstanceUpdateAsync(const Model::OnsInstanceUpdateRequest& request, const OnsInstanceUpdateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			OnsInstanceUpdateOutcomeCallable onsInstanceUpdateCallable(const Model::OnsInstanceUpdateRequest& request) const;
+			OnsMessageDetailOutcome onsMessageDetail(const Model::OnsMessageDetailRequest &request)const;
+			void onsMessageDetailAsync(const Model::OnsMessageDetailRequest& request, const OnsMessageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			OnsMessageDetailOutcomeCallable onsMessageDetailCallable(const Model::OnsMessageDetailRequest& request) const;
 			OnsMessageGetByKeyOutcome onsMessageGetByKey(const Model::OnsMessageGetByKeyRequest &request)const;
 			void onsMessageGetByKeyAsync(const Model::OnsMessageGetByKeyRequest& request, const OnsMessageGetByKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			OnsMessageGetByKeyOutcomeCallable onsMessageGetByKeyCallable(const Model::OnsMessageGetByKeyRequest& request) const;

+ 3 - 0
ons/include/alibabacloud/ons/model/OnsGroupCreateRequest.h

@@ -34,6 +34,8 @@ public:
 	void setGroupId(const std::string &groupId);
 	std::string getRemark() const;
 	void setRemark(const std::string &remark);
+	std::string getUserId() const;
+	void setUserId(const std::string &userId);
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
 	std::string getGroupType() const;
@@ -42,6 +44,7 @@ public:
 private:
 	std::string groupId_;
 	std::string remark_;
+	std::string userId_;
 	std::string instanceId_;
 	std::string groupType_;
 };

+ 3 - 0
ons/include/alibabacloud/ons/model/OnsInstanceBaseInfoRequest.h

@@ -30,10 +30,13 @@ class ALIBABACLOUD_ONS_EXPORT OnsInstanceBaseInfoRequest : public RpcServiceRequ
 public:
 	OnsInstanceBaseInfoRequest();
 	~OnsInstanceBaseInfoRequest();
+	std::string getUserId() const;
+	void setUserId(const std::string &userId);
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
 
 private:
+	std::string userId_;
 	std::string instanceId_;
 };
 } // namespace Model

+ 1 - 0
ons/include/alibabacloud/ons/model/OnsInstanceInServiceListResult.h

@@ -43,6 +43,7 @@ namespace AlibabaCloud
 					long releaseTime;
 					std::string instanceId;
 					int instanceStatus;
+					long createTime;
 					bool independentNaming;
 					int instanceType;
 					std::vector<InstanceVO::Tag> tags;

+ 48 - 0
ons/include/alibabacloud/ons/model/OnsMessageDetailRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILREQUEST_H_
+#define ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILREQUEST_H_
+
+#include <alibabacloud/ons/OnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ons {
+namespace Model {
+class ALIBABACLOUD_ONS_EXPORT OnsMessageDetailRequest : public RpcServiceRequest {
+public:
+	OnsMessageDetailRequest();
+	~OnsMessageDetailRequest();
+	std::string getMsgId() const;
+	void setMsgId(const std::string &msgId);
+	std::string getInstanceId() const;
+	void setInstanceId(const std::string &instanceId);
+	std::string getTopic() const;
+	void setTopic(const std::string &topic);
+
+private:
+	std::string msgId_;
+	std::string instanceId_;
+	std::string topic_;
+};
+} // namespace Model
+} // namespace Ons
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILREQUEST_H_

+ 75 - 0
ons/include/alibabacloud/ons/model/OnsMessageDetailResult.h

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILRESULT_H_
+#define ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ons/OnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ons
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ONS_EXPORT OnsMessageDetailResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct MessageProperty
+					{
+						std::string value;
+						std::string name;
+					};
+					long bornTimestamp;
+					std::string offsetId;
+					std::string instanceId;
+					int storeSize;
+					std::string bornHost;
+					int bodyCRC;
+					int flag;
+					std::string msgId;
+					long storeTimestamp;
+					std::string storeHost;
+					std::vector<MessageProperty> propertyList;
+					std::string topic;
+					int reconsumeTimes;
+					std::string body;
+				};
+
+
+				OnsMessageDetailResult();
+				explicit OnsMessageDetailResult(const std::string &payload);
+				~OnsMessageDetailResult();
+				Data getData()const;
+				std::string getHelpUrl()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+				std::string helpUrl_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ONS_MODEL_ONSMESSAGEDETAILRESULT_H_

+ 3 - 0
ons/include/alibabacloud/ons/model/OnsTopicCreateRequest.h

@@ -34,6 +34,8 @@ public:
 	void setMessageType(int messageType);
 	std::string getRemark() const;
 	void setRemark(const std::string &remark);
+	std::string getUserId() const;
+	void setUserId(const std::string &userId);
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
 	std::string getTopic() const;
@@ -42,6 +44,7 @@ public:
 private:
 	int messageType_;
 	std::string remark_;
+	std::string userId_;
 	std::string instanceId_;
 	std::string topic_;
 };

+ 36 - 0
ons/src/OnsClient.cc

@@ -735,6 +735,42 @@ OnsClient::OnsInstanceUpdateOutcomeCallable OnsClient::onsInstanceUpdateCallable
 	return task->get_future();
 }
 
+OnsClient::OnsMessageDetailOutcome OnsClient::onsMessageDetail(const OnsMessageDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return OnsMessageDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return OnsMessageDetailOutcome(OnsMessageDetailResult(outcome.result()));
+	else
+		return OnsMessageDetailOutcome(outcome.error());
+}
+
+void OnsClient::onsMessageDetailAsync(const OnsMessageDetailRequest& request, const OnsMessageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, onsMessageDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+OnsClient::OnsMessageDetailOutcomeCallable OnsClient::onsMessageDetailCallable(const OnsMessageDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<OnsMessageDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->onsMessageDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 OnsClient::OnsMessageGetByKeyOutcome OnsClient::onsMessageGetByKey(const OnsMessageGetByKeyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 9 - 0
ons/src/model/OnsGroupCreateRequest.cc

@@ -43,6 +43,15 @@ void OnsGroupCreateRequest::setRemark(const std::string &remark) {
   setParameter(std::string("Remark"), remark);
 }
 
+std::string OnsGroupCreateRequest::getUserId() const {
+  return userId_;
+}
+
+void OnsGroupCreateRequest::setUserId(const std::string &userId) {
+  userId_ = userId;
+  setParameter(std::string("UserId"), userId);
+}
+
 std::string OnsGroupCreateRequest::getInstanceId() const {
   return instanceId_;
 }

+ 9 - 0
ons/src/model/OnsInstanceBaseInfoRequest.cc

@@ -25,6 +25,15 @@ OnsInstanceBaseInfoRequest::OnsInstanceBaseInfoRequest()
 
 OnsInstanceBaseInfoRequest::~OnsInstanceBaseInfoRequest() {}
 
+std::string OnsInstanceBaseInfoRequest::getUserId() const {
+  return userId_;
+}
+
+void OnsInstanceBaseInfoRequest::setUserId(const std::string &userId) {
+  userId_ = userId;
+  setParameter(std::string("UserId"), userId);
+}
+
 std::string OnsInstanceBaseInfoRequest::getInstanceId() const {
   return instanceId_;
 }

+ 2 - 0
ons/src/model/OnsInstanceInServiceListResult.cc

@@ -55,6 +55,8 @@ void OnsInstanceInServiceListResult::parse(const std::string &payload)
 			dataObject.instanceId = valueDataInstanceVO["InstanceId"].asString();
 		if(!valueDataInstanceVO["InstanceType"].isNull())
 			dataObject.instanceType = std::stoi(valueDataInstanceVO["InstanceType"].asString());
+		if(!valueDataInstanceVO["CreateTime"].isNull())
+			dataObject.createTime = std::stol(valueDataInstanceVO["CreateTime"].asString());
 		auto allTagsNode = valueDataInstanceVO["Tags"]["Tag"];
 		for (auto valueDataInstanceVOTagsTag : allTagsNode)
 		{

+ 54 - 0
ons/src/model/OnsMessageDetailRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ons/model/OnsMessageDetailRequest.h>
+
+using AlibabaCloud::Ons::Model::OnsMessageDetailRequest;
+
+OnsMessageDetailRequest::OnsMessageDetailRequest()
+    : RpcServiceRequest("ons", "2019-02-14", "OnsMessageDetail") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+OnsMessageDetailRequest::~OnsMessageDetailRequest() {}
+
+std::string OnsMessageDetailRequest::getMsgId() const {
+  return msgId_;
+}
+
+void OnsMessageDetailRequest::setMsgId(const std::string &msgId) {
+  msgId_ = msgId;
+  setParameter(std::string("MsgId"), msgId);
+}
+
+std::string OnsMessageDetailRequest::getInstanceId() const {
+  return instanceId_;
+}
+
+void OnsMessageDetailRequest::setInstanceId(const std::string &instanceId) {
+  instanceId_ = instanceId;
+  setParameter(std::string("InstanceId"), instanceId);
+}
+
+std::string OnsMessageDetailRequest::getTopic() const {
+  return topic_;
+}
+
+void OnsMessageDetailRequest::setTopic(const std::string &topic) {
+  topic_ = topic;
+  setParameter(std::string("Topic"), topic);
+}
+

+ 93 - 0
ons/src/model/OnsMessageDetailResult.cc

@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ons/model/OnsMessageDetailResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ons;
+using namespace AlibabaCloud::Ons::Model;
+
+OnsMessageDetailResult::OnsMessageDetailResult() :
+	ServiceResult()
+{}
+
+OnsMessageDetailResult::OnsMessageDetailResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+OnsMessageDetailResult::~OnsMessageDetailResult()
+{}
+
+void OnsMessageDetailResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["OffsetId"].isNull())
+		data_.offsetId = dataNode["OffsetId"].asString();
+	if(!dataNode["StoreSize"].isNull())
+		data_.storeSize = std::stoi(dataNode["StoreSize"].asString());
+	if(!dataNode["ReconsumeTimes"].isNull())
+		data_.reconsumeTimes = std::stoi(dataNode["ReconsumeTimes"].asString());
+	if(!dataNode["StoreTimestamp"].isNull())
+		data_.storeTimestamp = std::stol(dataNode["StoreTimestamp"].asString());
+	if(!dataNode["Body"].isNull())
+		data_.body = dataNode["Body"].asString();
+	if(!dataNode["InstanceId"].isNull())
+		data_.instanceId = dataNode["InstanceId"].asString();
+	if(!dataNode["MsgId"].isNull())
+		data_.msgId = dataNode["MsgId"].asString();
+	if(!dataNode["Flag"].isNull())
+		data_.flag = std::stoi(dataNode["Flag"].asString());
+	if(!dataNode["StoreHost"].isNull())
+		data_.storeHost = dataNode["StoreHost"].asString();
+	if(!dataNode["Topic"].isNull())
+		data_.topic = dataNode["Topic"].asString();
+	if(!dataNode["BornTimestamp"].isNull())
+		data_.bornTimestamp = std::stol(dataNode["BornTimestamp"].asString());
+	if(!dataNode["BodyCRC"].isNull())
+		data_.bodyCRC = std::stoi(dataNode["BodyCRC"].asString());
+	if(!dataNode["BornHost"].isNull())
+		data_.bornHost = dataNode["BornHost"].asString();
+	auto allPropertyListNode = dataNode["PropertyList"]["MessageProperty"];
+	for (auto dataNodePropertyListMessageProperty : allPropertyListNode)
+	{
+		Data::MessageProperty messagePropertyObject;
+		if(!dataNodePropertyListMessageProperty["Value"].isNull())
+			messagePropertyObject.value = dataNodePropertyListMessageProperty["Value"].asString();
+		if(!dataNodePropertyListMessageProperty["Name"].isNull())
+			messagePropertyObject.name = dataNodePropertyListMessageProperty["Name"].asString();
+		data_.propertyList.push_back(messagePropertyObject);
+	}
+	if(!value["HelpUrl"].isNull())
+		helpUrl_ = value["HelpUrl"].asString();
+
+}
+
+OnsMessageDetailResult::Data OnsMessageDetailResult::getData()const
+{
+	return data_;
+}
+
+std::string OnsMessageDetailResult::getHelpUrl()const
+{
+	return helpUrl_;
+}
+

+ 9 - 0
ons/src/model/OnsTopicCreateRequest.cc

@@ -43,6 +43,15 @@ void OnsTopicCreateRequest::setRemark(const std::string &remark) {
   setParameter(std::string("Remark"), remark);
 }
 
+std::string OnsTopicCreateRequest::getUserId() const {
+  return userId_;
+}
+
+void OnsTopicCreateRequest::setUserId(const std::string &userId) {
+  userId_ = userId;
+  setParameter(std::string("UserId"), userId);
+}
+
 std::string OnsTopicCreateRequest::getInstanceId() const {
   return instanceId_;
 }