diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js index 0f5857aa1..2ed415c83 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js @@ -121,4 +121,4 @@ export default async function createDocumentWithTemplate(request, response) { } return response.status(400).json({ error: 'Something went wrong!' }); } -} +} \ No newline at end of file diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js index ba6ffa503..59aa21aa2 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js @@ -2,9 +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' }); @@ -16,143 +16,127 @@ export default async function createContact(request, response) { // Valid Token then proceed request const userPtr = token.get('userId'); try { - const contactbook = new Parse.Query('contracts_Contactbook'); - contactbook.equalTo('Email', email); - contactbook.equalTo('CreatedBy', userPtr); + const Tenant = new Parse.Query('partners_Tenant'); + Tenant.equalTo('UserId', userPtr); + const tenantRes = await Tenant.first({ useMasterKey: true }); - const userExists = await contactbook.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 && tenantRes.id) { + contactQuery.set('TenantId', { + __type: 'Pointer', + className: 'partners_Tenant', + objectId: tenantRes.id, + }); + } + try { + const _users = Parse.Object.extend('User'); + const _user = new _users(); + _user.set('name', name); + _user.set('username', email); + _user.set('email', email); + _user.set('phone', phone); + _user.set('password', phone); - if (userExists) { - return response - .status(401) - .json({ error: 'Contact already exists!', objectId: userExists.id }); - } else { - try { - const Tenant = new Parse.Query('partners_Tenant'); - Tenant.equalTo('UserId', userPtr); - const tenantRes = await Tenant.first({ useMasterKey: true }); + const user = await _user.save(); + if (user) { + const roleurl = `${serverUrl}/functions/AddUserToRole`; + const headers = { + 'Content-Type': 'application/json', + 'X-Parse-Application-Id': appId, + // sessionToken: localStorage.getItem('accesstoken'), + }; + const body = { + appName: 'contracts', + roleName: 'contracts_Guest', + userId: user.id, + }; + await axios.post(roleurl, body, { headers: headers }); + const currentUser = userPtr; + contactQuery.set('CreatedBy', currentUser); + contactQuery.set('UserId', user); - 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 && tenantRes.id) { - contactQuery.set('TenantId', { - __type: 'Pointer', - className: 'partners_Tenant', - objectId: tenantRes.id, + const acl = new Parse.ACL(); + acl.setReadAccess(userPtr.id, true); + acl.setWriteAccess(userPtr.id, true); + acl.setReadAccess(user.id, true); + acl.setWriteAccess(user.id, true); + contactQuery.setACL(acl); + + const contactRes = await contactQuery.save(); + const parseRes = JSON.parse(JSON.stringify(contactRes)); + return response.json({ + objectId: parseRes.objectId, + Name: parseRes.Name, + Email: parseRes.Email, + Phone: parseRes.Phone, + createdAt: parseRes.createdAt, + updatedAt: parseRes.updatedAt, + }); + } + } catch (err) { + console.log('err in', err); + if (err.code === 202) { + const params = { email: email }; + const userRes = await Parse.Cloud.run('getUserId', params); + const roleurl = `${serverUrl}/functions/AddUserToRole`; + const headers = { + 'Content-Type': 'application/json', + 'X-Parse-Application-Id': appId, + // sessionToken: localStorage.getItem('accesstoken'), + }; + const body = { + appName: 'contracts', + roleName: 'contracts_Guest', + userId: userRes.id, + }; + await axios.post(roleurl, body, { headers: headers }); + contactQuery.set('CreatedBy', userPtr); + contactQuery.set('UserId', { + __type: 'Pointer', + className: '_User', + objectId: userRes.id, + }); + const acl = new Parse.ACL(); + acl.setReadAccess(userPtr.id, true); + acl.setWriteAccess(userPtr.id, true); + acl.setReadAccess(userRes.id, true); + acl.setWriteAccess(userRes.id, true); + + contactQuery.setACL(acl); + const contactRes = await contactQuery.save(); + if (contactRes) { + const parseRes = JSON.parse(JSON.stringify(contactRes)); + return response.json({ + objectId: parseRes.objectId, + Name: parseRes.Name, + Email: parseRes.Email, + Phone: parseRes.Phone, + createdAt: parseRes.createdAt, + updatedAt: parseRes.updatedAt, }); } - try { - const _users = Parse.Object.extend('User'); - const _user = new _users(); - _user.set('name', name); - _user.set('username', email); - _user.set('email', email); - _user.set('phone', phone); - _user.set('password', phone); - - const user = await _user.save(); - if (user) { - const roleurl = `${serverUrl}/functions/AddUserToRole`; - const headers = { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - // sessionToken: localStorage.getItem('accesstoken'), - }; - const body = { - appName: 'contracts', - roleName: 'contracts_Guest', - userId: user.id, - }; - await axios.post(roleurl, body, { headers: headers }); - const currentUser = userPtr; - contactQuery.set('CreatedBy', currentUser); - contactQuery.set('UserId', user); - - const acl = new Parse.ACL(); - acl.setReadAccess(userPtr.id, true); - acl.setWriteAccess(userPtr.id, true); - acl.setReadAccess(user.id, true); - acl.setWriteAccess(user.id, true); - contactQuery.setACL(acl); - - const contactRes = await contactQuery.save(); - const parseRes = JSON.parse(JSON.stringify(contactRes)); - return response.json({ - objectId: parseRes.objectId, - Name: parseRes.Name, - Email: parseRes.Email, - Phone: parseRes.Phone, - createdAt: parseRes.createdAt, - updatedAt: parseRes.updatedAt, - }); - } - } catch (err) { - console.log('err in', err); - if (err.code === 202) { - const params = { email: email }; - const userRes = await Parse.Cloud.run('getUserId', params); - const roleurl = `${serverUrl}/functions/AddUserToRole`; - const headers = { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - // sessionToken: localStorage.getItem('accesstoken'), - }; - const body = { - appName: 'contracts', - roleName: 'contracts_Guest', - userId: userRes.id, - }; - await axios.post(roleurl, body, { headers: headers }); - contactQuery.set('CreatedBy', userPtr); - contactQuery.set('UserId', { - __type: 'Pointer', - className: '_User', - objectId: userRes.id, - }); - const acl = new Parse.ACL(); - acl.setReadAccess(userPtr.id, true); - acl.setWriteAccess(userPtr.id, true); - acl.setReadAccess(userRes.id, true); - acl.setWriteAccess(userRes.id, true); - - contactQuery.setACL(acl); - const contactRes = await contactQuery.save(); - if (contactRes) { - const parseRes = JSON.parse(JSON.stringify(contactRes)); - return response.json({ - objectId: parseRes.objectId, - Name: parseRes.Name, - Email: parseRes.Email, - Phone: parseRes.Phone, - createdAt: parseRes.createdAt, - updatedAt: parseRes.updatedAt, - }); - } - } else { - if (err.code === 137) { - return response.status(401).json({ error: 'Contact already exists!' }); - } - return response - .status(400) - .json({ error: 'Something went wrong, please try again later!' }); - } - } - } catch (err) { - console.log('err ', err); + } else { if (err.code === 137) { return response.status(401).json({ error: 'Contact already exists!' }); - } else { - return response - .status(400) - .json({ error: 'Something went wrong, please try again later!' }); } + return response + .status(400) + .json({ error: 'Something went wrong, please try again later!' }); } } } catch (err) { - return response.status(400).json({ error: 'Something went wrong, please try again later!' }); + console.log('err ', err); + if (err.code === 137) { + return response.status(401).json({ error: 'Contact already exists!' }); + } else { + 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 8b93a72d2..78c0549ec 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js @@ -1,5 +1,3 @@ -// import batchQuery from './batchquery.js'; - import axios from 'axios'; // const randomId = () => Math.floor(1000 + Math.random() * 9000); @@ -130,4 +128,4 @@ export default async function createDocument(request, response) { console.log('err ', err); return response.status(400).json({ error: 'Something went wrong!' }); } -} +} \ No newline at end of file diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js index 36014c48f..cfc910e0e 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js @@ -114,4 +114,4 @@ export default async function createTemplate(request, response) { console.log('err ', err); return response.status(400).json({ error: 'Something went wrong, please try again later!' }); } -} +} \ No newline at end of file diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getWebhook.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getWebhook.js index c022d0d38..9b55c3cf0 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getWebhook.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getWebhook.js @@ -1,4 +1,5 @@ export default async function getWebhook(request, response) { + const Url = request.body.Url; const reqToken = request.headers['x-api-token']; if (!reqToken) { return response.status(400).json({ error: 'Please Provide API Token' }); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/saveWebhook.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/saveWebhook.js index 675fe6e90..3c2051a31 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/saveWebhook.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/saveWebhook.js @@ -1,5 +1,5 @@ export default async function saveWebhook(request, response) { - const Url = request.body.url; + const Url = request.body.Url; const reqToken = request.headers['x-api-token']; if (!reqToken) { return response.status(400).json({ error: 'Please Provide API Token' }); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js index 30c9b9d41..2253afca8 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js @@ -8,8 +8,8 @@ export default async function updateDocument(request, response) { tokenQuery.equalTo('token', reqToken); const token = await tokenQuery.first({ useMasterKey: true }); if (token !== undefined) { - // Valid Token then proceed request - const allowedKeys = ['name', 'note', 'description']; + // Valid Token then proceed request + const allowedKeys = ['Name', 'Note', 'Description']; const objectKeys = Object.keys(request.body); const isValid = objectKeys.every(key => allowedKeys.includes(key)) && objectKeys.length > 0; if (isValid) { diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js index 38dac8e6d..b9cd47949 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js @@ -9,7 +9,7 @@ export default async function updateTemplate(request, response) { const token = await tokenQuery.first({ useMasterKey: true }); if (token !== undefined) { // Valid Token then proceed request - const allowedKeys = ['name', 'note', 'description']; + const allowedKeys = ['Name', 'Note', 'Description']; const objectKeys = Object.keys(request.body); const isValid = objectKeys.every(key => allowedKeys.includes(key)) && objectKeys.length > 0; if (isValid) { diff --git a/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js b/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js index dc26a3e09..701ebd608 100644 --- a/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js +++ b/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js @@ -4,11 +4,20 @@ async function DocumentAftersave(request) { console.log('new entry is insert in contracts_Document'); const createdAt = request.object.get('createdAt'); const Folder = request.object.get('Type'); + // console.log("createdAt") + // console.log(createdAt) + // console.log("Folder") + // console.log(Folder) + // console.log("before If condition") if (createdAt && Folder === undefined) { // console.log("IN If condition") const TimeToCompleteDays = request.object.get('TimeToCompleteDays'); const ExpiryDate = new Date(createdAt); + // console.log("ExpiryDate") + // console.log(ExpiryDate) ExpiryDate.setDate(ExpiryDate.getDate() + TimeToCompleteDays); + // console.log("ExpiryDate date after update") + // console.log(ExpiryDate) const documentQuery = new Parse.Query('contracts_Document'); const updateQuery = await documentQuery.get(request.object.id, { useMasterKey: true }); updateQuery.set('ExpiryDate', ExpiryDate); @@ -28,6 +37,8 @@ async function DocumentAftersave(request) { } const signers = request.object.get('Signers'); + // console.log("Signers") + // console.log(signers.length) // update acl of New Document If There are signers present in array if (signers && signers.length > 0) { await updateAclDoc(request.object.id); @@ -37,7 +48,7 @@ async function DocumentAftersave(request) { } } } else { - if (request?.user) { + if (request.user) { const signers = request.object.get('Signers'); if (signers && signers.length > 0) { await updateAclDoc(request.object.id); @@ -58,7 +69,6 @@ async function DocumentAftersave(request) { // console.log(objId) const Query = new Parse.Query('contracts_Document'); Query.include('Signers'); - Query.include('CreatedBy'); const updateACL = await Query.get(objId, { useMasterKey: true }); const res = JSON.parse(JSON.stringify(updateACL)); // console.log("res"); @@ -81,10 +91,9 @@ async function DocumentAftersave(request) { const newACL = new Parse.ACL(); newACL.setPublicReadAccess(false); newACL.setPublicWriteAccess(false); - if (res?.CreatedBy) { - newACL.setReadAccess(res?.CreatedBy?.objectId, true); - newACL.setWriteAccess(res?.CreatedBy?.objectId, true); - } + newACL.setReadAccess(request.user, true); + newACL.setWriteAccess(request.user, true); + UsersPtr.forEach(x => { newACL.setReadAccess(x.objectId, true); newACL.setWriteAccess(x.objectId, true); @@ -95,9 +104,9 @@ async function DocumentAftersave(request) { } async function updateSelfDoc(objId) { + // console.log("In side updateSelfDoc func") // console.log(objId) const Query = new Parse.Query('contracts_Document'); - Query.include('CreatedBy'); const updateACL = await Query.get(objId, { useMasterKey: true }); const res = JSON.parse(JSON.stringify(updateACL)); // console.log("res"); @@ -105,10 +114,8 @@ async function DocumentAftersave(request) { const newACL = new Parse.ACL(); newACL.setPublicReadAccess(false); newACL.setPublicWriteAccess(false); - if (res?.CreatedBy) { - newACL.setReadAccess(res?.CreatedBy?.objectId, true); - newACL.setWriteAccess(res?.CreatedBy?.objectId, true); - } + newACL.setReadAccess(request.user, true); + newACL.setWriteAccess(request.user, true); updateACL.setACL(newACL); updateACL.save(null, { useMasterKey: true }); } diff --git a/apps/OpenSignServer/cloud/parsefunction/TemplateAfterSave.js b/apps/OpenSignServer/cloud/parsefunction/TemplateAfterSave.js index 96389e6cc..556cf1c39 100644 --- a/apps/OpenSignServer/cloud/parsefunction/TemplateAfterSave.js +++ b/apps/OpenSignServer/cloud/parsefunction/TemplateAfterSave.js @@ -34,7 +34,6 @@ export default async function TemplateAfterSave(request) { // console.log(objId) const Query = new Parse.Query('contracts_Template'); Query.include('Signers'); - Query.include('CreatedBy'); const updateACL = await Query.get(objId, { useMasterKey: true }); const res = JSON.parse(JSON.stringify(updateACL)); // console.log("res"); @@ -57,10 +56,9 @@ export default async function TemplateAfterSave(request) { const newACL = new Parse.ACL(); newACL.setPublicReadAccess(false); newACL.setPublicWriteAccess(false); - if (res?.CreatedBy) { - newACL.setReadAccess(res?.CreatedBy?.objectId, true); - newACL.setWriteAccess(res?.CreatedBy?.objectId, true); - } + newACL.setReadAccess(request.user, true); + newACL.setWriteAccess(request.user, true); + UsersPtr.forEach(x => { newACL.setReadAccess(x.objectId, true); newACL.setWriteAccess(x.objectId, true); @@ -74,7 +72,6 @@ export default async function TemplateAfterSave(request) { // console.log("Inside updateSelfDoc func") const Query = new Parse.Query('contracts_Template'); - Query.include('CreatedBy'); const updateACL = await Query.get(objId, { useMasterKey: true }); // const res = JSON.parse(JSON.stringify(updateACL)); // console.log("res"); @@ -82,10 +79,8 @@ export default async function TemplateAfterSave(request) { const newACL = new Parse.ACL(); newACL.setPublicReadAccess(false); newACL.setPublicWriteAccess(false); - if (res?.CreatedBy) { - newACL.setReadAccess(res?.CreatedBy?.objectId, true); - newACL.setWriteAccess(res?.CreatedBy?.objectId, true); - } + newACL.setReadAccess(request.user, true); + newACL.setWriteAccess(request.user, true); updateACL.setACL(newACL); updateACL.save(null, { useMasterKey: true }); }