merge list folders and req props

This commit is contained in:
grimhilt
2023-06-17 16:26:31 +02:00
parent eabf707844
commit 1fd7948122
5 changed files with 105 additions and 162 deletions

View File

@@ -3,7 +3,7 @@ use std::path::{Path, PathBuf};
use clap::Values;
use regex::Regex;
use crate::services::api::ApiError;
use crate::services::list_folders::ListFolders;
use crate::services::req_props::ReqProps;
use crate::services::download_files::DownloadFiles;
use crate::store::object;
use crate::commands;
@@ -48,10 +48,10 @@ pub fn clone(remote: Values<'_>) {
// request folder content
let mut objs = vec![];
tokio::runtime::Runtime::new().unwrap().block_on(async {
let res = ListFolders::new()
let res = ReqProps::new()
.set_request(folder.as_str(), &api_props)
.gethref()
.send_with_res()
.send_req_multiple()
.await;
objs = match res {
Ok(o) => o,

View File

@@ -1,5 +1,5 @@
use crate::commands::{status, config};
use crate::services::req_props::ReqProps;
use crate::services::req_props::{ReqProps, ObjProps};
use crate::services::api::ApiError;
use crate::services::upload_file::UploadFile;
use crate::services::delete_path::DeletePath;
@@ -61,14 +61,14 @@ impl PushChange for New {
let res = ReqProps::new()
.set_url(&self.obj.path.to_str().unwrap())
.getlastmodified()
.send_with_err()
.send_req_single()
.await;
match res {
Ok(data) => Ok(data),
Ok(obj) => Ok(Some(obj)),
Err(ApiError::IncorrectRequest(err)) => {
if err.status() == 404 {
Ok(vec![])
Ok(None)
} else {
Err(())
}
@@ -78,7 +78,7 @@ impl PushChange for New {
});
if let Ok(infos) = file_infos {
if infos.len() == 0 {
if let Some(info) = infos {
// file doesn't exist on remote
PushState::Valid
} else {
@@ -114,6 +114,7 @@ impl PushChange for New {
// update tree
add_blob(&obj.path.clone(), "todo_date");
// remove index
index::rm_line(obj.path.to_str().unwrap());
}
@@ -135,10 +136,10 @@ impl PushChange for Deleted {
.await;
match res {
Ok(data) => Ok(data),
Ok(obj) => Ok(Some(obj)),
Err(ApiError::IncorrectRequest(err)) => {
if err.status() == 404 {
Ok(vec![])
Ok(None)
} else {
Err(())
}
@@ -148,7 +149,7 @@ impl PushChange for Deleted {
});
if let Ok(infos) = file_infos {
if infos.len() == 0 {
if let Some(inf) = infos {
// file doesn't exist on remote
PushState::Done
} else {
@@ -202,3 +203,5 @@ impl PushFactory {
}
}
}