diff options
| author | sharkiecodes <lanyi_stroud@brown.edu> | 2025-07-22 12:35:43 -0400 |
|---|---|---|
| committer | sharkiecodes <lanyi_stroud@brown.edu> | 2025-07-22 12:35:43 -0400 |
| commit | d31a740378e8d4fd58ec329ba83dd20d28bfe5b4 (patch) | |
| tree | b46103d4f9fd2b04ccfc25023e1cb0156168f412 /src/server/ApiManagers/UploadManager.ts | |
| parent | 62f9b89dad334d3d6405f5286e66b253090a82c7 (diff) | |
| parent | 3f489c64d9e55d452c255f8e2c10b0d754883dbb (diff) | |
Merge branch 'master' into lanyi-expanded-agent-paper-main
Diffstat (limited to 'src/server/ApiManagers/UploadManager.ts')
| -rw-r--r-- | src/server/ApiManagers/UploadManager.ts | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index 1e68a4e30..5e527281f 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -131,6 +131,9 @@ export default class UploadManager extends ApiManager { }, }); + type fieldstype = string | { __type: string; Data: string } | { __type: string; id: string; fieldId: string; fields: fieldstype[]; captures: { fieldId: string } }; + type doctype = { id: string; fields: fieldstype[] }; + register({ method: Method.POST, subscription: '/uploadDoc', @@ -145,7 +148,7 @@ export default class UploadManager extends ApiManager { ids[id] = uuid.v4(); return ids[id]; }; - const mapFn = (docIn: { id: string; fields: any[] }) => { + const mapFn = (docIn: doctype) => { const doc = docIn; if (doc.id) { doc.id = getId(doc.id); @@ -156,22 +159,20 @@ export default class UploadManager extends ApiManager { const field = doc.fields[key]; if (field === undefined || field === null) continue; - if (field.__type === 'Doc') { - mapFn(field); + if (typeof field === 'string') { + const re = /("(?:dataD|d)ocumentId"\s*:\s*")([\w-]*)"/g; + doc.fields[key] = field.replace(re, (match: string, p1: string, p2: string) => `${p1}${getId(p2)}"`); + } else if ('Data' in field) { + const re = /("href"\s*:\s*")(.*?)"/g; + field.Data = field.Data.replace(re, (match: string, p1: string, p2: string) => `${p1}${getId(p2)}"`); } else if (field.__type === 'proxy' || field.__type === 'prefetch_proxy') { field.fieldId = getId(field.fieldId); } else if (field.__type === 'script' || field.__type === 'computed') { if (field.captures) { field.captures.fieldId = getId(field.captures.fieldId); } - } else if (field.__type === 'list') { + } else if (field.__type === 'list' || field.__type === 'Doc') { mapFn(field); - } else if (typeof field === 'string') { - const re = /("(?:dataD|d)ocumentId"\s*:\s*")([\w-]*)"/g; - doc.fields[key] = field.replace(re, (match: string, p1: string, p2: string) => `${p1}${getId(p2)}"`); - } else if (field.__type === 'RichTextField') { - const re = /("href"\s*:\s*")(.*?)"/g; - field.Data = field.Data.replace(re, (match: string, p1: string, p2: string) => `${p1}${getId(p2)}"`); } } }; |
