aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/UploadManager.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2025-07-21 13:21:25 -0400
committerbobzel <zzzman@gmail.com>2025-07-21 13:21:25 -0400
commit3f489c64d9e55d452c255f8e2c10b0d754883dbb (patch)
tree187f6fd769fbb940dd5ddf24d91fbb51a5f6e629 /src/server/ApiManagers/UploadManager.ts
parent401431d732fecd6bdef69d83e21253e1b157416d (diff)
more server side cleanup
Diffstat (limited to 'src/server/ApiManagers/UploadManager.ts')
-rw-r--r--src/server/ApiManagers/UploadManager.ts21
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)}"`);
}
}
};