@nuclia/sync-agent
Advanced tools
Comparing version 1.5.0 to 1.5.1
@@ -156,2 +156,3 @@ "use strict"; | ||
path: raw.path_lower, | ||
extension: raw.path_lower.split('.').pop() || '', | ||
}, | ||
@@ -171,2 +172,3 @@ status: connector_1.FileStatus.PENDING, | ||
path: raw.path_lower.split('/').slice(0, -1).join('/'), | ||
extension: raw.path_lower.split('.').pop() || '', | ||
}, | ||
@@ -173,0 +175,0 @@ status: connector_1.FileStatus.PENDING, |
@@ -10,20 +10,27 @@ "use strict"; | ||
refreshAuthentication() { | ||
return (0, rxjs_1.from)(fetch(`${this.params.refresh_endpoint}?refresh_token=${this.params.refresh}`, { | ||
method: 'GET', | ||
headers: { | ||
origin: 'http://localhost:4200/', | ||
}, | ||
}).then((res) => res.json())).pipe((0, rxjs_1.map)((res) => { | ||
if (res.token) { | ||
this.params.token = res.token; | ||
return true; | ||
} | ||
else { | ||
this.params.token = ''; | ||
this.params.refresh = ''; | ||
return false; | ||
} | ||
})); | ||
if (!this.params.refresh) { | ||
this.params.token = ''; | ||
this.params.refresh = ''; | ||
return (0, rxjs_1.of)(false); | ||
} | ||
else { | ||
return (0, rxjs_1.from)(fetch(`${this.params.refresh_endpoint}?refresh_token=${this.params.refresh}`, { | ||
method: 'GET', | ||
headers: { | ||
origin: 'http://localhost:4200/', | ||
}, | ||
}).then((res) => res.json())).pipe((0, rxjs_1.map)((res) => { | ||
if (res.token) { | ||
this.params.token = res.token; | ||
return true; | ||
} | ||
else { | ||
this.params.token = ''; | ||
this.params.refresh = ''; | ||
return false; | ||
} | ||
})); | ||
} | ||
} | ||
} | ||
exports.OAuthBaseConnector = OAuthBaseConnector; |
@@ -76,6 +76,4 @@ "use strict"; | ||
var _a, _b; | ||
const filteredMimetypes = (((_b = (_a = syncEntity.filters) === null || _a === void 0 ? void 0 : _a.fileExtensions) === null || _b === void 0 ? void 0 : _b.extensions) || '') | ||
.split(',') | ||
.map((ext) => (0, mime_types_1.lookup)(ext.trim()) || '') | ||
.filter((ext) => ext); | ||
const filteredExtensions = (((_b = (_a = syncEntity.filters) === null || _a === void 0 ? void 0 : _a.fileExtensions) === null || _b === void 0 ? void 0 : _b.extensions) || '').split(',').filter((ext) => ext); | ||
const filteredMimetypes = filteredExtensions.map((ext) => (0, mime_types_1.lookup)(ext.trim()) || '').filter((ext) => ext); | ||
return (0, rxjs_1.of)(...items).pipe((0, rxjs_1.filter)((item) => { | ||
@@ -85,3 +83,13 @@ var _a, _b, _c; | ||
if (filteredMimetypes.length > 0) { | ||
const isFiltered = filteredMimetypes.includes(item.mimeType || ''); | ||
let isFiltered = false; | ||
if (item.mimeType) { | ||
isFiltered = filteredMimetypes.includes(item.mimeType || ''); | ||
} | ||
else if (item.metadata['extension']) { | ||
let extension = item.metadata['extension']; | ||
if (!extension.startsWith('.')) { | ||
extension = `.${extension}`; | ||
} | ||
isFiltered = filteredExtensions.includes(extension); | ||
} | ||
isExtensionOk = ((_b = (_a = syncEntity.filters) === null || _a === void 0 ? void 0 : _a.fileExtensions) === null || _b === void 0 ? void 0 : _b.exclude) ? !isFiltered : isFiltered; | ||
@@ -118,18 +126,36 @@ } | ||
console.log(`Syncing ${syncObj.id}`); | ||
return new refresh_access_token_use_case_1.RefreshAccessToken(this.repository).execute(new sync_entity_1.SyncEntity(syncObj)).pipe((0, rxjs_1.concatMap)((syncEntity) => this.processSyncEntity(syncEntity).pipe((0, rxjs_1.concatMap)((result) => { | ||
if (result) { | ||
const processed = result.filter((res) => res.success && res.action === 'upload').map((res) => res.id); | ||
const deleted = result.filter((res) => res.success && res.action === 'delete').map((res) => res.id); | ||
const successCount = result.filter((res) => res.success).length; | ||
console.log('processed', processed); | ||
console.log('deleted', deleted); | ||
console.log('successCount', successCount); | ||
return this.callbackFinishSync(syncEntity, processed, deleted, successCount, ''); | ||
return new refresh_access_token_use_case_1.RefreshAccessToken(this.repository).execute(new sync_entity_1.SyncEntity(syncObj)).pipe((0, rxjs_1.catchError)(() => { | ||
console.error(`Cannot refresh token for ${syncObj.id}`); | ||
return (0, rxjs_1.of)(undefined); | ||
}), (0, rxjs_1.concatMap)((syncEntity) => { | ||
if (!syncEntity) { | ||
server_1.eventEmitter.emit(events_1.EVENTS.FINISH_SYNCHRONIZATION_SYNC_OBJECT, { | ||
from: syncObj.id, | ||
to: 'Unknown kb', | ||
date: new Date().toISOString(), | ||
processed: [], | ||
successCount: 0, | ||
error: 'Cannot refresh OAuth token', | ||
}); | ||
return (0, rxjs_1.of)(undefined); | ||
} | ||
else { | ||
return (0, rxjs_1.of)(undefined); | ||
return this.processSyncEntity(syncEntity).pipe((0, rxjs_1.concatMap)((result) => { | ||
if (result) { | ||
const processed = result.filter((res) => res.success && res.action === 'upload').map((res) => res.id); | ||
const deleted = result.filter((res) => res.success && res.action === 'delete').map((res) => res.id); | ||
const successCount = result.filter((res) => res.success).length; | ||
console.log('processed', processed); | ||
console.log('deleted', deleted); | ||
console.log('successCount', successCount); | ||
return this.callbackFinishSync(syncEntity, processed, deleted, successCount, ''); | ||
} | ||
else { | ||
return (0, rxjs_1.of)(undefined); | ||
} | ||
})); | ||
} | ||
})))); | ||
})); | ||
} | ||
} | ||
exports.SyncAllFolders = SyncAllFolders; |
{ | ||
"name": "@nuclia/sync-agent", | ||
"version": "1.5.0", | ||
"version": "1.5.1", | ||
"description": "This is a sync agent to synchronize user files from diferent sources to nuclia", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
199668
4578