ChatApp third version.

This commit is contained in:
sdk-team
2020-10-12 01:52:38 +00:00
parent 15b4e73175
commit 05785cf5fd
10 changed files with 385 additions and 28 deletions

View File

@@ -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();

View 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);
}

View 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_;
}

View File

@@ -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);
}