/
build_report_online_request.go
129 lines (102 loc) · 4.81 KB
/
build_report_online_request.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
* --------------------------------------------------------------------------------
* <copyright company="Aspose" file="build_report_online_request.go">
* Copyright (c) 2024 Aspose.Words for Cloud
* </copyright>
* <summary>
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
* </summary>
* --------------------------------------------------------------------------------
*/
package models
import (
"errors"
"io/ioutil"
"net/url"
"strings"
"io"
)
// BuildReportOnlineRequest contains request data for WordsApiService.BuildReportOnline method.
type BuildReportOnlineRequest struct {
// File with template.
Template io.ReadCloser
// A string providing a data to populate the specified template. The string must be of one of the following types: xml, json, csv.
Data *string
// An object providing a settings of report engine.
ReportEngineSettings IReportEngineSettings
/* optional (nil or map[string]interface{}) with one or more of key / value pairs:
key: "documentFileName" value: (*string) The filename of the output document, that will be used when the resulting document has a dynamic field {filename}. If it is not set, the "template" will be used instead. */
Optionals map[string]interface{}
}
func (data *BuildReportOnlineRequest) CreateRequestData() (RequestData, error) {
var result RequestData
var filesContentData = make([]FileReference, 0)
if data == nil {
return result, errors.New("Invalid object.")
}
result.Method = strings.ToUpper("put")
// create path and map variables
result.Path = "/words/buildReport"
result.Path = strings.Replace(result.Path, "/<nil>", "", -1)
result.Path = strings.Replace(result.Path, "//", "/", -1)
result.HeaderParams = make(map[string]string)
result.QueryParams = url.Values{}
result.FormParams = make([]FormParamContainer, 0)
if (data.Template == nil) {
return result, errors.New("Parameter Template is required.")
}
if (data.Data == nil) {
return result, errors.New("Parameter Data is required.")
}
if (data.ReportEngineSettings != nil) {
data.ReportEngineSettings.Initialize()
} else {
return result, errors.New("Parameter ReportEngineSettings is required.")
}
if err := typeCheckParameter(data.Optionals["documentFileName"], "string", "data.Optionals[documentFileName]"); err != nil {
return result, err
}
if (data.ReportEngineSettings != nil) {
if err := data.ReportEngineSettings.Validate(); err != nil {
return result, err
}
}
if localVarTempParam, localVarOk := data.Optionals["documentFileName"].(string); localVarOk {
result.QueryParams.Add("DocumentFileName", parameterToString(localVarTempParam, ""))
}
_template := data.Template
if _template != nil {
fbs, _ := ioutil.ReadAll(_template)
_template.Close()
result.FormParams = append(result.FormParams, NewFileFormParamContainer("template", fbs))
}
result.FormParams = append(result.FormParams, NewTextFormParamContainer("Data", parameterToString(data.Data, "")))
result.FormParams = append(result.FormParams, NewJsonFormParamContainer("ReportEngineSettings", parameterToString(data.ReportEngineSettings, "")))
result.FileReferences = filesContentData
for _, fileContentData := range filesContentData {
if fileContentData.Source == "Request" {
fbs, _ := ioutil.ReadAll(fileContentData.Content)
result.FormParams = append(result.FormParams, NewFileFormParamContainer(fileContentData.Reference, fbs))
}
}
return result, nil
}
func (data *BuildReportOnlineRequest) CreateResponse(reader io.Reader, boundary string) (response interface{}, err error) {
return reader, nil
}