Skip to content

Commit 5d774bf

Browse files
committed
Add SmartqQueryAbility api.
1 parent 5c863a0 commit 5d774bf

File tree

8 files changed

+321
-1
lines changed

8 files changed

+321
-1
lines changed

Diff for: VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.36.2020
1+
1.36.2021

Diff for: quickbi-public/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ set(quickbi-public_public_header_model
211211
include/alibabacloud/quickbi-public/model/SetDataLevelPermissionRuleConfigResult.h
212212
include/alibabacloud/quickbi-public/model/SetDataLevelPermissionWhiteListRequest.h
213213
include/alibabacloud/quickbi-public/model/SetDataLevelPermissionWhiteListResult.h
214+
include/alibabacloud/quickbi-public/model/SmartqQueryAbilityRequest.h
215+
include/alibabacloud/quickbi-public/model/SmartqQueryAbilityResult.h
214216
include/alibabacloud/quickbi-public/model/UpdateDataLevelPermissionStatusRequest.h
215217
include/alibabacloud/quickbi-public/model/UpdateDataLevelPermissionStatusResult.h
216218
include/alibabacloud/quickbi-public/model/UpdateEmbeddedStatusRequest.h
@@ -424,6 +426,8 @@ set(quickbi-public_src
424426
src/model/SetDataLevelPermissionRuleConfigResult.cc
425427
src/model/SetDataLevelPermissionWhiteListRequest.cc
426428
src/model/SetDataLevelPermissionWhiteListResult.cc
429+
src/model/SmartqQueryAbilityRequest.cc
430+
src/model/SmartqQueryAbilityResult.cc
427431
src/model/UpdateDataLevelPermissionStatusRequest.cc
428432
src/model/UpdateDataLevelPermissionStatusResult.cc
429433
src/model/UpdateEmbeddedStatusRequest.cc

Diff for: quickbi-public/include/alibabacloud/quickbi-public/Quickbi_publicClient.h

+8
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@
212212
#include "model/SetDataLevelPermissionRuleConfigResult.h"
213213
#include "model/SetDataLevelPermissionWhiteListRequest.h"
214214
#include "model/SetDataLevelPermissionWhiteListResult.h"
215+
#include "model/SmartqQueryAbilityRequest.h"
216+
#include "model/SmartqQueryAbilityResult.h"
215217
#include "model/UpdateDataLevelPermissionStatusRequest.h"
216218
#include "model/UpdateDataLevelPermissionStatusResult.h"
217219
#include "model/UpdateEmbeddedStatusRequest.h"
@@ -526,6 +528,9 @@ namespace AlibabaCloud
526528
typedef Outcome<Error, Model::SetDataLevelPermissionWhiteListResult> SetDataLevelPermissionWhiteListOutcome;
527529
typedef std::future<SetDataLevelPermissionWhiteListOutcome> SetDataLevelPermissionWhiteListOutcomeCallable;
528530
typedef std::function<void(const Quickbi_publicClient*, const Model::SetDataLevelPermissionWhiteListRequest&, const SetDataLevelPermissionWhiteListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDataLevelPermissionWhiteListAsyncHandler;
531+
typedef Outcome<Error, Model::SmartqQueryAbilityResult> SmartqQueryAbilityOutcome;
532+
typedef std::future<SmartqQueryAbilityOutcome> SmartqQueryAbilityOutcomeCallable;
533+
typedef std::function<void(const Quickbi_publicClient*, const Model::SmartqQueryAbilityRequest&, const SmartqQueryAbilityOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SmartqQueryAbilityAsyncHandler;
529534
typedef Outcome<Error, Model::UpdateDataLevelPermissionStatusResult> UpdateDataLevelPermissionStatusOutcome;
530535
typedef std::future<UpdateDataLevelPermissionStatusOutcome> UpdateDataLevelPermissionStatusOutcomeCallable;
531536
typedef std::function<void(const Quickbi_publicClient*, const Model::UpdateDataLevelPermissionStatusRequest&, const UpdateDataLevelPermissionStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDataLevelPermissionStatusAsyncHandler;
@@ -846,6 +851,9 @@ namespace AlibabaCloud
846851
SetDataLevelPermissionWhiteListOutcome setDataLevelPermissionWhiteList(const Model::SetDataLevelPermissionWhiteListRequest &request)const;
847852
void setDataLevelPermissionWhiteListAsync(const Model::SetDataLevelPermissionWhiteListRequest& request, const SetDataLevelPermissionWhiteListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
848853
SetDataLevelPermissionWhiteListOutcomeCallable setDataLevelPermissionWhiteListCallable(const Model::SetDataLevelPermissionWhiteListRequest& request) const;
854+
SmartqQueryAbilityOutcome smartqQueryAbility(const Model::SmartqQueryAbilityRequest &request)const;
855+
void smartqQueryAbilityAsync(const Model::SmartqQueryAbilityRequest& request, const SmartqQueryAbilityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
856+
SmartqQueryAbilityOutcomeCallable smartqQueryAbilityCallable(const Model::SmartqQueryAbilityRequest& request) const;
849857
UpdateDataLevelPermissionStatusOutcome updateDataLevelPermissionStatus(const Model::UpdateDataLevelPermissionStatusRequest &request)const;
850858
void updateDataLevelPermissionStatusAsync(const Model::UpdateDataLevelPermissionStatusRequest& request, const UpdateDataLevelPermissionStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
851859
UpdateDataLevelPermissionStatusOutcomeCallable updateDataLevelPermissionStatusCallable(const Model::UpdateDataLevelPermissionStatusRequest& request) const;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYREQUEST_H_
18+
#define ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYREQUEST_H_
19+
20+
#include <alibabacloud/quickbi-public/Quickbi_publicExport.h>
21+
#include <alibabacloud/core/RpcServiceRequest.h>
22+
#include <string>
23+
#include <vector>
24+
#include <map>
25+
26+
namespace AlibabaCloud {
27+
namespace Quickbi_public {
28+
namespace Model {
29+
class ALIBABACLOUD_QUICKBI_PUBLIC_EXPORT SmartqQueryAbilityRequest : public RpcServiceRequest {
30+
public:
31+
SmartqQueryAbilityRequest();
32+
~SmartqQueryAbilityRequest();
33+
std::string getAccessPoint() const;
34+
void setAccessPoint(const std::string &accessPoint);
35+
std::string getSignType() const;
36+
void setSignType(const std::string &signType);
37+
std::string getUserId() const;
38+
void setUserId(const std::string &userId);
39+
std::string getUserQuestion() const;
40+
void setUserQuestion(const std::string &userQuestion);
41+
std::string getCubeId() const;
42+
void setCubeId(const std::string &cubeId);
43+
44+
private:
45+
std::string accessPoint_;
46+
std::string signType_;
47+
std::string userId_;
48+
std::string userQuestion_;
49+
std::string cubeId_;
50+
};
51+
} // namespace Model
52+
} // namespace Quickbi_public
53+
} // namespace AlibabaCloud
54+
#endif // !ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYREQUEST_H_
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYRESULT_H_
18+
#define ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYRESULT_H_
19+
20+
#include <string>
21+
#include <vector>
22+
#include <utility>
23+
#include <alibabacloud/core/ServiceResult.h>
24+
#include <alibabacloud/quickbi-public/Quickbi_publicExport.h>
25+
26+
namespace AlibabaCloud
27+
{
28+
namespace Quickbi_public
29+
{
30+
namespace Model
31+
{
32+
class ALIBABACLOUD_QUICKBI_PUBLIC_EXPORT SmartqQueryAbilityResult : public ServiceResult
33+
{
34+
public:
35+
struct Result
36+
{
37+
struct MetaTypeItem
38+
{
39+
std::string value;
40+
std::string key;
41+
};
42+
struct ValuesItem
43+
{
44+
std::vector<std::string> row;
45+
};
46+
std::vector<ValuesItem> values;
47+
std::string chartType;
48+
std::vector<MetaTypeItem> metaType;
49+
};
50+
51+
52+
SmartqQueryAbilityResult();
53+
explicit SmartqQueryAbilityResult(const std::string &payload);
54+
~SmartqQueryAbilityResult();
55+
bool getSuccess()const;
56+
Result getResult()const;
57+
58+
protected:
59+
void parse(const std::string &payload);
60+
private:
61+
bool success_;
62+
Result result_;
63+
64+
};
65+
}
66+
}
67+
}
68+
#endif // !ALIBABACLOUD_QUICKBI_PUBLIC_MODEL_SMARTQQUERYABILITYRESULT_H_

Diff for: quickbi-public/src/Quickbi-publicClient.cc

+36
Original file line numberDiff line numberDiff line change
@@ -3471,6 +3471,42 @@ Quickbi_publicClient::SetDataLevelPermissionWhiteListOutcomeCallable Quickbi_pub
34713471
return task->get_future();
34723472
}
34733473

3474+
Quickbi_publicClient::SmartqQueryAbilityOutcome Quickbi_publicClient::smartqQueryAbility(const SmartqQueryAbilityRequest &request) const
3475+
{
3476+
auto endpointOutcome = endpointProvider_->getEndpoint();
3477+
if (!endpointOutcome.isSuccess())
3478+
return SmartqQueryAbilityOutcome(endpointOutcome.error());
3479+
3480+
auto outcome = makeRequest(endpointOutcome.result(), request);
3481+
3482+
if (outcome.isSuccess())
3483+
return SmartqQueryAbilityOutcome(SmartqQueryAbilityResult(outcome.result()));
3484+
else
3485+
return SmartqQueryAbilityOutcome(outcome.error());
3486+
}
3487+
3488+
void Quickbi_publicClient::smartqQueryAbilityAsync(const SmartqQueryAbilityRequest& request, const SmartqQueryAbilityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
3489+
{
3490+
auto fn = [this, request, handler, context]()
3491+
{
3492+
handler(this, request, smartqQueryAbility(request), context);
3493+
};
3494+
3495+
asyncExecute(new Runnable(fn));
3496+
}
3497+
3498+
Quickbi_publicClient::SmartqQueryAbilityOutcomeCallable Quickbi_publicClient::smartqQueryAbilityCallable(const SmartqQueryAbilityRequest &request) const
3499+
{
3500+
auto task = std::make_shared<std::packaged_task<SmartqQueryAbilityOutcome()>>(
3501+
[this, request]()
3502+
{
3503+
return this->smartqQueryAbility(request);
3504+
});
3505+
3506+
asyncExecute(new Runnable([task]() { (*task)(); }));
3507+
return task->get_future();
3508+
}
3509+
34743510
Quickbi_publicClient::UpdateDataLevelPermissionStatusOutcome Quickbi_publicClient::updateDataLevelPermissionStatus(const UpdateDataLevelPermissionStatusRequest &request) const
34753511
{
34763512
auto endpointOutcome = endpointProvider_->getEndpoint();
+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include <alibabacloud/quickbi-public/model/SmartqQueryAbilityRequest.h>
18+
19+
using AlibabaCloud::Quickbi_public::Model::SmartqQueryAbilityRequest;
20+
21+
SmartqQueryAbilityRequest::SmartqQueryAbilityRequest()
22+
: RpcServiceRequest("quickbi-public", "2022-01-01", "SmartqQueryAbility") {
23+
setMethod(HttpRequest::Method::Post);
24+
}
25+
26+
SmartqQueryAbilityRequest::~SmartqQueryAbilityRequest() {}
27+
28+
std::string SmartqQueryAbilityRequest::getAccessPoint() const {
29+
return accessPoint_;
30+
}
31+
32+
void SmartqQueryAbilityRequest::setAccessPoint(const std::string &accessPoint) {
33+
accessPoint_ = accessPoint;
34+
setParameter(std::string("AccessPoint"), accessPoint);
35+
}
36+
37+
std::string SmartqQueryAbilityRequest::getSignType() const {
38+
return signType_;
39+
}
40+
41+
void SmartqQueryAbilityRequest::setSignType(const std::string &signType) {
42+
signType_ = signType;
43+
setParameter(std::string("SignType"), signType);
44+
}
45+
46+
std::string SmartqQueryAbilityRequest::getUserId() const {
47+
return userId_;
48+
}
49+
50+
void SmartqQueryAbilityRequest::setUserId(const std::string &userId) {
51+
userId_ = userId;
52+
setParameter(std::string("UserId"), userId);
53+
}
54+
55+
std::string SmartqQueryAbilityRequest::getUserQuestion() const {
56+
return userQuestion_;
57+
}
58+
59+
void SmartqQueryAbilityRequest::setUserQuestion(const std::string &userQuestion) {
60+
userQuestion_ = userQuestion;
61+
setParameter(std::string("UserQuestion"), userQuestion);
62+
}
63+
64+
std::string SmartqQueryAbilityRequest::getCubeId() const {
65+
return cubeId_;
66+
}
67+
68+
void SmartqQueryAbilityRequest::setCubeId(const std::string &cubeId) {
69+
cubeId_ = cubeId;
70+
setParameter(std::string("CubeId"), cubeId);
71+
}
72+

Diff for: quickbi-public/src/model/SmartqQueryAbilityResult.cc

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include <alibabacloud/quickbi-public/model/SmartqQueryAbilityResult.h>
18+
#include <json/json.h>
19+
20+
using namespace AlibabaCloud::Quickbi_public;
21+
using namespace AlibabaCloud::Quickbi_public::Model;
22+
23+
SmartqQueryAbilityResult::SmartqQueryAbilityResult() :
24+
ServiceResult()
25+
{}
26+
27+
SmartqQueryAbilityResult::SmartqQueryAbilityResult(const std::string &payload) :
28+
ServiceResult()
29+
{
30+
parse(payload);
31+
}
32+
33+
SmartqQueryAbilityResult::~SmartqQueryAbilityResult()
34+
{}
35+
36+
void SmartqQueryAbilityResult::parse(const std::string &payload)
37+
{
38+
Json::Reader reader;
39+
Json::Value value;
40+
reader.parse(payload, value);
41+
setRequestId(value["RequestId"].asString());
42+
auto resultNode = value["Result"];
43+
if(!resultNode["ChartType"].isNull())
44+
result_.chartType = resultNode["ChartType"].asString();
45+
auto allMetaTypeNode = resultNode["MetaType"]["MetaTypeItem"];
46+
for (auto resultNodeMetaTypeMetaTypeItem : allMetaTypeNode)
47+
{
48+
Result::MetaTypeItem metaTypeItemObject;
49+
if(!resultNodeMetaTypeMetaTypeItem["Key"].isNull())
50+
metaTypeItemObject.key = resultNodeMetaTypeMetaTypeItem["Key"].asString();
51+
if(!resultNodeMetaTypeMetaTypeItem["Value"].isNull())
52+
metaTypeItemObject.value = resultNodeMetaTypeMetaTypeItem["Value"].asString();
53+
result_.metaType.push_back(metaTypeItemObject);
54+
}
55+
auto allValuesNode = resultNode["Values"]["ValuesItem"];
56+
for (auto resultNodeValuesValuesItem : allValuesNode)
57+
{
58+
Result::ValuesItem valuesItemObject;
59+
auto allRow = value["Row"]["Row"];
60+
for (auto value : allRow)
61+
valuesItemObject.row.push_back(value.asString());
62+
result_.values.push_back(valuesItemObject);
63+
}
64+
if(!value["Success"].isNull())
65+
success_ = value["Success"].asString() == "true";
66+
67+
}
68+
69+
bool SmartqQueryAbilityResult::getSuccess()const
70+
{
71+
return success_;
72+
}
73+
74+
SmartqQueryAbilityResult::Result SmartqQueryAbilityResult::getResult()const
75+
{
76+
return result_;
77+
}
78+

0 commit comments

Comments
 (0)