ChatApp third version.
This commit is contained in:
@@ -21,11 +21,15 @@ set(cams_public_header
|
||||
include/alibabacloud/cams/CamsExport.h )
|
||||
|
||||
set(cams_public_header_model
|
||||
include/alibabacloud/cams/model/CheckContactsRequest.h
|
||||
include/alibabacloud/cams/model/CheckContactsResult.h
|
||||
include/alibabacloud/cams/model/SendMessageRequest.h
|
||||
include/alibabacloud/cams/model/SendMessageResult.h )
|
||||
|
||||
set(cams_src
|
||||
src/CamsClient.cc
|
||||
src/model/CheckContactsRequest.cc
|
||||
src/model/CheckContactsResult.cc
|
||||
src/model/SendMessageRequest.cc
|
||||
src/model/SendMessageResult.cc )
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#include <alibabacloud/core/EndpointProvider.h>
|
||||
#include <alibabacloud/core/RpcServiceClient.h>
|
||||
#include "CamsExport.h"
|
||||
#include "model/CheckContactsRequest.h"
|
||||
#include "model/CheckContactsResult.h"
|
||||
#include "model/SendMessageRequest.h"
|
||||
#include "model/SendMessageResult.h"
|
||||
|
||||
@@ -33,6 +35,9 @@ namespace AlibabaCloud
|
||||
class ALIBABACLOUD_CAMS_EXPORT CamsClient : public RpcServiceClient
|
||||
{
|
||||
public:
|
||||
typedef Outcome<Error, Model::CheckContactsResult> CheckContactsOutcome;
|
||||
typedef std::future<CheckContactsOutcome> CheckContactsOutcomeCallable;
|
||||
typedef std::function<void(const CamsClient*, const Model::CheckContactsRequest&, const CheckContactsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CheckContactsAsyncHandler;
|
||||
typedef Outcome<Error, Model::SendMessageResult> SendMessageOutcome;
|
||||
typedef std::future<SendMessageOutcome> SendMessageOutcomeCallable;
|
||||
typedef std::function<void(const CamsClient*, const Model::SendMessageRequest&, const SendMessageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendMessageAsyncHandler;
|
||||
@@ -41,6 +46,9 @@ namespace AlibabaCloud
|
||||
CamsClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
|
||||
CamsClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
|
||||
~CamsClient();
|
||||
CheckContactsOutcome checkContacts(const Model::CheckContactsRequest &request)const;
|
||||
void checkContactsAsync(const Model::CheckContactsRequest& request, const CheckContactsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
|
||||
CheckContactsOutcomeCallable checkContactsCallable(const Model::CheckContactsRequest& request) const;
|
||||
SendMessageOutcome sendMessage(const Model::SendMessageRequest &request)const;
|
||||
void sendMessageAsync(const Model::SendMessageRequest& request, const SendMessageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
|
||||
SendMessageOutcomeCallable sendMessageCallable(const Model::SendMessageRequest& request) const;
|
||||
|
||||
66
cams/include/alibabacloud/cams/model/CheckContactsRequest.h
Normal file
66
cams/include/alibabacloud/cams/model/CheckContactsRequest.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* 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_CAMS_MODEL_CHECKCONTACTSREQUEST_H_
|
||||
#define ALIBABACLOUD_CAMS_MODEL_CHECKCONTACTSREQUEST_H_
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <alibabacloud/core/RpcServiceRequest.h>
|
||||
#include <alibabacloud/cams/CamsExport.h>
|
||||
|
||||
namespace AlibabaCloud
|
||||
{
|
||||
namespace Cams
|
||||
{
|
||||
namespace Model
|
||||
{
|
||||
class ALIBABACLOUD_CAMS_EXPORT CheckContactsRequest : public RpcServiceRequest
|
||||
{
|
||||
|
||||
public:
|
||||
CheckContactsRequest();
|
||||
~CheckContactsRequest();
|
||||
|
||||
long getResourceOwnerId()const;
|
||||
void setResourceOwnerId(long resourceOwnerId);
|
||||
std::string getAccessKeyId()const;
|
||||
void setAccessKeyId(const std::string& accessKeyId);
|
||||
std::string getChannelType()const;
|
||||
void setChannelType(const std::string& channelType);
|
||||
std::string getFrom()const;
|
||||
void setFrom(const std::string& from);
|
||||
std::string getResourceOwnerAccount()const;
|
||||
void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
std::string getContacts()const;
|
||||
void setContacts(const std::string& contacts);
|
||||
|
||||
private:
|
||||
long resourceOwnerId_;
|
||||
std::string accessKeyId_;
|
||||
std::string channelType_;
|
||||
std::string from_;
|
||||
std::string resourceOwnerAccount_;
|
||||
long ownerId_;
|
||||
std::string contacts_;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // !ALIBABACLOUD_CAMS_MODEL_CHECKCONTACTSREQUEST_H_
|
||||
60
cams/include/alibabacloud/cams/model/CheckContactsResult.h
Normal file
60
cams/include/alibabacloud/cams/model/CheckContactsResult.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* 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_CAMS_MODEL_CHECKCONTACTSRESULT_H_
|
||||
#define ALIBABACLOUD_CAMS_MODEL_CHECKCONTACTSRESULT_H_
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <alibabacloud/core/ServiceResult.h>
|
||||
#include <alibabacloud/cams/CamsExport.h>
|
||||
|
||||
namespace AlibabaCloud
|
||||
{
|
||||
namespace Cams
|
||||
{
|
||||
namespace Model
|
||||
{
|
||||
class ALIBABACLOUD_CAMS_EXPORT CheckContactsResult : public ServiceResult
|
||||
{
|
||||
public:
|
||||
struct ContactStatus
|
||||
{
|
||||
std::string status;
|
||||
std::string phoneNumber;
|
||||
};
|
||||
|
||||
|
||||
CheckContactsResult();
|
||||
explicit CheckContactsResult(const std::string &payload);
|
||||
~CheckContactsResult();
|
||||
std::vector<ContactStatus> getContacts()const;
|
||||
std::string getResultMessage()const;
|
||||
std::string getResultCode()const;
|
||||
|
||||
protected:
|
||||
void parse(const std::string &payload);
|
||||
private:
|
||||
std::vector<ContactStatus> contacts_;
|
||||
std::string resultMessage_;
|
||||
std::string resultCode_;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // !ALIBABACLOUD_CAMS_MODEL_CHECKCONTACTSRESULT_H_
|
||||
@@ -37,6 +37,8 @@ namespace AlibabaCloud
|
||||
|
||||
long getResourceOwnerId()const;
|
||||
void setResourceOwnerId(long resourceOwnerId);
|
||||
std::string getMessageType()const;
|
||||
void setMessageType(const std::string& messageType);
|
||||
std::string getTemplateBodyParams()const;
|
||||
void setTemplateBodyParams(const std::string& templateBodyParams);
|
||||
std::string getLink()const;
|
||||
@@ -45,14 +47,14 @@ namespace AlibabaCloud
|
||||
void setCaption(const std::string& caption);
|
||||
std::string getType()const;
|
||||
void setType(const std::string& type);
|
||||
std::string getBody()const;
|
||||
void setBody(const std::string& body);
|
||||
std::string getAccessKeyId()const;
|
||||
void setAccessKeyId(const std::string& accessKeyId);
|
||||
std::string getChannelType()const;
|
||||
void setChannelType(const std::string& channelType);
|
||||
std::string getFrom()const;
|
||||
void setFrom(const std::string& from);
|
||||
std::string getText()const;
|
||||
void setText(const std::string& text);
|
||||
std::string getResourceOwnerAccount()const;
|
||||
void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
|
||||
long getOwnerId()const;
|
||||
@@ -61,24 +63,22 @@ namespace AlibabaCloud
|
||||
void setTo(const std::string& to);
|
||||
std::string getTemplateCode()const;
|
||||
void setTemplateCode(const std::string& templateCode);
|
||||
std::string getMediaType()const;
|
||||
void setMediaType(const std::string& mediaType);
|
||||
|
||||
private:
|
||||
long resourceOwnerId_;
|
||||
std::string messageType_;
|
||||
std::string templateBodyParams_;
|
||||
std::string link_;
|
||||
std::string caption_;
|
||||
std::string type_;
|
||||
std::string body_;
|
||||
std::string accessKeyId_;
|
||||
std::string channelType_;
|
||||
std::string from_;
|
||||
std::string text_;
|
||||
std::string resourceOwnerAccount_;
|
||||
long ownerId_;
|
||||
std::string to_;
|
||||
std::string templateCode_;
|
||||
std::string mediaType_;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -51,6 +51,42 @@ CamsClient::CamsClient(const std::string & accessKeyId, const std::string & acce
|
||||
CamsClient::~CamsClient()
|
||||
{}
|
||||
|
||||
CamsClient::CheckContactsOutcome CamsClient::checkContacts(const CheckContactsRequest &request) const
|
||||
{
|
||||
auto endpointOutcome = endpointProvider_->getEndpoint();
|
||||
if (!endpointOutcome.isSuccess())
|
||||
return CheckContactsOutcome(endpointOutcome.error());
|
||||
|
||||
auto outcome = makeRequest(endpointOutcome.result(), request);
|
||||
|
||||
if (outcome.isSuccess())
|
||||
return CheckContactsOutcome(CheckContactsResult(outcome.result()));
|
||||
else
|
||||
return CheckContactsOutcome(outcome.error());
|
||||
}
|
||||
|
||||
void CamsClient::checkContactsAsync(const CheckContactsRequest& request, const CheckContactsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
|
||||
{
|
||||
auto fn = [this, request, handler, context]()
|
||||
{
|
||||
handler(this, request, checkContacts(request), context);
|
||||
};
|
||||
|
||||
asyncExecute(new Runnable(fn));
|
||||
}
|
||||
|
||||
CamsClient::CheckContactsOutcomeCallable CamsClient::checkContactsCallable(const CheckContactsRequest &request) const
|
||||
{
|
||||
auto task = std::make_shared<std::packaged_task<CheckContactsOutcome()>>(
|
||||
[this, request]()
|
||||
{
|
||||
return this->checkContacts(request);
|
||||
});
|
||||
|
||||
asyncExecute(new Runnable([task]() { (*task)(); }));
|
||||
return task->get_future();
|
||||
}
|
||||
|
||||
CamsClient::SendMessageOutcome CamsClient::sendMessage(const SendMessageRequest &request) const
|
||||
{
|
||||
auto endpointOutcome = endpointProvider_->getEndpoint();
|
||||
|
||||
106
cams/src/model/CheckContactsRequest.cc
Normal file
106
cams/src/model/CheckContactsRequest.cc
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* 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/cams/model/CheckContactsRequest.h>
|
||||
|
||||
using AlibabaCloud::Cams::Model::CheckContactsRequest;
|
||||
|
||||
CheckContactsRequest::CheckContactsRequest() :
|
||||
RpcServiceRequest("cams", "2020-06-06", "CheckContacts")
|
||||
{
|
||||
setMethod(HttpRequest::Method::Post);
|
||||
}
|
||||
|
||||
CheckContactsRequest::~CheckContactsRequest()
|
||||
{}
|
||||
|
||||
long CheckContactsRequest::getResourceOwnerId()const
|
||||
{
|
||||
return resourceOwnerId_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setResourceOwnerId(long resourceOwnerId)
|
||||
{
|
||||
resourceOwnerId_ = resourceOwnerId;
|
||||
setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
|
||||
}
|
||||
|
||||
std::string CheckContactsRequest::getAccessKeyId()const
|
||||
{
|
||||
return accessKeyId_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setAccessKeyId(const std::string& accessKeyId)
|
||||
{
|
||||
accessKeyId_ = accessKeyId;
|
||||
setParameter("AccessKeyId", accessKeyId);
|
||||
}
|
||||
|
||||
std::string CheckContactsRequest::getChannelType()const
|
||||
{
|
||||
return channelType_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setChannelType(const std::string& channelType)
|
||||
{
|
||||
channelType_ = channelType;
|
||||
setBodyParameter("ChannelType", channelType);
|
||||
}
|
||||
|
||||
std::string CheckContactsRequest::getFrom()const
|
||||
{
|
||||
return from_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setFrom(const std::string& from)
|
||||
{
|
||||
from_ = from;
|
||||
setBodyParameter("From", from);
|
||||
}
|
||||
|
||||
std::string CheckContactsRequest::getResourceOwnerAccount()const
|
||||
{
|
||||
return resourceOwnerAccount_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
|
||||
{
|
||||
resourceOwnerAccount_ = resourceOwnerAccount;
|
||||
setParameter("ResourceOwnerAccount", resourceOwnerAccount);
|
||||
}
|
||||
|
||||
long CheckContactsRequest::getOwnerId()const
|
||||
{
|
||||
return ownerId_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setOwnerId(long ownerId)
|
||||
{
|
||||
ownerId_ = ownerId;
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
std::string CheckContactsRequest::getContacts()const
|
||||
{
|
||||
return contacts_;
|
||||
}
|
||||
|
||||
void CheckContactsRequest::setContacts(const std::string& contacts)
|
||||
{
|
||||
contacts_ = contacts;
|
||||
setBodyParameter("Contacts", contacts);
|
||||
}
|
||||
|
||||
73
cams/src/model/CheckContactsResult.cc
Normal file
73
cams/src/model/CheckContactsResult.cc
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* 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/cams/model/CheckContactsResult.h>
|
||||
#include <json/json.h>
|
||||
|
||||
using namespace AlibabaCloud::Cams;
|
||||
using namespace AlibabaCloud::Cams::Model;
|
||||
|
||||
CheckContactsResult::CheckContactsResult() :
|
||||
ServiceResult()
|
||||
{}
|
||||
|
||||
CheckContactsResult::CheckContactsResult(const std::string &payload) :
|
||||
ServiceResult()
|
||||
{
|
||||
parse(payload);
|
||||
}
|
||||
|
||||
CheckContactsResult::~CheckContactsResult()
|
||||
{}
|
||||
|
||||
void CheckContactsResult::parse(const std::string &payload)
|
||||
{
|
||||
Json::Reader reader;
|
||||
Json::Value value;
|
||||
reader.parse(payload, value);
|
||||
setRequestId(value["RequestId"].asString());
|
||||
auto allContactsNode = value["Contacts"]["ContactStatus"];
|
||||
for (auto valueContactsContactStatus : allContactsNode)
|
||||
{
|
||||
ContactStatus contactsObject;
|
||||
if(!valueContactsContactStatus["PhoneNumber"].isNull())
|
||||
contactsObject.phoneNumber = valueContactsContactStatus["PhoneNumber"].asString();
|
||||
if(!valueContactsContactStatus["Status"].isNull())
|
||||
contactsObject.status = valueContactsContactStatus["Status"].asString();
|
||||
contacts_.push_back(contactsObject);
|
||||
}
|
||||
if(!value["ResultCode"].isNull())
|
||||
resultCode_ = value["ResultCode"].asString();
|
||||
if(!value["ResultMessage"].isNull())
|
||||
resultMessage_ = value["ResultMessage"].asString();
|
||||
|
||||
}
|
||||
|
||||
std::vector<CheckContactsResult::ContactStatus> CheckContactsResult::getContacts()const
|
||||
{
|
||||
return contacts_;
|
||||
}
|
||||
|
||||
std::string CheckContactsResult::getResultMessage()const
|
||||
{
|
||||
return resultMessage_;
|
||||
}
|
||||
|
||||
std::string CheckContactsResult::getResultCode()const
|
||||
{
|
||||
return resultCode_;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,17 @@ void SendMessageRequest::setResourceOwnerId(long resourceOwnerId)
|
||||
setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getMessageType()const
|
||||
{
|
||||
return messageType_;
|
||||
}
|
||||
|
||||
void SendMessageRequest::setMessageType(const std::string& messageType)
|
||||
{
|
||||
messageType_ = messageType;
|
||||
setBodyParameter("MessageType", messageType);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getTemplateBodyParams()const
|
||||
{
|
||||
return templateBodyParams_;
|
||||
@@ -82,17 +93,6 @@ void SendMessageRequest::setType(const std::string& type)
|
||||
setBodyParameter("Type", type);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getBody()const
|
||||
{
|
||||
return body_;
|
||||
}
|
||||
|
||||
void SendMessageRequest::setBody(const std::string& body)
|
||||
{
|
||||
body_ = body;
|
||||
setBodyParameter("Body", body);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getAccessKeyId()const
|
||||
{
|
||||
return accessKeyId_;
|
||||
@@ -126,6 +126,17 @@ void SendMessageRequest::setFrom(const std::string& from)
|
||||
setBodyParameter("From", from);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getText()const
|
||||
{
|
||||
return text_;
|
||||
}
|
||||
|
||||
void SendMessageRequest::setText(const std::string& text)
|
||||
{
|
||||
text_ = text;
|
||||
setBodyParameter("Text", text);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getResourceOwnerAccount()const
|
||||
{
|
||||
return resourceOwnerAccount_;
|
||||
@@ -170,14 +181,3 @@ void SendMessageRequest::setTemplateCode(const std::string& templateCode)
|
||||
setBodyParameter("TemplateCode", templateCode);
|
||||
}
|
||||
|
||||
std::string SendMessageRequest::getMediaType()const
|
||||
{
|
||||
return mediaType_;
|
||||
}
|
||||
|
||||
void SendMessageRequest::setMediaType(const std::string& mediaType)
|
||||
{
|
||||
mediaType_ = mediaType;
|
||||
setBodyParameter("MediaType", mediaType);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user