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

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

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

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

View File

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