From 83df89c115cfba75657c833e98f3ff224756d4b6 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Wed, 17 Jan 2024 16:33:59 +0530 Subject: [PATCH] fix: create contact not working and handle err --- .../customRoute/v1/routes/createContact.js | 55 ++++++++++--------- .../customRoute/v1/routes/createDocument.js | 2 +- .../customRoute/v1/routes/createTemplate.js | 2 +- .../customRoute/v1/routes/deleteContact.js | 2 +- .../customRoute/v1/routes/deleteDocument.js | 2 +- .../customRoute/v1/routes/deleteTemplate.js | 2 +- .../cloud/customRoute/v1/routes/getContact.js | 2 +- .../customRoute/v1/routes/getContactList.js | 2 +- .../customRoute/v1/routes/getDocument.js | 2 +- .../customRoute/v1/routes/getTemplate.js | 2 +- .../customRoute/v1/routes/updateDocument.js | 2 +- .../customRoute/v1/routes/updateTemplate.js | 2 +- .../parsefunction/ContactBookAftersave.js | 8 +-- 13 files changed, 44 insertions(+), 41 deletions(-) diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js index b335f4889..c95691066 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js @@ -2,10 +2,9 @@ import axios from 'axios'; export default async function createContact(request, response) { const serverUrl = process.env.SERVER_URL; const appId = process.env.APP_ID; - const name = request.body.name; - const phone = request.body.phone; - const email = request.body.email; - + const name = request.body.Name; + const phone = request.body.Phone; + const email = request.body.Email; const reqToken = request.headers['x-api-token']; if (!reqToken) { return response.status(400).json({ error: 'Please Provide API Token' }); @@ -20,15 +19,14 @@ export default async function createContact(request, response) { try { const Tenant = new Parse.Query('partners_Tenant'); Tenant.equalTo('UserId', userId); - const tenantRes = Tenant.first({ useMasterKey: true }); + const tenantRes = await Tenant.first({ useMasterKey: true }); const contactQuery = new Parse.Object('contracts_Contactbook'); contactQuery.set('Name', name); contactQuery.set('Phone', phone); contactQuery.set('Email', email); contactQuery.set('UserRole', 'contracts_Guest'); - - if (tenantRes) { + if (tenantRes && tenantRes.id) { contactQuery.set('TenantId', { __type: 'Pointer', className: 'partners_Tenant', @@ -58,23 +56,26 @@ export default async function createContact(request, response) { userId: user.id, }; await axios.post(roleurl, body, { headers: headers }); - const currentUser = Parse.User.current(); - contactQuery.set('CreatedBy', Parse.User.createWithoutData(currentUser.id)); - + const currentUser = userId; + contactQuery.set('CreatedBy', currentUser); contactQuery.set('UserId', user); + const acl = new Parse.ACL(); - acl.setReadAccess(currentUser.id, true); - acl.setWriteAccess(currentUser.id, true); + acl.setReadAccess(id, true); + acl.setWriteAccess(id, true); acl.setReadAccess(user.id, true); acl.setWriteAccess(user.id, true); - contactQuery.setACL(acl); const contactRes = await contactQuery.save(); - // const parseData = JSON.parse(JSON.stringify(res)); + const parseRes = JSON.parse(JSON.stringify(contactRes)); return response.json({ - message: 'Contact created sucessfully!', - result: { objectId: contactRes.id }, + objectId: parseRes.objectId, + Name: parseRes.Name, + Email: parseRes.Email, + Phone: parseRes.Phone, + createdAt: parseRes.createdAt, + updatedAt: parseRes.updatedAt, }); } } catch (err) { @@ -82,10 +83,10 @@ export default async function createContact(request, response) { if (err.code === 202) { const params = { email: email }; const userRes = await Parse.Cloud.run('getUserId', params); - const roleurl = `${parseBaseUrl}functions/AddUserToRole`; + const roleurl = `${serverUrl}/functions/AddUserToRole`; const headers = { 'Content-Type': 'application/json', - 'X-Parse-Application-Id': parseAppId, + 'X-Parse-Application-Id': appId, // sessionToken: localStorage.getItem('accesstoken'), }; const body = { @@ -94,17 +95,15 @@ export default async function createContact(request, response) { userId: userRes.id, }; await axios.post(roleurl, body, { headers: headers }); - const currentUser = Parse.User.current(); - contactQuery.set('CreatedBy', Parse.User.createWithoutData(currentUser.id)); - + contactQuery.set('CreatedBy', userId); contactQuery.set('UserId', { __type: 'Pointer', className: '_User', objectId: userRes.id, }); const acl = new Parse.ACL(); - acl.setReadAccess(currentUser.id, true); - acl.setWriteAccess(currentUser.id, true); + acl.setReadAccess(id, true); + acl.setWriteAccess(id, true); acl.setReadAccess(userRes.id, true); acl.setWriteAccess(userRes.id, true); @@ -118,14 +117,18 @@ export default async function createContact(request, response) { Email: parseRes.Email, Phone: parseRes.Phone, createdAt: parseRes.createdAt, - updateAt: parseRes.updateAt, + updatedAt: parseRes.updatedAt, }); } - // const parseData = JSON.parse(JSON.stringify(res)); + } else { + return response + .status(400) + .json({ error: 'Something went wrong, please try again later!' }); } } } catch (err) { - return response.status(404).json({ error: 'Something went wrong, please try again later!' }); + console.log('err ', err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } else { return response.status(405).json({ error: 'Invalid API Token!' }); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js index 0c7b190c8..2724e3fc6 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js @@ -73,6 +73,6 @@ export default async function createDocument(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js index c477cdf9d..a2728bbcd 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js @@ -72,6 +72,6 @@ export default async function createTemplate(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js index e0997f160..1dadb0e0f 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js @@ -40,6 +40,6 @@ export default async function deleteContact(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js index d3faa0c9d..71259085f 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js @@ -40,6 +40,6 @@ export default async function deleteDocument(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js index f8e1c5ade..de3586195 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js @@ -40,6 +40,6 @@ export default async function deletedTemplate(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js index e0438036a..ad5eea4d5 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js @@ -36,6 +36,6 @@ export default async function getContact(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js index 93a28b757..02c6dd620 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js @@ -38,6 +38,6 @@ export default async function getContactList(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js index 0417dd354..d59ba86b2 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js @@ -40,6 +40,6 @@ export default async function getDocument(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js index 8a7b4ec79..2621707fc 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js @@ -40,6 +40,6 @@ export default async function getTemplate(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js index c4dcf6279..f30b07389 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js @@ -62,6 +62,6 @@ export default async function updateDocument(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js index 072e07e12..c2cdbbeee 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js @@ -62,6 +62,6 @@ export default async function updateTemplate(request, response) { } } catch (err) { console.log('err ', err); - return response.json(err); + return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } } diff --git a/apps/OpenSignServer/cloud/parsefunction/ContactBookAftersave.js b/apps/OpenSignServer/cloud/parsefunction/ContactBookAftersave.js index 644a2a763..fa476e60f 100644 --- a/apps/OpenSignServer/cloud/parsefunction/ContactBookAftersave.js +++ b/apps/OpenSignServer/cloud/parsefunction/ContactBookAftersave.js @@ -3,13 +3,13 @@ async function ContactbookAftersave(request) { you can check as follows */ if (!request.original) { const user = request.user; - const object = request.object; - + // Retrieve the current ACL const acl = new Parse.ACL(); - + // Ensure the current user has read access - if (acl) { + if (acl && request?.user) { + const object = request.object; acl.setReadAccess(user, true); acl.setWriteAccess(user, true); acl.setReadAccess(object.get('UserId'), true);