Skip to content

Commit 761f81d

Browse files
fix: pdf is not loading when custom file storage change
1 parent 23679e5 commit 761f81d

26 files changed

+294
-210
lines changed

apps/OpenSign/src/components/pdf/EmailComponent.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ function EmailComponent({
3131
setIsLoading(true);
3232
let sendMail;
3333
const docId = pdfDetails?.[0]?.objectId || "";
34-
const isFileAdapter = pdfDetails?.[0]?.IsFileAdapter
35-
? pdfDetails?.[0]?.IsFileAdapter
36-
: false;
34+
const FileAdapterId = pdfDetails?.[0]?.FileAdapterId
35+
? pdfDetails?.[0]?.FileAdapterId
36+
: "";
3737
let presignedUrl = pdfUrl;
3838
try {
3939
const axiosRes = await axios.post(
4040
`${localStorage.getItem("baseUrl")}/functions/getsignedurl`,
41-
{ url: pdfUrl, docId: docId, isFileAdapter: isFileAdapter },
41+
{ url: pdfUrl, docId: docId, fileAdapterId: FileAdapterId },
4242
{
4343
headers: {
4444
"content-type": "Application/json",

apps/OpenSign/src/constant/Utils.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ export const createDocument = async (
712712
RemindOnceInEvery: parseInt(Doc?.RemindOnceInEvery || 5),
713713
IsEnableOTP: Doc?.IsEnableOTP || false,
714714
IsTourEnabled: Doc?.IsTourEnabled || false,
715-
IsFileAdapter: Doc?.IsFileAdapter || false
715+
FileAdapterId: Doc?.FileAdapterId || ""
716716
};
717717

718718
try {
@@ -2074,7 +2074,7 @@ export const fetchUrl = async (url, pdfName) => {
20742074
export const getSignedUrl = async (
20752075
pdfUrl,
20762076
docId,
2077-
isFileAdapter,
2077+
fileAdapterId,
20782078
templateId
20792079
) => {
20802080
//use only axios here due to public template sign
@@ -2083,7 +2083,7 @@ export const getSignedUrl = async (
20832083
{
20842084
url: pdfUrl,
20852085
docId: docId || "",
2086-
isFileAdapter: isFileAdapter,
2086+
fileAdapterId: fileAdapterId,
20872087
templateId: templateId || ""
20882088
},
20892089
{
@@ -2103,11 +2103,11 @@ export const handleDownloadPdf = async (pdfDetails, setIsDownloading) => {
21032103
const pdfUrl = pdfDetails?.[0]?.SignedUrl || pdfDetails?.[0]?.URL;
21042104
setIsDownloading && setIsDownloading("pdf");
21052105
const docId = pdfDetails?.[0]?.objectId || "";
2106-
const isFileAdapter = pdfDetails?.[0]?.IsFileAdapter
2107-
? pdfDetails?.[0]?.IsFileAdapter
2108-
: false;
2106+
const fileAdapterId = pdfDetails?.[0]?.FileAdapterId
2107+
? pdfDetails?.[0]?.FileAdapterId
2108+
: "";
21092109
try {
2110-
const url = await getSignedUrl(pdfUrl, docId, isFileAdapter);
2110+
const url = await getSignedUrl(pdfUrl, docId, fileAdapterId);
21112111
await fetchUrl(url, pdfName);
21122112
setIsDownloading && setIsDownloading("");
21132113
} catch (err) {
@@ -2131,16 +2131,16 @@ export const handleToPrint = async (
21312131
event.preventDefault();
21322132
setIsDownloading("pdf");
21332133
const docId = pdfDetails?.[0]?.objectId || "";
2134-
const isFileAdapter = pdfDetails?.[0]?.IsFileAdapter
2135-
? pdfDetails?.[0]?.IsFileAdapter
2136-
: false;
2134+
const FileAdapterId = pdfDetails?.[0]?.FileAdapterId
2135+
? pdfDetails?.[0]?.FileAdapterId
2136+
: "";
21372137
try {
21382138
// const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl });
21392139
//`localStorage.getItem("baseUrl")` is also use in public-profile flow for public-sign
21402140
//if we give this `appInfo.baseUrl` as a base url then in public-profile it will create base url of it's window.location.origin ex- opensign.me which is not base url
21412141
const axiosRes = await axios.post(
21422142
`${localStorage.getItem("baseUrl")}/functions/getsignedurl`,
2143-
{ url: pdfUrl, docId: docId, isFileAdapter: isFileAdapter },
2143+
{ url: pdfUrl, docId: docId, fileAdapterId: FileAdapterId },
21442144
{
21452145
headers: {
21462146
"content-type": "Application/json",

apps/OpenSign/src/layout/HomeLayout.js

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -224,23 +224,13 @@ const HomeLayout = () => {
224224

225225
async function checkTourStatus() {
226226
const cloudRes = await Parse.Cloud.run("getUserDetails");
227-
const res = { data: cloudRes.toJSON() };
228-
if (res.data && res.data.TourStatus && res.data.TourStatus.length > 0) {
229-
const tourStatus = res.data.TourStatus;
230-
// console.log("res ", res.data.TourStatus);
227+
if (cloudRes) {
228+
const extUser = JSON.parse(JSON.stringify(cloudRes));
229+
localStorage.setItem("Extand_Class", JSON.stringify([extUser]));
230+
const tourStatus = extUser?.TourStatus || [];
231231
setTourStatusArr(tourStatus);
232-
const filteredtourStatus = tourStatus.filter((obj) => obj["loginTour"]);
233-
if (filteredtourStatus.length > 0) {
234-
const loginTour = filteredtourStatus[0]["loginTour"];
235-
// console.log("loginTour", loginTour);
236-
if (loginTour) {
237-
setIsTour(false);
238-
} else {
239-
setIsTour(true);
240-
}
241-
} else {
242-
setIsTour(true);
243-
}
232+
const loginTour = tourStatus.find((obj) => obj.loginTour)?.loginTour;
233+
setIsTour(!loginTour);
244234
} else {
245235
setIsTour(true);
246236
}

apps/OpenSign/src/pages/Form.js

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,16 @@ const Forms = (props) => {
169169
});
170170
setIsDecrypting(false);
171171
setfileload(true);
172-
if (extUserData?.TenantId?.ActiveFileAdapter) {
172+
const fileAdapterId =
173+
extUserData?.TenantId?.ActiveFileAdapter || "";
174+
if (fileAdapterId) {
173175
const base64 = await toDataUrl(pdfFile);
174176
const fileBase64 = base64.split(",").pop();
175177
const ext = files?.[0]?.name?.split(".").pop();
176178
const fileRes = await saveToCustomFile(
177179
fileBase64,
178-
`${name}.${ext}`
180+
`${name}.${ext}`,
181+
fileAdapterId
179182
);
180183
if (fileRes.url) {
181184
setFileUpload(fileRes.url);
@@ -263,7 +266,9 @@ const Forms = (props) => {
263266
});
264267
const size = files?.[0]?.size;
265268
const name = generatePdfName(16);
266-
if (extUserData?.TenantId?.ActiveFileAdapter) {
269+
const fileAdapterId =
270+
extUserData?.TenantId?.ActiveFileAdapter || "";
271+
if (fileAdapterId) {
267272
const base64 = await pdfDoc.saveAsBase64({
268273
useObjectStreams: false
269274
});
@@ -272,7 +277,8 @@ const Forms = (props) => {
272277
const ext = files?.[0]?.name?.split(".").pop();
273278
const fileRes = await saveToCustomFile(
274279
fileBase64,
275-
`${name}.${ext}`
280+
`${name}.${ext}`,
281+
fileAdapterId
276282
);
277283
if (fileRes.url) {
278284
setFileUpload(fileRes.url);
@@ -373,11 +379,12 @@ const Forms = (props) => {
373379
}
374380
};
375381

376-
const saveToCustomFile = async (base64, filname) => {
382+
const saveToCustomFile = async (base64, filename, fileAdapterId) => {
377383
try {
378384
const savetos3 = await Parse.Cloud.run("savetofileadapter", {
379385
fileBase64: base64,
380-
fileName: filname
386+
fileName: filename,
387+
id: fileAdapterId
381388
});
382389
return { url: savetos3.url };
383390
} catch (err) {
@@ -391,11 +398,16 @@ const Forms = (props) => {
391398
const size = file.size;
392399
const name = generatePdfName(16);
393400
const pdfFile = file;
394-
if (extUserData?.TenantId?.ActiveFileAdapter) {
401+
const fileAdapterId = extUserData?.TenantId?.ActiveFileAdapter || "";
402+
if (fileAdapterId) {
395403
const base64 = await toDataUrl(file);
396404
const fileBase64 = base64.split(",").pop();
397405
const ext = file?.name?.split(".").pop();
398-
const fileRes = await saveToCustomFile(fileBase64, `${name}.${ext}`);
406+
const fileRes = await saveToCustomFile(
407+
fileBase64,
408+
`${name}.${ext}`,
409+
fileAdapterId
410+
);
399411
if (fileRes.url) {
400412
setFileUpload(fileRes?.url);
401413
const tenantId = localStorage.getItem("TenantId");
@@ -459,11 +471,16 @@ const Forms = (props) => {
459471
return;
460472
} else {
461473
const name = generatePdfName(16);
462-
if (extUserData?.TenantId?.ActiveFileAdapter) {
474+
const fileAdapterId = extUserData?.TenantId?.ActiveFileAdapter || "";
475+
if (fileAdapterId) {
463476
const base64 = await uriToBase64(url);
464477
const fileBase64 = base64.split(",").pop();
465478
const ext = file?.name?.split(".").pop();
466-
const fileRes = await saveToCustomFile(fileBase64, `${name}.${ext}`);
479+
const fileRes = await saveToCustomFile(
480+
fileBase64,
481+
`${name}.${ext}`,
482+
fileAdapterId
483+
);
467484
if (fileRes.url) {
468485
setFileUpload(fileRes.url);
469486
setfileload(false);
@@ -558,7 +575,7 @@ const Forms = (props) => {
558575
objectId: ExtCls[0].objectId
559576
});
560577
if (extUserData?.TenantId?.ActiveFileAdapter) {
561-
object.set("IsFileAdapter", true);
578+
object.set("FileAdapterId", extUserData?.TenantId?.ActiveFileAdapter);
562579
}
563580
const res = await object.save();
564581
if (res) {
@@ -664,12 +681,17 @@ const Forms = (props) => {
664681
type: "application/pdf"
665682
});
666683
setIsDecrypting(false);
684+
const fileAdapterId = extUserData?.TenantId?.ActiveFileAdapter || "";
667685
// Upload the file to Parse Server
668-
if (extUserData?.TenantId?.ActiveFileAdapter) {
686+
if (fileAdapterId) {
669687
const base64 = await toDataUrl(pdfFile);
670688
const fileBase64 = base64.split(",").pop();
671689
const ext = formData?.file?.name?.split(".").pop();
672-
const fileRes = await saveToCustomFile(fileBase64, `${name}.${ext}`);
690+
const fileRes = await saveToCustomFile(
691+
fileBase64,
692+
`${name}.${ext}`,
693+
fileAdapterId
694+
);
673695
if (fileRes.url) {
674696
setFormData((prev) => ({ ...prev, password: "" }));
675697
setFileUpload(fileRes?.url);

apps/OpenSign/src/pages/Opensigndrive.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -499,22 +499,13 @@ function Opensigndrive() {
499499
//function to use check tour status of open sign drive
500500
async function checkTourStatus() {
501501
const cloudRes = await Parse.Cloud.run("getUserDetails");
502-
const res = { data: cloudRes.toJSON() };
503-
if (res.data && res.data.TourStatus && res.data.TourStatus.length > 0) {
504-
const tourStatus = res.data.TourStatus;
502+
if (cloudRes) {
503+
const extUser = JSON.parse(JSON.stringify(cloudRes));
504+
localStorage.setItem("Extand_Class", JSON.stringify([extUser]));
505+
const tourStatus = extUser?.TourStatus || [];
505506
setTourStatusArr(tourStatus);
506-
const filteredtourStatus = tourStatus.filter((obj) => obj["driveTour"]);
507-
if (filteredtourStatus.length > 0) {
508-
const driveTour = filteredtourStatus[0]["driveTour"];
509-
// console.log("loginTour", loginTour);
510-
if (driveTour) {
511-
setIsTour(false);
512-
} else {
513-
setIsTour(true);
514-
}
515-
} else {
516-
setIsTour(true);
517-
}
507+
const driveTour = tourStatus.find((obj) => obj.driveTour)?.driveTour;
508+
setIsTour(!driveTour);
518509
} else {
519510
setIsTour(true);
520511
}

apps/OpenSign/src/primitives/DownloadPdfZip.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ function DownloadPdfZip(props) {
3535
try {
3636
// Fetch the first PDF (Signed Document)
3737
const docId = pdfDetails?.[0]?.objectId || "";
38-
const isFileAdapter = pdfDetails?.[0]?.IsFileAdapter
39-
? pdfDetails?.[0]?.IsFileAdapter
40-
: false;
38+
const fileAdapterId = pdfDetails?.[0]?.FileAdapterId
39+
? pdfDetails?.[0]?.FileAdapterId
40+
: "";
4141
console.log("pdfDetails?.[0] ", pdfDetails?.[0]);
42-
const signedUrl = await getSignedUrl(pdfUrl, docId, isFileAdapter);
42+
const signedUrl = await getSignedUrl(pdfUrl, docId, fileAdapterId);
4343
console.log("signedUrl ", signedUrl);
4444
const pdf1Response = await fetch(signedUrl);
4545
if (!pdf1Response.ok) {

apps/OpenSign/src/primitives/GetReportDisplay.js

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,7 @@ const ReportTable = (props) => {
275275
AutomaticReminders: Doc?.AutomaticReminders || false,
276276
RemindOnceInEvery: Doc?.RemindOnceInEvery || 5,
277277
IsEnableOTP: Doc?.IsEnableOTP || false,
278-
IsTourEnabled: Doc?.IsTourEnabled || false,
279-
IsFileAdapter: Doc?.IsFileAdapter || false
280-
278+
FileAdapterId: Doc?.FileAdapterId || ""
281279
};
282280
try {
283281
const res = await axios.post(
@@ -605,25 +603,15 @@ const ReportTable = (props) => {
605603

606604
async function checkTourStatus() {
607605
const cloudRes = await Parse.Cloud.run("getUserDetails");
608-
const res = { data: cloudRes.toJSON() };
609-
if (res.data && res.data.TourStatus && res.data.TourStatus.length > 0) {
610-
const tourStatus = res.data.TourStatus;
611-
// console.log("res ", res.data.TourStatus);
606+
if (cloudRes) {
607+
const extUser = JSON.parse(JSON.stringify(cloudRes));
608+
localStorage.setItem("Extand_Class", JSON.stringify([extUser]));
609+
const tourStatus = extUser?.TourStatus || [];
612610
setTourStatusArr(tourStatus);
613-
const filteredtourStatus = tourStatus.filter(
614-
(obj) => obj["templateTour"]
615-
);
616-
if (filteredtourStatus.length > 0) {
617-
const templateTour = filteredtourStatus[0]["templateTour"];
618-
619-
if (templateTour) {
620-
setIsTour(false);
621-
} else {
622-
setIsTour(true);
623-
}
624-
} else {
625-
setIsTour(true);
626-
}
611+
const templateTour = tourStatus.find(
612+
(obj) => obj.templateTour
613+
)?.templateTour;
614+
setIsTour(!templateTour);
627615
} else {
628616
setIsTour(true);
629617
}
@@ -676,7 +664,7 @@ const ReportTable = (props) => {
676664
const isCompleted = item?.IsCompleted || false;
677665
const templateId = props?.ReportName === "Templates" && item.objectId;
678666
const docId = props?.ReportName !== "Templates" && item.objectId;
679-
const isFileAdapter = item?.IsFileAdapter ? item?.IsFileAdapter : false;
667+
const fileAdapterId = item?.FileAdapterId ? item?.FileAdapterId : "";
680668

681669
if (url) {
682670
try {
@@ -686,7 +674,7 @@ const ReportTable = (props) => {
686674
const signedUrl = await getSignedUrl(
687675
url,
688676
docId,
689-
isFileAdapter,
677+
fileAdapterId,
690678
templateId
691679
);
692680
await fetchUrl(signedUrl, pdfName);

apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,9 @@ export default async function createDocumentWithTemplate(request, response) {
213213
if (folderId) {
214214
object.set('Folder', folderPtr);
215215
}
216-
object.set('IsFileAdapter', template?.IsFileAdapter || false);
216+
if (template?.FileAdapterId) {
217+
object.set('FileAdapterId');
218+
}
217219
const newACL = new Parse.ACL();
218220
newACL.setPublicReadAccess(false);
219221
newACL.setPublicWriteAccess(false);

apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,13 @@ export default async function createDocumentwithCoordinate(request, response) {
130130
saveFileUsage(buffer.length, fileUrl, parseUser.userId.objectId);
131131
} else {
132132
const filename = sanitizeFileName(`${name}.pdf`);
133-
if (parseExtUser?.TenantId?.ActiveFileAdapter) {
134-
const adapter = {
135-
fileAdapter: parseExtUser?.TenantId?.ActiveFileAdapter,
136-
bucketName: parseExtUser?.TenantId?.FileAdapter?.bucketName,
137-
region: parseExtUser?.TenantId?.FileAdapter?.region,
138-
endpoint: parseExtUser?.TenantId?.FileAdapter?.endpoint,
139-
accessKeyId: parseExtUser?.TenantId?.FileAdapter?.accessKeyId,
140-
secretAccessKey: parseExtUser?.TenantId?.FileAdapter?.secretAccessKey,
141-
baseUrl: parseExtUser?.TenantId?.FileAdapter?.baseUrl,
142-
};
133+
let adapter = {};
134+
const ActiveFileAdapter = parseExtUser?.TenantId?.ActiveFileAdapter || '';
135+
if (ActiveFileAdapter) {
136+
adapter =
137+
parseExtUser?.TenantId?.FileAdapters?.find(x => (x.id = ActiveFileAdapter)) || {};
138+
}
139+
if (adapter?.id) {
143140
const filedata = Buffer.from(base64File, 'base64');
144141
// `uploadFileToS3` is used to save document in user's file storage
145142
fileUrl = await uploadFileToS3(filedata, filename, 'application/pdf', adapter);
@@ -180,9 +177,7 @@ export default async function createDocumentwithCoordinate(request, response) {
180177
object.set('IsTourEnabled', isTourEnabled);
181178
object.set('IsSendMail', send_email);
182179
if (parseExtUser?.TenantId?.ActiveFileAdapter) {
183-
object.set('IsFileAdapter', true);
184-
} else {
185-
object.set('IsFileAdapter', false);
180+
object.set('FileAdapterId', parseExtUser?.TenantId?.ActiveFileAdapter);
186181
}
187182
let contact = [];
188183
if (signers && signers.length > 0) {

0 commit comments

Comments
 (0)