fix: webhook api not working

This commit is contained in:
prafull-opensignlabs
2024-02-14 22:10:57 +05:30
parent 13845adbd5
commit 9d15b035c5
23 changed files with 660 additions and 528 deletions
-1
View File
@@ -1,7 +1,6 @@
import React, { useEffect, useState } from "react";
import Package from "../../package.json";
import axios from "axios";
import { NavLink } from "react-router-dom";
import { openInNewTab } from "../constant/Utils";
const Footer = () => {
const [showButton, setShowButton] = useState(false);
@@ -225,7 +225,7 @@ export default async function createDocumentWithTemplate(request, response) {
sender +
"</td></tr><tr><td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Organization</td> <td> </td><td style='color:#626363;font-weight:bold'> " +
orgName +
"</td></tr> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Expire on</td><td> </td> <td style='color:#626363;font-weight:bold'>" +
"</td></tr> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Expires on</td><td> </td> <td style='color:#626363;font-weight:bold'>" +
localExpireDate +
"</td></tr><tr> <td></td> <td> </td></tr></table> </div> <div style='margin-left:70px'><a href=" +
signPdf +
@@ -300,7 +300,7 @@ export default async function createDocumentWithTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document_with_templateid',
event: 'api_create_document_with_templateid',
properties: { response_code: 200 },
});
}
@@ -317,7 +317,7 @@ export default async function createDocumentWithTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document_with_templateid',
event: 'api_create_document_with_templateid',
properties: { response_code: 400 },
});
}
@@ -327,7 +327,7 @@ export default async function createDocumentWithTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document_with_templateid',
event: 'api_create_document_with_templateid',
properties: { response_code: 400 },
});
}
@@ -337,7 +337,7 @@ export default async function createDocumentWithTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document_with_templateid',
event: 'api_create_document_with_templateid',
properties: { response_code: 404 },
});
}
@@ -9,133 +9,99 @@ export default async function createContact(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
try {
const contactbook = new Parse.Query('contracts_Contactbook');
contactbook.equalTo('Email', email);
contactbook.equalTo('CreatedBy', userPtr);
contactbook.notEqualTo('IsDeleted', true);
const userExists = await contactbook.first({ useMasterKey: true });
try {
const contactbook = new Parse.Query('contracts_Contactbook');
contactbook.equalTo('Email', email);
contactbook.equalTo('CreatedBy', userPtr);
contactbook.notEqualTo('IsDeleted', true);
const userExists = await contactbook.first({ useMasterKey: true });
if (userExists) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_contact',
properties: { response_code: 401 },
});
}
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 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,
if (userExists) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 401 },
});
}
return response
.status(401)
.json({ error: 'Contact already exists!', objectId: userExists.id });
} else {
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 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 acl = new Parse.ACL();
acl.setReadAccess(userPtr.objectId, true);
acl.setWriteAccess(userPtr.objectId, 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,
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,
});
}
} 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.objectId,
};
await axios.post(roleurl, body, { headers: headers });
contactQuery.set('CreatedBy', userPtr.objectId);
contactQuery.set('UserId', {
__type: 'Pointer',
className: '_User',
objectId: userRes.id,
});
const acl = new Parse.ACL();
acl.setReadAccess(userPtr.objectId, true);
acl.setWriteAccess(userPtr.objectId, true);
acl.setReadAccess(userRes.id, true);
acl.setWriteAccess(userRes.id, true);
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);
contactQuery.setACL(acl);
const contactRes = await contactQuery.save();
if (contactRes) {
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.objectId, true);
acl.setWriteAccess(userPtr.objectId, 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));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 200 },
});
}
return response.json({
objectId: parseRes.objectId,
name: parseRes.Name,
@@ -145,51 +111,106 @@ export default async function createContact(request, response) {
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.objectId,
};
await axios.post(roleurl, body, { headers: headers });
contactQuery.set('CreatedBy', userPtr.objectId);
contactQuery.set('UserId', {
__type: 'Pointer',
className: '_User',
objectId: userRes.id,
});
const acl = new Parse.ACL();
acl.setReadAccess(userPtr.objectId, true);
acl.setWriteAccess(userPtr.objectId, 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));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 200 },
});
}
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);
if (err.code === 137) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 401 },
});
}
return response.status(401).json({ error: 'Contact already exists!' });
} else {
if (err.code === 137) {
return response.status(401).json({ error: 'Contact already exists!' });
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 400 },
});
}
return response
.status(400)
.json({ error: 'Something went wrong, please try again later!' });
}
}
} catch (err) {
console.log('err ', err);
if (err.code === 137) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_contact',
properties: { response_code: 401 },
});
}
return response.status(401).json({ error: 'Contact already exists!' });
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_contact',
properties: { response_code: 400 },
});
}
return response
.status(400)
.json({ error: 'Something went wrong, please try again later!' });
}
}
} catch (err) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_create_contact',
properties: { response_code: 400 },
});
}
return response
.status(400)
.json({ error: 'Something went wrong, please try again later!' });
}
} catch (err) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_contact',
properties: { response_code: 400 },
});
}
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('Err ', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
}
@@ -125,7 +125,7 @@ export default async function createDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'draft_document',
event: 'api_draft_document',
properties: { response_code: 200 },
});
}
@@ -137,7 +137,7 @@ export default async function createDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'draft_document',
event: 'api_draft_document',
properties: { response_code: 400 },
});
}
@@ -60,11 +60,11 @@ export default async function createDocumentwithCoordinate(request, response) {
// console.log('fileData ', fileData);
const protocol = customAPIurl();
const baseUrl = new URL(process.env.SERVER_URL);
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
@@ -278,7 +278,7 @@ export default async function createDocumentwithCoordinate(request, response) {
sender +
"</td></tr><tr><td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Organization</td> <td> </td><td style='color:#626363;font-weight:bold'> " +
orgName +
"</td></tr> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Expire on</td><td> </td> <td style='color:#626363;font-weight:bold'>" +
"</td></tr> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Expires on</td><td> </td> <td style='color:#626363;font-weight:bold'>" +
localExpireDate +
"</td></tr><tr> <td></td> <td> </td></tr></table> </div> <div style='margin-left:70px'><a href=" +
signPdf +
@@ -337,7 +337,7 @@ export default async function createDocumentwithCoordinate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document',
event: 'api_create_document',
properties: { response_code: 200 },
});
}
@@ -354,7 +354,7 @@ export default async function createDocumentwithCoordinate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_document',
event: 'api_create_document',
properties: { response_code: 400 },
});
}
@@ -9,7 +9,7 @@ export default async function createTemplate(request, response) {
const folderId = request.body?.folderId;
const base64File = request.body.file;
const fileData = request.files?.[0] ? request.files[0].buffer : null;
const protocol = customAPIurl();
const baseUrl = new URL(process.env.SERVER_URL);
try {
const reqToken = request.headers['x-api-token'];
@@ -113,13 +113,13 @@ export default async function createTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'draft_template',
event: 'api_draft_template',
properties: { response_code: 200 },
});
}
return response.json({
objectId: res.id,
url: protocol + '/load/signmicroapp/template/' + res.id,
url: baseUrl.p + '/load/signmicroapp/template/' + res.id,
});
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
@@ -182,7 +182,7 @@ export default async function createTemplatewithCoordinate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_template',
event: 'api_create_template',
properties: { response_code: 200 },
});
}
@@ -194,7 +194,7 @@ export default async function createTemplatewithCoordinate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'create_template',
event: 'api_create_template',
properties: { response_code: 400 },
});
}
@@ -35,7 +35,7 @@ export default async function deleteContact(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_contact',
event: 'api_delete_contact',
properties: { response_code: 200 },
});
}
@@ -49,7 +49,7 @@ export default async function deleteContact(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_contact',
event: 'api_delete_contact',
properties: { response_code: 404 },
});
}
@@ -35,7 +35,7 @@ export default async function deleteDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_document',
event: 'api_delete_document',
properties: { response_code: 200 },
});
}
@@ -49,7 +49,7 @@ export default async function deleteDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_document',
event: 'api_delete_document',
properties: { response_code: 404 },
});
}
@@ -1,9 +1,9 @@
export default async function deletedTemplate(request, response) {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
@@ -23,6 +23,13 @@ export default async function deletedTemplate(request, response) {
if (res) {
const isArchive = res.get('IsArchive');
if (isArchive && isArchive) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_delete_template',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'Template not found!' });
} else {
const template = Parse.Object.extend('contracts_Template');
@@ -34,7 +41,7 @@ export default async function deletedTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_template',
event: 'api_delete_template',
properties: { response_code: 200 },
});
}
@@ -48,7 +55,7 @@ export default async function deletedTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_template',
event: 'api_delete_template',
properties: { response_code: 404 },
});
}
@@ -3,50 +3,55 @@ export default async function deleteWebhook(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const updateQuery = new Parse.Object('contracts_Users');
updateQuery.id = user.id;
updateQuery.unset('Webhook');
const res = await updateQuery.save(null, { useMasterKey: true });
if (res) {
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const updateQuery = new Parse.Object('contracts_Users');
updateQuery.id = user.id;
updateQuery.unset('Webhook');
const res = await updateQuery.save(null, { useMasterKey: true });
if (res) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_delete_webhook',
properties: { response_code: 200 },
});
}
return response.json({
result: 'Webhook deleted successfully!',
});
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_webhook',
properties: { response_code: 200 },
event: 'api_delete_webhook',
properties: { response_code: 404 },
});
}
return response.json({
result: 'Webhook deleted successfully!',
});
return response.status(404).json({ error: 'User not found!' });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'delete_webhook',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('err ', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
}
@@ -29,7 +29,7 @@ export default async function getContact(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_contact',
event: 'api_get_contact',
properties: { response_code: 200 },
});
}
@@ -45,7 +45,7 @@ export default async function getContact(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_contact',
event: 'api_get_contact',
properties: { response_code: 404 },
});
}
@@ -38,7 +38,7 @@ export default async function getContactList(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_contact_list',
event: 'api_get_contact_list',
properties: { response_code: 200 },
});
}
@@ -47,7 +47,7 @@ export default async function getContactList(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_contact_list',
event: 'api_get_contact_list',
properties: { response_code: 200 },
});
}
@@ -29,7 +29,7 @@ export default async function getDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_document',
event: 'api_get_document',
properties: { response_code: 200 },
});
}
@@ -50,7 +50,7 @@ export default async function getDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_document',
event: 'api_get_document',
properties: { response_code: 404 },
});
}
@@ -10,92 +10,97 @@ export default async function getDocumentList(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const docType = request.params.doctype;
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
let reportId;
switch (docType) {
case 'draftdocuments':
reportId = 'ByHuevtCFY';
break;
case 'signaturerequest':
reportId = '4Hhwbp482K';
break;
case 'inprogressdocuments':
reportId = '1MwEuxLEkF';
break;
case 'completedocuments':
reportId = 'kQUoW4hUXz';
break;
case 'expiredocuments':
reportId = 'zNqBHXHsYH';
break;
case 'declinedocuments':
reportId = 'UPr2Fm5WY3';
break;
default:
reportId = '';
}
const json = reportId && reportJson(reportId, userPtr.objectId);
const clsName = 'contracts_Document';
if (reportId && json) {
const { params, keys } = json;
const orderBy = '-updatedAt';
const strParams = JSON.stringify(params);
const strKeys = keys.join();
const headers = {
'Content-Type': 'application/json',
'X-Parse-Application-Id': appId,
'X-Parse-Master-Key': process.env.MASTER_KEY,
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr`;
const res = await axios.get(url, { headers: headers });
if (res.data && res.data.results.length > 0) {
const docType = request.params.doctype;
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
let reportId;
switch (docType) {
case 'draftdocuments':
reportId = 'ByHuevtCFY';
break;
case 'signaturerequest':
reportId = '4Hhwbp482K';
break;
case 'inprogressdocuments':
reportId = '1MwEuxLEkF';
break;
case 'completedocuments':
reportId = 'kQUoW4hUXz';
break;
case 'expiredocuments':
reportId = 'zNqBHXHsYH';
break;
case 'declinedocuments':
reportId = 'UPr2Fm5WY3';
break;
default:
reportId = '';
}
const json = reportId && reportJson(reportId, userPtr.objectId);
const clsName = 'contracts_Document';
if (reportId && json) {
const { params, keys } = json;
const orderBy = '-updatedAt';
const strParams = JSON.stringify(params);
const strKeys = keys.join();
const headers = {
'Content-Type': 'application/json',
'X-Parse-Application-Id': appId,
'X-Parse-Master-Key': process.env.MASTER_KEY,
};
const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr`;
const res = await axios.get(url, { headers: headers });
if (res.data && res.data.results.length > 0) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_document_list_by_status',
properties: { response_code: 200 },
});
}
const updateRes = res.data.results.map(x => ({
objectId: x.objectId,
title: x.Name,
note: x.Note || '',
folder: { objectId: x?.Folder?.objectId, name: x?.Folder?.Name } || '',
file: x?.SignedUrl || x.URL,
owner: x?.ExtUserPtr?.Name,
signers:
x?.Signers?.map(y => ({ name: y?.Name, email: y?.Email, phone: y?.Phone })) || [],
createdAt: x.createdAt,
updatedAt: x.updatedAt,
}));
return response.json({ result: updateRes });
} else {
return response.json({ result: [] });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_document_list_by_status',
properties: { response_code: 200 },
event: 'api_get_document_list_by_status',
properties: { response_code: 404 },
});
}
const updateRes = res.data.results.map(x => ({
objectId: x.objectId,
title: x.Name,
note: x.Note || '',
folder: { objectId: x?.Folder?.objectId, name: x?.Folder?.Name } || '',
file: x?.SignedUrl || x.URL,
owner: x?.ExtUserPtr?.Name,
signers:
x?.Signers?.map(y => ({ name: y?.Name, email: y?.Email, phone: y?.Phone })) || [],
createdAt: x.createdAt,
updatedAt: x.updatedAt,
}));
return response.json({ result: updateRes });
} else {
return response.json({ result: [] });
return response.status(404).json({ error: 'Report not available!' });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_document_list_by_status',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'Report not available!' });
}
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('Err', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -31,7 +31,7 @@ export default async function getTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_template',
event: 'api_get_template',
properties: { response_code: 200 },
});
}
@@ -40,7 +40,7 @@ export default async function getTemplate(request, response) {
title: template.Name,
note: template.Note || '',
folder: { objectId: template?.Folder?.objectId, name: template?.Folder?.Name } || '',
file: template?.SignedUrl || x.URL,
file: template?.SignedUrl || template?.URL,
owner: template?.ExtUserPtr?.Name,
signers:
template?.Signers?.map(y => ({ name: y?.Name, email: y?.Email, phone: y?.Phone })) ||
@@ -52,7 +52,7 @@ export default async function getTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_template',
event: 'api_get_template',
properties: { response_code: 404 },
});
}
@@ -8,81 +8,87 @@ export default async function getTemplatetList(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
const clsName = 'contracts_Template';
const params = {
Type: { $ne: 'Folder' },
CreatedBy: userPtr,
IsArchive: { $ne: true },
};
const keys = [
'Name',
'Note',
'Description',
'Folder.Name',
'URL',
'SignedUrl',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
];
const orderBy = '-updatedAt';
const strParams = JSON.stringify(params);
const strKeys = keys.join();
const headers = {
'Content-Type': 'application/json',
'X-Parse-Application-Id': appId,
'X-Parse-Master-Key': process.env.MASTER_KEY,
};
const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr`;
const res = await axios.get(url, { headers: headers });
if (res.data && res.data.results.length > 0) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_template_list',
properties: { response_code: 200 },
});
const clsName = 'contracts_Template';
const params = {
Type: { $ne: 'Folder' },
CreatedBy: userPtr,
IsArchive: { $ne: true },
};
const keys = [
'Name',
'Note',
'Description',
'Folder.Name',
'URL',
'SignedUrl',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
];
const orderBy = '-updatedAt';
const strParams = JSON.stringify(params);
const strKeys = keys.join();
const headers = {
'Content-Type': 'application/json',
'X-Parse-Application-Id': appId,
'X-Parse-Master-Key': process.env.MASTER_KEY,
};
const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr`;
const res = await axios.get(url, { headers: headers });
if (res.data && res.data.results.length > 0) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_template_list',
properties: { response_code: 200 },
});
}
const updateRes = res.data.results.map(x => ({
objectId: x.objectId,
title: x.Name,
note: x.Note || '',
folder: { objectId: x?.Folder?.objectId, name: x?.Folder?.Name } || '',
file: x?.SignedUrl || x.URL,
owner: x?.ExtUserPtr?.Name,
signers:
x?.Signers?.map(y => ({ name: y?.Name, email: y?.Email, phone: y?.Phone })) || [],
createdAt: x.createdAt,
updatedAt: x.updatedAt,
}));
return response.json({ result: updateRes });
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_template_list',
properties: { response_code: 200 },
});
}
return response.json({ result: [] });
}
const updateRes = res.data.results.map(x => ({
objectId: x.objectId,
title: x.Name,
note: x.Note || '',
folder: { objectId: x?.Folder?.objectId, name: x?.Folder?.Name } || '',
file: x?.SignedUrl || x.URL,
owner: x?.ExtUserPtr?.Name,
signers: x?.Signers?.map(y => ({ name: y?.Name, email: y?.Email, phone: y?.Phone })) || [],
createdAt: x.createdAt,
updatedAt: x.updatedAt,
}));
return response.json({ result: updateRes });
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_template_list',
properties: { response_code: 200 },
});
}
return response.json({ result: [] });
}
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('err', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -6,52 +6,57 @@ export default async function getUser(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
query.exclude('IsContactEntry,TourStatus,UserRole,TenantId,UserId,CreatedBy,Plan');
const user = await query.first({ useMasterKey: true });
if (user) {
const parseRes = JSON.parse(JSON.stringify(user));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_your_account_details',
properties: { response_code: 200 },
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
query.exclude('IsContactEntry,TourStatus,UserRole,TenantId,UserId,CreatedBy,Plan');
const user = await query.first({ useMasterKey: true });
if (user) {
const parseRes = JSON.parse(JSON.stringify(user));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_your_account_details',
properties: { response_code: 200 },
});
}
return response.json({
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
jobTitle: parseRes.JobTitle,
company: parseRes.Company,
createdAt: parseRes.createdAt,
updatedAt: parseRes.updatedAt,
});
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_your_account_details',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
}
return response.json({
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
jobTitle: parseRes.JobTitle,
company: parseRes.Company,
createdAt: parseRes.createdAt,
updatedAt: parseRes.updatedAt,
});
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_your_account_details',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
}
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('Err', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -3,48 +3,53 @@ export default async function getWebhook(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const parseUser = JSON.parse(JSON.stringify(user));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_webhook',
properties: { response_code: 200 },
});
}
if (parseUser && parseUser.Webhook) {
return response.json({
webhook: parseUser.Webhook,
});
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const extUser = JSON.parse(JSON.stringify(user));
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_webhook',
properties: { response_code: 200 },
});
}
if (extUser && extUser.Webhook) {
return response.json({
webhook: extUser.Webhook,
});
} else {
return response.json({});
}
} else {
return response.json({});
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_get_webhook',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'get_webhook',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('Err ', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
}
@@ -4,78 +4,82 @@ export default async function saveWebhook(request, response) {
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const parseUser = JSON.parse(JSON.stringify(user));
const isUrlExist = parseUser?.Webhook && parseUser?.Webhook === Url;
try {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
tokenQuery.include('userId');
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const parseUser = JSON.parse(JSON.stringify(token));
const userPtr = {
__type: 'Pointer',
className: '_User',
objectId: parseUser.userId.objectId,
};
const query = new Parse.Query('contracts_Users');
query.equalTo('UserId', userPtr);
const user = await query.first({ useMasterKey: true });
if (user) {
const extUser = JSON.parse(JSON.stringify(user));
const isUrlExist = extUser?.Webhook && extUser?.Webhook === Url;
if (!isUrlExist) {
try {
const updateQuery = new Parse.Object('contracts_Users');
updateQuery.id = user.id;
updateQuery.set('Webhook', Url);
const res = await updateQuery.save(null, { useMasterKey: true });
if (res) {
if (!isUrlExist) {
try {
const updateQuery = new Parse.Object('contracts_Users');
updateQuery.id = user.id;
updateQuery.set('Webhook', Url);
const res = await updateQuery.save(null, { useMasterKey: true });
if (res) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'api_save_webhook',
properties: { response_code: 200 },
});
}
return response.json({
result: 'Webhook updated successfully!',
});
}
} catch (err) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'save_webhook',
properties: { response_code: 200 },
event: 'api_save_webhook',
properties: { response_code: 400 },
});
}
return response.json({
result: 'Webhook updated successfully!',
});
console.log('Err ', err);
return response
.status(400)
.json({ error: 'Something went wrong, please try again later!' });
}
} catch (err) {
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'save_webhook',
properties: { response_code: 400 },
event: 'api_save_webhook',
properties: { response_code: 401 },
});
}
console.log('Err ', err);
return response
.status(400)
.json({ error: 'Something went wrong, please try again later!' });
return response.status(401).json({ error: 'Webhook url already exists!' });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'save_webhook',
properties: { response_code: 401 },
event: 'api_save_webhook',
properties: { response_code: 404 },
});
}
return response.status(401).json({ error: 'Webhook url already exists!' });
return response.status(404).json({ error: 'User not found!' });
}
} else {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'save_webhook',
properties: { response_code: 404 },
});
}
return response.status(404).json({ error: 'User not found!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
} catch (err) {
console.log('Err ', err);
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
}
}
// client.shutdown()
@@ -10,7 +10,7 @@ export default async function updateDocument(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', 'folderId'];
const objectKeys = Object.keys(request.body);
const isValid = objectKeys.every(key => allowedKeys.includes(key)) && objectKeys.length > 0;
const parseUser = JSON.parse(JSON.stringify(token));
@@ -53,7 +53,7 @@ export default async function updateDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_document',
event: 'api_update_document',
properties: { response_code: 200 },
});
}
@@ -67,7 +67,7 @@ export default async function updateDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_document',
event: 'api_update_document',
properties: { response_code: 404 },
});
}
@@ -77,7 +77,7 @@ export default async function updateDocument(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_document',
event: 'api_update_document',
properties: { response_code: 400 },
});
}
@@ -10,7 +10,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', 'folderId'];
const objectKeys = Object.keys(request.body);
const isValid = objectKeys.every(key => allowedKeys.includes(key)) && objectKeys.length > 0;
const parseUser = JSON.parse(JSON.stringify(token));
@@ -53,7 +53,7 @@ export default async function updateTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_template',
event: 'api_update_template',
properties: { response_code: 200 },
});
}
@@ -67,7 +67,7 @@ export default async function updateTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_template',
event: 'api_update_template',
properties: { response_code: 404 },
});
}
@@ -77,7 +77,7 @@ export default async function updateTemplate(request, response) {
if (request.posthog) {
request.posthog?.capture({
distinctId: parseUser.userId.email,
event: 'update_template',
event: 'api_update_template',
properties: { response_code: 400 },
});
}
@@ -22,7 +22,16 @@ export default function reportJson(id, userId) {
objectId: currentUserId,
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// Need your sign report
case '4Hhwbp482K':
@@ -57,6 +66,8 @@ export default function reportJson(id, userId) {
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
'Signers.UserId',
'AuditTrail',
],
@@ -81,7 +92,16 @@ export default function reportJson(id, userId) {
$gt: { __type: 'Date', iso: new Date().toISOString() },
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// completed documents report
case 'kQUoW4hUXz':
@@ -106,6 +126,8 @@ export default function reportJson(id, userId) {
'SignedUrl',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
'TimeToCompleteDays',
],
};
@@ -125,7 +147,16 @@ export default function reportJson(id, userId) {
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// Expired Documents report
case 'zNqBHXHsYH':
@@ -155,7 +186,16 @@ export default function reportJson(id, userId) {
objectId: currentUserId,
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// Recently sent for signatures report show on dashboard
case 'd9k3UfYHBc':
@@ -177,7 +217,15 @@ export default function reportJson(id, userId) {
$gt: { __type: 'Date', iso: new Date().toISOString() },
},
},
keys: ['Name', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// Recent signature requests report show on dashboard
case '5Go51Q7T8r':
@@ -205,7 +253,16 @@ export default function reportJson(id, userId) {
},
},
},
keys: ['Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name', 'Signers.UserId', 'AuditTrail'],
keys: [
'Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.UserId',
'AuditTrail',
'Signers.Email',
'Signers.Phone',
],
};
// Drafts report show on dashboard
case 'kC5mfynCi4':
@@ -227,7 +284,16 @@ export default function reportJson(id, userId) {
objectId: currentUserId,
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
// contact book report
case '5KhaPr482K':
@@ -258,7 +324,16 @@ export default function reportJson(id, userId) {
objectId: currentUserId,
},
},
keys: ['Name', 'Note', 'Folder.Name', 'URL', 'ExtUserPtr.Name', 'Signers.Name'],
keys: [
'Name',
'Note',
'Folder.Name',
'URL',
'ExtUserPtr.Name',
'Signers.Name',
'Signers.Email',
'Signers.Phone',
],
};
default:
return null;