Skip to content

Commit c7358a7

Browse files
authored
Merge pull request #21 from dropbox/request_body_null_bug_fix
- Previous flow before version update tried to send a fileReader's result when it finished reading and in order to fix typing errors, this logic was pulled out in front. This caused the result attribute of the request to always be null when it was being read. - Moved the typing code into the onloadend lambda to mitigate
2 parents 8c04289 + 25443f9 commit c7358a7

File tree

4 files changed

+104
-12
lines changed

4 files changed

+104
-12
lines changed

codegen/stone

src/apicalls.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,15 @@ const endRequest = (component: any) => {
8484
const utf8Encode = (data: string, request: XMLHttpRequest) => {
8585
let blob: Blob = new Blob([data]);
8686
let reader: FileReader = new FileReader();
87-
var sendable_blob: Uint8Array = null;
88-
if (reader.result instanceof ArrayBuffer){
89-
sendable_blob = new Uint8Array(<ArrayBuffer>sendable_blob);
90-
} else {
91-
sendable_blob = new TextEncoder().encode(<string>reader.result);
92-
}
93-
reader.onloadend = () => request.send(sendable_blob);
87+
reader.onloadend = () => {
88+
var sendable_blob: Uint8Array = null;
89+
if (reader.result instanceof ArrayBuffer){
90+
sendable_blob = new Uint8Array(<ArrayBuffer>reader.result);
91+
} else {
92+
sendable_blob = new TextEncoder().encode(<string>reader.result);
93+
}
94+
request.send(sendable_blob)
95+
};
9496
reader.readAsArrayBuffer(blob);
9597
};
9698

src/endpoints.ts

Lines changed: 91 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,88 @@ module Endpoints {
6868
},
6969
new Utils.TextParam("query", true)
7070
);
71+
const cloud_docs_get_content_endpt = new Utils.Endpoint("cloud_docs", "get_content",
72+
{
73+
allow_app_folder_app: "True",
74+
is_cloud_doc_auth: "True",
75+
is_preview: "True",
76+
select_admin_mode: "None",
77+
style: "download",
78+
auth: "user",
79+
host: "content",
80+
scope: "None",
81+
},
82+
new Utils.TextParam("file_id", false)
83+
);
84+
const cloud_docs_get_metadata_endpt = new Utils.Endpoint("cloud_docs", "get_metadata",
85+
{
86+
allow_app_folder_app: "False",
87+
is_cloud_doc_auth: "True",
88+
is_preview: "False",
89+
select_admin_mode: "None",
90+
style: "rpc",
91+
auth: "user",
92+
host: "api",
93+
scope: "files.metadata.read",
94+
},
95+
new Utils.TextParam("file_id", true)
96+
);
97+
const cloud_docs_lock_endpt = new Utils.Endpoint("cloud_docs", "lock",
98+
{
99+
allow_app_folder_app: "False",
100+
is_cloud_doc_auth: "True",
101+
is_preview: "False",
102+
select_admin_mode: "None",
103+
style: "rpc",
104+
auth: "user",
105+
host: "api",
106+
scope: "files.metadata.write",
107+
},
108+
new Utils.TextParam("file_id", true)
109+
);
110+
const cloud_docs_rename_endpt = new Utils.Endpoint("cloud_docs", "rename",
111+
{
112+
allow_app_folder_app: "False",
113+
is_cloud_doc_auth: "True",
114+
is_preview: "False",
115+
select_admin_mode: "None",
116+
style: "rpc",
117+
auth: "user",
118+
host: "api",
119+
scope: "files.metadata.write",
120+
},
121+
new Utils.TextParam("file_id", true),
122+
new Utils.TextParam("title", true)
123+
);
124+
const cloud_docs_unlock_endpt = new Utils.Endpoint("cloud_docs", "unlock",
125+
{
126+
allow_app_folder_app: "False",
127+
is_cloud_doc_auth: "True",
128+
is_preview: "False",
129+
select_admin_mode: "None",
130+
style: "rpc",
131+
auth: "user",
132+
host: "api",
133+
scope: "files.metadata.write",
134+
},
135+
new Utils.TextParam("file_id", true)
136+
);
137+
const cloud_docs_update_content_endpt = new Utils.Endpoint("cloud_docs", "update_content",
138+
{
139+
allow_app_folder_app: "True",
140+
is_cloud_doc_auth: "True",
141+
is_preview: "True",
142+
select_admin_mode: "None",
143+
style: "upload",
144+
auth: "user",
145+
host: "content",
146+
scope: "None",
147+
},
148+
new Utils.FileParam(),
149+
new Utils.TextParam("file_id", false),
150+
new Utils.ListParam("actor_tokens", false, (index: string): Utils.Parameter => new Utils.TextParam(index, false)),
151+
new Utils.ListParam("additional_contents", true, (index: string): Utils.Parameter => new Utils.StructParam(index, false, [new Utils.UnionParam("purpose", false, [new Utils.VoidParam("search"), new Utils.VoidParam("preview")]), new Utils.TextParam("content_key", false)]))
152+
);
71153
const contacts_delete_manual_contacts_endpt = new Utils.Endpoint("contacts", "delete_manual_contacts",
72154
{
73155
allow_app_folder_app: "False",
@@ -2289,7 +2371,7 @@ module Endpoints {
22892371
{
22902372
allow_app_folder_app: "False",
22912373
is_cloud_doc_auth: "False",
2292-
is_preview: "True",
2374+
is_preview: "False",
22932375
select_admin_mode: "None",
22942376
style: "rpc",
22952377
auth: "team",
@@ -2302,7 +2384,7 @@ module Endpoints {
23022384
{
23032385
allow_app_folder_app: "False",
23042386
is_cloud_doc_auth: "False",
2305-
is_preview: "True",
2387+
is_preview: "False",
23062388
select_admin_mode: "None",
23072389
style: "rpc",
23082390
auth: "team",
@@ -2315,7 +2397,7 @@ module Endpoints {
23152397
{
23162398
allow_app_folder_app: "False",
23172399
is_cloud_doc_auth: "False",
2318-
is_preview: "True",
2400+
is_preview: "False",
23192401
select_admin_mode: "None",
23202402
style: "rpc",
23212403
auth: "team",
@@ -2738,6 +2820,12 @@ module Endpoints {
27382820
auth_token_revoke_endpt,
27392821
check_app_endpt,
27402822
check_user_endpt,
2823+
cloud_docs_get_content_endpt,
2824+
cloud_docs_get_metadata_endpt,
2825+
cloud_docs_lock_endpt,
2826+
cloud_docs_rename_endpt,
2827+
cloud_docs_unlock_endpt,
2828+
cloud_docs_update_content_endpt,
27412829
contacts_delete_manual_contacts_endpt,
27422830
contacts_delete_manual_contacts_batch_endpt,
27432831
file_properties_properties_add_endpt,

src/main.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,10 +750,12 @@ class RequestArea extends react.Component<RequestAreaProps, any> {
750750
}
751751
updateParamValues = (paramVals: Dict, fileVals: Dict) => {
752752
this.setState({paramVals: paramVals, fileVals: fileVals});
753+
this.forceUpdate();
753754
};
754755

755756
updateHeaderValues = (headerVals: Header[]) => {
756757
this.setState({headerVals: headerVals});
758+
this.forceUpdate();
757759
};
758760

759761
updateTokenValue = (tokenValue: string) => {
@@ -855,7 +857,7 @@ class RequestArea extends react.Component<RequestAreaProps, any> {
855857
)
856858
),
857859
ce('table', {id: 'parameter-list'},
858-
ce('body', null,
860+
ce('tbody', null,
859861
this.props.currEpt.params.map((param: Parameter) =>
860862
ParamClassChooser.getParamInput(param, {
861863
key: this.props.currEpt.name + param.name,

0 commit comments

Comments
 (0)