fix onedrive and make mtime ctime optional for mkdir
This commit is contained in:
parent
11d9e2e3f1
commit
0c6e16c131
|
@ -534,7 +534,7 @@ export class FakeFsDropbox extends FakeFs {
|
|||
return fromDropboxItemToEntity(rsp.result, this.remoteBaseDir);
|
||||
}
|
||||
|
||||
async mkdir(key: string, mtime: number, ctime: number): Promise<Entity> {
|
||||
async mkdir(key: string, mtime?: number, ctime?: number): Promise<Entity> {
|
||||
if (!key.endsWith("/")) {
|
||||
throw Error(`you should not call mkdir on ${key}`);
|
||||
}
|
||||
|
@ -547,8 +547,8 @@ export class FakeFsDropbox extends FakeFs {
|
|||
|
||||
async _mkdirFromRoot(
|
||||
key: string,
|
||||
mtime: number,
|
||||
ctime: number
|
||||
mtime?: number,
|
||||
ctime?: number
|
||||
): Promise<Entity> {
|
||||
if (hasEmojiInText(key)) {
|
||||
throw new Error(
|
||||
|
|
|
@ -697,23 +697,25 @@ export class FakeFsOnedrive extends FakeFs {
|
|||
return res;
|
||||
}
|
||||
|
||||
async mkdir(key: string, mtime: number, ctime: number): Promise<Entity> {
|
||||
async mkdir(key: string, mtime?: number, ctime?: number): Promise<Entity> {
|
||||
if (!key.endsWith("/")) {
|
||||
throw Error(`you should not call mkdir on ${key}`);
|
||||
}
|
||||
await this._init();
|
||||
const uploadFolder = getOnedrivePath(key, this.remoteBaseDir);
|
||||
console.debug(`mkdir upLoadFile=${uploadFolder}`);
|
||||
console.debug(`mkdir uploadFolder=${uploadFolder}`);
|
||||
return await this._mkdirFromRoot(uploadFolder, mtime, ctime);
|
||||
}
|
||||
|
||||
async _mkdirFromRoot(
|
||||
key: string,
|
||||
mtime: number,
|
||||
ctime: number
|
||||
mtime?: number,
|
||||
ctime?: number
|
||||
): Promise<Entity> {
|
||||
// console.debug(`foldersCreatedBefore=${Array.from(this.foldersCreatedBefore)}`);
|
||||
if (this.foldersCreatedBefore.has(key)) {
|
||||
// created, pass
|
||||
// console.debug(`folder ${key} created.`)
|
||||
} else {
|
||||
// https://stackoverflow.com/questions/56479865/creating-nested-folders-in-one-go-onedrive-api
|
||||
// use PATCH to create folder recursively!!!
|
||||
|
@ -721,17 +723,17 @@ export class FakeFsOnedrive extends FakeFs {
|
|||
folder: {},
|
||||
"@microsoft.graph.conflictBehavior": "replace",
|
||||
};
|
||||
if (mtime !== 0 && ctime !== 0) {
|
||||
const ctimeStr = new Date(ctime).toISOString();
|
||||
const fileSystemInfo: Record<string, string> = {};
|
||||
if (mtime !== undefined && mtime !== 0) {
|
||||
const mtimeStr = new Date(mtime).toISOString();
|
||||
playload = {
|
||||
folder: {},
|
||||
"@microsoft.graph.conflictBehavior": "replace",
|
||||
fileSystemInfo: {
|
||||
lastModifiedDateTime: mtimeStr,
|
||||
createdDateTime: ctimeStr,
|
||||
} as FileSystemInfo,
|
||||
};
|
||||
fileSystemInfo["lastModifiedDateTime"] = mtimeStr;
|
||||
}
|
||||
if (ctime !== undefined && ctime !== 0) {
|
||||
const ctimeStr = new Date(ctime).toISOString();
|
||||
fileSystemInfo["createdDateTime"] = ctimeStr;
|
||||
}
|
||||
if (Object.keys(fileSystemInfo).length > 0) {
|
||||
playload["fileSystemInfo"] = fileSystemInfo;
|
||||
}
|
||||
await this._patchJson(key, playload);
|
||||
}
|
||||
|
|
|
@ -368,7 +368,7 @@ export class FakeFsWebdav extends FakeFs {
|
|||
return fromWebdavItemToEntity(res, this.remoteBaseDir);
|
||||
}
|
||||
|
||||
async mkdir(key: string, mtime: number, ctime: number): Promise<Entity> {
|
||||
async mkdir(key: string, mtime?: number, ctime?: number): Promise<Entity> {
|
||||
if (!key.endsWith("/")) {
|
||||
throw Error(`you should not call mkdir on ${key}`);
|
||||
}
|
||||
|
@ -379,8 +379,8 @@ export class FakeFsWebdav extends FakeFs {
|
|||
|
||||
async _mkdirFromRoot(
|
||||
key: string,
|
||||
mtime: number,
|
||||
ctime: number
|
||||
mtime?: number,
|
||||
ctime?: number
|
||||
): Promise<Entity> {
|
||||
await this.client.createDirectory(key, {
|
||||
recursive: true,
|
||||
|
|
Loading…
Reference in New Issue