Skip to content

Commit ffef7dd

Browse files
committed
feat(dlg): make actual store_upload_url() call
We also assure to call only as often as we have to, keeping some state between the loops accordingly.
1 parent 9ea8527 commit ffef7dd

1 file changed

Lines changed: 20 additions & 9 deletions

File tree

src/mako/lib/mbuild.mako

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,7 @@ else {
653653
654654
% if resumable_media_param:
655655
let mut should_ask_dlg_for_url = false;
656+
let mut upload_url_from_server = true;
656657
let mut upload_url: Option<String> = None;
657658
% endif
658659
@@ -675,6 +676,7 @@ else {
675676
% if resumable_media_param:
676677
if should_ask_dlg_for_url && (upload_url = dlg.upload_url()) == () && upload_url.is_some() {
677678
should_ask_dlg_for_url = false;
679+
upload_url_from_server = false;
678680
let mut response = hyper::client::Response::new(Box::new(cmn::DummyNetworkStream));
679681
match response {
680682
Ok(ref mut res) => {
@@ -730,6 +732,7 @@ else {
730732
}
731733
% endif ## media upload handling
732734
% if resumable_media_param:
735+
upload_url_from_server = true;
733736
if protocol == "${resumable_media_param.protocol}" {
734737
req = req.header(cmn::XUploadContentType(reader_mime_type.clone()));
735738
}
@@ -768,15 +771,23 @@ else {
768771
if protocol == "${resumable_media_param.protocol}" {
769772
${READER_SEEK | indent_all_but_first_by(6)}
770773
let mut client = &mut *self.hub.client.borrow_mut();
771-
match (cmn::ResumableUploadHelper {
772-
client: &mut client.borrow_mut(),
773-
delegate: dlg,
774-
auth: &mut *self.hub.auth.borrow_mut(),
775-
url: &res.headers.get::<Location>().expect("Location header is part of protocol").0,
776-
reader: &mut reader,
777-
media_type: reader_mime_type.clone(),
778-
content_size: size
779-
}.upload()) {
774+
let upload_result = {
775+
let url = &res.headers.get::<Location>().expect("Location header is part of protocol").0;
776+
if upload_url_from_server {
777+
dlg.store_upload_url(url);
778+
}
779+
780+
cmn::ResumableUploadHelper {
781+
client: &mut client.borrow_mut(),
782+
delegate: dlg,
783+
auth: &mut *self.hub.auth.borrow_mut(),
784+
url: url,
785+
reader: &mut reader,
786+
media_type: reader_mime_type.clone(),
787+
content_size: size
788+
}.upload()
789+
};
790+
match upload_result {
780791
Err(err) => {
781792
## Do not ask the delgate again, as it was asked by the helper !
782793
${delegate_finish}(false);

0 commit comments

Comments
 (0)