diff options
author | bobzel <zzzman@gmail.com> | 2025-07-21 13:21:25 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2025-07-21 13:21:25 -0400 |
commit | 3f489c64d9e55d452c255f8e2c10b0d754883dbb (patch) | |
tree | 187f6fd769fbb940dd5ddf24d91fbb51a5f6e629 /src/server/ApiManagers/UploadManager.ts | |
parent | 401431d732fecd6bdef69d83e21253e1b157416d (diff) |
more server side cleanup
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)}"`); } } }; |