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 
18 #include <set>
19 #include <sstream>
20 #include <alibabacloud/oss/model/ListPartsRequest.h>
21 #include <alibabacloud/oss/http/HttpType.h>
22 #include "utils/Utils.h"
23 #include "ModelError.h"
24 #include <alibabacloud/oss/Const.h>
25 
26 
27 using namespace AlibabaCloud::OSS;
28 using std::stringstream;
29 
ListPartsRequest(const std::string & bucket,const std::string & key)30 ListPartsRequest::ListPartsRequest(const std::string &bucket,
31      const std::string &key) :
32     ListPartsRequest(bucket, key, std::string())
33 {
34 }
35 
ListPartsRequest(const std::string & bucket,const std::string & key,const std::string & uploadId)36 ListPartsRequest::ListPartsRequest(const std::string &bucket,
37     const std::string &key, const std::string &uploadId) :
38     OssObjectRequest(bucket, key),
39     uploadId_(uploadId),
40     maxPartsIsSet_(false),
41     partNumberMarkerIsSet_(false),
42     encodingTypeIsSet_(false)
43 {
44 }
45 
setUploadId(const std::string & uploadId)46 void ListPartsRequest::setUploadId(const std::string &uploadId)
47 {
48     uploadId_ = uploadId;
49 }
50 
setEncodingType(const std::string & str)51 void ListPartsRequest::setEncodingType(const std::string &str)
52 {
53     encodingType_ = str;
54     encodingTypeIsSet_ = true;
55 }
56 
setMaxParts(uint32_t maxParts)57 void ListPartsRequest::setMaxParts(uint32_t maxParts)
58 {
59     maxParts_ = maxParts > MaxReturnedKeys ? MaxReturnedKeys: maxParts;
60     maxPartsIsSet_ = true;
61 }
62 
setPartNumberMarker(uint32_t partNumberMarker)63 void ListPartsRequest::setPartNumberMarker(uint32_t partNumberMarker)
64 {
65     partNumberMarker_ = partNumberMarker;
66     partNumberMarkerIsSet_ = true;
67 }
68 
specialParameters() const69 ParameterCollection ListPartsRequest::specialParameters() const
70 {
71     ParameterCollection parameters;
72     parameters["uploadId"] = uploadId_;
73 
74     if (maxPartsIsSet_) {
75         parameters["max-parts"] = std::to_string(maxParts_);
76     }
77 
78     if (partNumberMarkerIsSet_) {
79         parameters["part-number-marker"] = std::to_string(partNumberMarker_);
80     }
81 
82     if (encodingTypeIsSet_) {
83         parameters["encoding-type"] = encodingType_;
84     }
85 
86     return parameters;
87 }
88