fix: make phone field optional for contact

This commit is contained in:
prafull-opensignlabs
2024-05-29 17:55:22 +05:30
parent 634db83e8e
commit 6f50de1ef1
25 changed files with 117 additions and 99 deletions
@@ -46,10 +46,10 @@ async function sendMail(doc, signer, mailcount) {
document_title: doc.Name,
sender_name: doc.ExtUserPtr.Name,
sender_mail: doc.ExtUserPtr.Email,
sender_phone: doc.ExtUserPtr.Phone,
sender_phone: doc.ExtUserPtr?.Phone || '',
receiver_name: signer.Name,
receiver_email: signer.Email,
receiver_phone: signer.Phone,
receiver_phone: signer?.Phone || '',
expiry_date: localExpireDate,
company_name: doc?.ExtUserPtr?.Company || '',
signing_url: `<a href=${signPdf}>Sign here</a>`,
@@ -265,10 +265,10 @@ export default async function createDocumentWithTemplate(request, response) {
document_title: template.Name,
sender_name: template.ExtUserPtr.Name,
sender_mail: template.ExtUserPtr.Email,
sender_phone: template.ExtUserPtr.Phone,
sender_phone: template.ExtUserPtr?.Phone || '',
receiver_name: contactMail[i].name,
receiver_email: contactMail[i].email,
receiver_phone: contactMail[i].phone,
receiver_phone: contactMail[i]?.phone || '',
expiry_date: localExpireDate,
company_name: orgName,
signing_url: signPdf,
@@ -314,7 +314,11 @@ export default async function createDocumentWithTemplate(request, response) {
name: template?.Name,
note: template?.Note || '',
description: template?.Description || '',
signers: contact?.map(x => ({ name: x.name, email: x.email, phone: x.phone })),
signers: contact?.map(x => ({
name: x.name,
email: x.email,
phone: x?.phone || '',
})),
createdAt: res.createdAt,
};
if (template.ExtUserPtr && template.ExtUserPtr?.Webhook) {
@@ -3,7 +3,7 @@ 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 phone = request.body?.phone;
const email = request.body.email;
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
@@ -49,7 +49,9 @@ export default async function createContact(request, response) {
const contactQuery = new Parse.Object('contracts_Contactbook');
contactQuery.set('Name', name);
contactQuery.set('Phone', phone);
if (phone) {
contactQuery.set('Phone', phone);
}
contactQuery.set('Email', email);
contactQuery.set('UserRole', 'contracts_Guest');
if (tenantRes && tenantRes.id) {
@@ -65,8 +67,10 @@ export default async function createContact(request, response) {
_user.set('name', name);
_user.set('username', email);
_user.set('email', email);
_user.set('phone', phone);
_user.set('password', phone);
_user.set('password', email);
if (phone) {
_user.set('phone', phone);
}
const user = await _user.save();
if (user) {
@@ -106,7 +110,7 @@ export default async function createContact(request, response) {
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
phone: parseRes?.Phone || '',
createdAt: parseRes.createdAt,
updatedAt: parseRes.updatedAt,
});
@@ -155,7 +159,7 @@ export default async function createContact(request, response) {
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
phone: parseRes?.Phone || '',
createdAt: parseRes.createdAt,
updatedAt: parseRes.updatedAt,
});
@@ -255,7 +255,7 @@ export default async function createDocumentwithCoordinate(request, response) {
name: name,
note: note || '',
description: description || '',
signers: contact?.map(x => ({ name: x.name, email: x.email, phone: x.phone })),
signers: contact?.map(x => ({ name: x.name, email: x.email, phone: x?.phone || '' })),
createdAt: res.createdAt,
};
if (parseExtUser && parseExtUser.Webhook) {
@@ -325,10 +325,10 @@ export default async function createDocumentwithCoordinate(request, response) {
document_title: name,
sender_name: parseExtUser.Name,
sender_mail: parseExtUser.Email,
sender_phone: parseExtUser.Phone,
sender_phone: parseExtUser?.Phone || '',
receiver_name: contactMail[i].name,
receiver_email: contactMail[i].email,
receiver_phone: contactMail[i].phone,
receiver_phone: contactMail[i]?.phone || '',
expiry_date: localExpireDate,
company_name: orgName,
signing_url: signPdf,
@@ -91,7 +91,7 @@ export default async function createTemplatewithCoordinate(request, response) {
let createContactUrl = protocol + '/v1/createcontact';
for (const [index, element] of parseSigners.entries()) {
if (element?.name && element.phone && element?.email) {
if (element?.name && element?.email) {
const body = {
name: element?.name || '',
email: element?.email || '',
@@ -37,7 +37,7 @@ export default async function getContact(request, response) {
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
phone: parseRes?.Phone || '',
createdAt: parseRes.createdAt,
updatedAt: parseRes.updatedAt,
});
@@ -31,7 +31,7 @@ export default async function getContactList(request, response) {
objectId: x.objectId,
name: x.Name,
email: x.Email,
phone: x.Phone,
phone: x?.Phone || '',
createdAt: x.createdAt,
updatedAt: x.updatedAt,
}));
@@ -37,7 +37,7 @@ export default async function getUser(request, response) {
objectId: parseRes.objectId,
name: parseRes.Name,
email: parseRes.Email,
phone: parseRes.Phone,
phone: parseRes?.Phone || '',
jobTitle: parseRes.JobTitle,
company: parseRes.Company,
createdAt: parseRes.createdAt,
@@ -97,10 +97,10 @@ export default async function resendMail(request, response) {
document_title: title,
sender_name: _resDoc.ExtUserPtr.Name,
sender_mail: _resDoc.ExtUserPtr.Email,
sender_phone: _resDoc.ExtUserPtr.Phone,
sender_phone: _resDoc.ExtUserPtr?.Phone || '',
receiver_name: contact.Name,
receiver_email: contact.Email,
receiver_phone: contact.Phone,
receiver_phone: contact?.Phone || '',
expiry_date: localExpireDate,
company_name: orgName,
signing_url: signPdf,
@@ -8,7 +8,9 @@ async function ContractUsersAftersave(request) {
contactbook.set('Name', request.object.get('Name'));
contactbook.set('Email', request.object.get('Email'));
contactbook.set('ExtUserPtr', request.object.get('objectId'));
contactbook.set('Phone', request.object.get('Phone'));
if (request.object?.get('Phone')) {
contactbook.set('Phone', request.object.get('Phone'));
}
contactbook.set('ExtUserPtr', {
__type: 'Pointer',
className: 'contracts_Users',
@@ -1,4 +1,4 @@
import axios from "axios";
import axios from 'axios';
const serverUrl = process.env.SERVER_URL;
const APPID = process.env.APP_ID;
@@ -18,23 +18,23 @@ export default async function FacebookSign(request) {
const userGoogleId = request.params.Id;
const userAccessToken = request.params.AccessToken;
const userEmail = request.params.Email;
const phone = request.params.Phone;
const phone = request.params?.Phone || '';
const name = request.params.Name;
const authData = {
facebook: { id: userGoogleId, access_token: userAccessToken },
};
const userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("email", userEmail);
userQuery.equalTo('email', userEmail);
const res = await userQuery.first({ useMasterKey: true });
if (res) {
try {
const SignIn = await axios.put(
serverUrl + "/users/" + res.id,
serverUrl + '/users/' + res.id,
{ authData: authData },
{
headers: {
"X-Parse-Application-Id": APPID,
"X-Parse-Master-key": masterKEY,
'X-Parse-Application-Id': APPID,
'X-Parse-Master-key': masterKEY,
},
}
);
@@ -42,22 +42,22 @@ export default async function FacebookSign(request) {
if (SignIn.data) {
// console.log("google Sign in", SignIn);
const sessiontoken = SignIn.data.sessionToken;
console.log("Google sessiontoken", sessiontoken);
console.log('Google sessiontoken', sessiontoken);
return {
email: userEmail,
message: "User Sign In",
message: 'User Sign In',
sessiontoken: sessiontoken,
};
}
} catch (err) {
console.log("err in user google sign in", err);
return { message: "Internal server error" };
console.log('err in user google sign in', err);
return { message: 'Internal server error' };
}
} else {
// console.log("in sign up condition");
try {
const SignUp = await axios.post(
serverUrl + "/users",
serverUrl + '/users',
{
authData: authData,
username: userEmail,
@@ -67,8 +67,8 @@ export default async function FacebookSign(request) {
},
{
headers: {
"X-Parse-Application-Id": APPID,
"X-Parse-Revocable-Session": "1",
'X-Parse-Application-Id': APPID,
'X-Parse-Revocable-Session': '1',
},
}
);
@@ -79,14 +79,14 @@ export default async function FacebookSign(request) {
const sessiontoken = SignUp.data.sessionToken;
const payload = {
email: userEmail,
message: "User Sign Up",
message: 'User Sign Up',
sessiontoken: sessiontoken,
};
return payload;
}
} catch (err) {
console.log("err in user google sign up", err);
return { message: "Internal server err" };
console.log('err in user google sign up', err);
return { message: 'Internal server err' };
}
}
}
@@ -1,4 +1,4 @@
import axios from "axios";
import axios from 'axios';
const serverUrl = process.env.SERVER_URL;
const APPID = process.env.APP_ID;
@@ -9,8 +9,8 @@ const masterKEY = process.env.MASTER_KEY;
* @param Id It is google Id
* @param TokenId It is google token Id
* @param Gmail It is user's gmail with user sign in/sign up
* @param Phone It is user's Phone number
* @param Name It is user's Name
* @param Phone It is user's Phone number
* @param Name It is user's Name
* @returns if success {email, message, sessiontoken} else on reject {message}
*/
@@ -18,21 +18,21 @@ export default async function GoogleSign(request) {
const userGoogleId = request.params.Id;
const userTokenId = request.params.TokenId;
const userEmail = request.params.Gmail;
const phone = request.params.Phone;
const phone = request.params?.Phone || '';
const name = request.params.Name;
const authData = { google: { id: userGoogleId, id_token: userTokenId } };
const userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("email", userEmail);
userQuery.equalTo('email', userEmail);
const res = await userQuery.first({ useMasterKey: true });
if (res) {
try {
const SignIn = await axios.put(
serverUrl + "/users/" + res.id,
serverUrl + '/users/' + res.id,
{ authData: authData },
{
headers: {
"X-Parse-Application-Id": APPID,
"X-Parse-Master-key": masterKEY,
'X-Parse-Application-Id': APPID,
'X-Parse-Master-key': masterKEY,
},
}
);
@@ -40,22 +40,22 @@ export default async function GoogleSign(request) {
if (SignIn.data) {
// console.log("google Sign in", SignIn);
const sessiontoken = SignIn.data.sessionToken;
console.log("Google sessiontoken", sessiontoken);
console.log('Google sessiontoken', sessiontoken);
return {
email: userEmail,
message: "User Sign In",
message: 'User Sign In',
sessiontoken: sessiontoken,
};
}
} catch (err) {
console.log("err in user google sign in", err);
return { message: "Internal server error" };
console.log('err in user google sign in', err);
return { message: 'Internal server error' };
}
} else {
// console.log("in sign up condition");
try {
const SignUp = await axios.post(
serverUrl + "/users",
serverUrl + '/users',
{
authData: authData,
username: userEmail,
@@ -65,8 +65,8 @@ export default async function GoogleSign(request) {
},
{
headers: {
"X-Parse-Application-Id": APPID,
"X-Parse-Revocable-Session": "1",
'X-Parse-Application-Id': APPID,
'X-Parse-Revocable-Session': '1',
},
}
);
@@ -77,14 +77,14 @@ export default async function GoogleSign(request) {
const sessiontoken = SignUp.data.sessionToken;
const payload = {
email: userEmail,
message: "User Sign Up",
message: 'User Sign Up',
sessiontoken: sessiontoken,
};
return payload;
}
} catch (err) {
console.log("err in user google sign up", err);
return { message: "Internal server err" };
console.log('err in user google sign up', err);
return { message: 'Internal server err' };
}
}
}
@@ -47,7 +47,7 @@ export default async function ZohoDetails(request) {
userData.data.data.subscription.customer.cd_job_title) ||
'';
const resData = {
phone: userData.data.data.subscription.contactpersons[0].mobile,
phone: userData.data.data.subscription.contactpersons[0]?.mobile || '',
name: first_name + ' ' + last_name,
email: userData.data.data.subscription.contactpersons[0].email,
nextBillingDate: userData.data.data.subscription.next_billing_at,
@@ -208,11 +208,9 @@ export default async function linkContactToDoc(req) {
_user.set('name', name);
_user.set('username', email);
_user.set('email', email);
_user.set('password', email);
if (phone) {
_user.set('phone', phone);
_user.set('password', phone);
} else {
_user.set('password', email);
}
const newUserRes = await _user.save();
const contact = {
@@ -132,10 +132,10 @@ async function sendCompletedMail(obj) {
document_title: pdfName,
sender_name: sender.Name,
sender_mail: sender.Email,
sender_phone: sender.Phone,
sender_phone: sender?.Phone || '',
receiver_name: sender.Name,
receiver_email: sender.Email,
receiver_phone: sender.Phone,
receiver_phone: sender?.Phone || '',
expiry_date: localExpireDate,
company_name: sender.Company,
};
@@ -30,7 +30,9 @@ async function saveUser(userDetails) {
user.set('username', userDetails.email);
user.set('password', userDetails.password);
user.set('email', userDetails.email);
user.set('phone', userDetails.phone);
if (userDetails?.phone) {
user.set('phone', userDetails.phone);
}
user.set('name', userDetails.name);
const res = await user.signUp();
@@ -77,7 +79,9 @@ export default async function usersignup(request) {
objectId: user.id,
});
partnerQuery.set('ContactNumber', userDetails.phone);
if (userDetails?.phone) {
partnerQuery.set('ContactNumber', userDetails.phone);
}
partnerQuery.set('TenantName', userDetails.name);
partnerQuery.set('EmailAddress', userDetails.email);
partnerQuery.set('IsActive', true);
@@ -113,7 +117,9 @@ export default async function usersignup(request) {
newObj.set('UserRole', userDetails.role);
newObj.set('Email', userDetails.email);
newObj.set('Name', userDetails.name);
newObj.set('Phone', userDetails.phone);
if (userDetails?.phone) {
newObj.set('Phone', userDetails?.phone);
}
newObj.set('TenantId', {
__type: 'Pointer',
className: 'partners_Tenant',