Skip to content

Commit d097f9a

Browse files
authored
Merge pull request #353 from OpenSignLabs/revert-351-api-v1-beta
Revert "fix: all body parameter of API must be in lowercase"
2 parents bfa0e0e + 8686a35 commit d097f9a

File tree

10 files changed

+240
-305
lines changed

10 files changed

+240
-305
lines changed

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

Lines changed: 25 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
const randomId = () => Math.floor(1000 + Math.random() * 9000);
22
export default async function createDocumentWithTemplate(request, response) {
3-
const signers = request.body.signers;
4-
const folderId = request.body.folderId;
3+
const signers = request.body.Signers;
4+
const folderId = request.body.FolderId;
55
const templateId = request.params.template_id;
6-
const url = request?.get('host');
7-
let protocol = 'https://' + url;
8-
if (request.hostname === 'localhost') {
9-
// console.log('Running in development environment');
10-
protocol = 'http://' + url;
11-
} else {
12-
// console.log('Running in production environment');
13-
protocol = 'https://' + url;
14-
}
6+
const url = process.env.SERVER_URL;
157
try {
168
const reqToken = request.headers['x-api-token'];
179
if (!reqToken) {
@@ -48,52 +40,31 @@ export default async function createDocumentWithTemplate(request, response) {
4840
if (template?.Description) {
4941
object.set('Description', template.Description);
5042
}
51-
let templateSigner = template?.Signers ? template?.Signers : [];
52-
if (signers && signers.length > 0) {
53-
let parseSigners;
54-
if (base64File) {
55-
parseSigners = signers;
56-
} else {
57-
parseSigners = JSON.parse(signers);
58-
}
59-
let createContactUrl = protocol + '/v1/createcontact';
60-
61-
let contact = [];
62-
for (const obj of parseSigners) {
63-
const body = {
64-
name: obj?.name || '',
65-
email: obj?.email || '',
66-
phone: obj?.phone || '',
67-
};
68-
try {
69-
const res = await axios.post(createContactUrl, body, {
70-
headers: { 'Content-Type': 'application/json', 'x-api-token': reqToken },
71-
});
72-
// console.log('res ', res.data);
73-
contact.push({
74-
__type: 'Pointer',
75-
className: 'contracts_Contactbook',
76-
objectId: res.data?.objectId,
77-
});
78-
} catch (err) {
79-
// console.log('err ', err.response);
80-
if (err?.response?.data?.objectId) {
81-
contact.push({
82-
__type: 'Pointer',
83-
className: 'contracts_Contactbook',
84-
objectId: err.response.data?.objectId,
85-
});
86-
}
87-
}
88-
}
89-
object.set('Signers', [...templateSigner, ...contact]);
90-
} else {
91-
object.set('Signers', templateSigner);
43+
if (template?.Signers) {
44+
object.set('Signers', template?.Signers);
9245
}
93-
9446
object.set('URL', template.URL);
9547
object.set('CreatedBy', template.CreatedBy);
9648
object.set('ExtUserPtr', template.ExtUserPtr);
49+
if (signers) {
50+
const placeholders = template?.Placeholders?.map(placeholder => {
51+
let matchingSigner = signers.find(y => y.Role === placeholder.Role);
52+
if (matchingSigner) {
53+
return {
54+
...placeholder,
55+
email: matchingSigner.Email,
56+
signerObjId: '',
57+
signerPtr: {},
58+
};
59+
} else {
60+
return {
61+
...placeholder,
62+
};
63+
}
64+
});
65+
console.log('placeholders ', placeholders);
66+
object.set('Placeholders', placeholders);
67+
}
9768
if (folderId) {
9869
object.set('Folder', folderPtr);
9970
}
@@ -104,10 +75,7 @@ export default async function createDocumentWithTemplate(request, response) {
10475
newACL.setWriteAccess(userPtr.id, true);
10576
object.setACL(newACL);
10677
const res = await object.save(null, { useMasterKey: true });
107-
return response.json({
108-
objectId: res.id,
109-
url: protocol + '/load/signmicroapp/placeholdersign/' + res.id,
110-
});
78+
return response.json({ objectId: res.id, url: url });
11179
} else {
11280
return response.status(400).json({ error: 'Please provide signers properly!' });
11381
}

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

Lines changed: 112 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import axios from 'axios';
22
export default async function createContact(request, response) {
33
const serverUrl = process.env.SERVER_URL;
44
const appId = process.env.APP_ID;
5-
const name = request.body.name;
6-
const phone = request.body.phone;
7-
const email = request.body.email;
5+
const name = request.body.Name;
6+
const phone = request.body.Phone;
7+
const email = request.body.Email;
88
const reqToken = request.headers['x-api-token'];
99
if (!reqToken) {
1010
return response.status(400).json({ error: 'Please Provide API Token' });
@@ -16,143 +16,127 @@ export default async function createContact(request, response) {
1616
// Valid Token then proceed request
1717
const userPtr = token.get('userId');
1818
try {
19-
const contactbook = new Parse.Query('contracts_Contactbook');
20-
contactbook.equalTo('Email', email);
21-
contactbook.equalTo('CreatedBy', userPtr);
19+
const Tenant = new Parse.Query('partners_Tenant');
20+
Tenant.equalTo('UserId', userPtr);
21+
const tenantRes = await Tenant.first({ useMasterKey: true });
2222

23-
const userExists = await contactbook.first({ useMasterKey: true });
24-
25-
if (userExists) {
26-
return response
27-
.status(401)
28-
.json({ error: 'Contact already exists!', objectId: userExists.id });
29-
} else {
30-
try {
31-
const Tenant = new Parse.Query('partners_Tenant');
32-
Tenant.equalTo('UserId', userPtr);
33-
const tenantRes = await Tenant.first({ useMasterKey: true });
34-
35-
const contactQuery = new Parse.Object('contracts_Contactbook');
36-
contactQuery.set('Name', name);
37-
contactQuery.set('Phone', phone);
38-
contactQuery.set('Email', email);
39-
contactQuery.set('UserRole', 'contracts_Guest');
40-
if (tenantRes && tenantRes.id) {
41-
contactQuery.set('TenantId', {
42-
__type: 'Pointer',
43-
className: 'partners_Tenant',
44-
objectId: tenantRes.id,
45-
});
46-
}
47-
try {
48-
const _users = Parse.Object.extend('User');
49-
const _user = new _users();
50-
_user.set('name', name);
51-
_user.set('username', email);
52-
_user.set('email', email);
53-
_user.set('phone', phone);
54-
_user.set('password', phone);
23+
const contactQuery = new Parse.Object('contracts_Contactbook');
24+
contactQuery.set('Name', name);
25+
contactQuery.set('Phone', phone);
26+
contactQuery.set('Email', email);
27+
contactQuery.set('UserRole', 'contracts_Guest');
28+
if (tenantRes && tenantRes.id) {
29+
contactQuery.set('TenantId', {
30+
__type: 'Pointer',
31+
className: 'partners_Tenant',
32+
objectId: tenantRes.id,
33+
});
34+
}
35+
try {
36+
const _users = Parse.Object.extend('User');
37+
const _user = new _users();
38+
_user.set('name', name);
39+
_user.set('username', email);
40+
_user.set('email', email);
41+
_user.set('phone', phone);
42+
_user.set('password', phone);
5543

56-
const user = await _user.save();
57-
if (user) {
58-
const roleurl = `${serverUrl}/functions/AddUserToRole`;
59-
const headers = {
60-
'Content-Type': 'application/json',
61-
'X-Parse-Application-Id': appId,
62-
// sessionToken: localStorage.getItem('accesstoken'),
63-
};
64-
const body = {
65-
appName: 'contracts',
66-
roleName: 'contracts_Guest',
67-
userId: user.id,
68-
};
69-
await axios.post(roleurl, body, { headers: headers });
70-
const currentUser = userPtr;
71-
contactQuery.set('CreatedBy', currentUser);
72-
contactQuery.set('UserId', user);
44+
const user = await _user.save();
45+
if (user) {
46+
const roleurl = `${serverUrl}/functions/AddUserToRole`;
47+
const headers = {
48+
'Content-Type': 'application/json',
49+
'X-Parse-Application-Id': appId,
50+
// sessionToken: localStorage.getItem('accesstoken'),
51+
};
52+
const body = {
53+
appName: 'contracts',
54+
roleName: 'contracts_Guest',
55+
userId: user.id,
56+
};
57+
await axios.post(roleurl, body, { headers: headers });
58+
const currentUser = userPtr;
59+
contactQuery.set('CreatedBy', currentUser);
60+
contactQuery.set('UserId', user);
7361

74-
const acl = new Parse.ACL();
75-
acl.setReadAccess(userPtr.id, true);
76-
acl.setWriteAccess(userPtr.id, true);
77-
acl.setReadAccess(user.id, true);
78-
acl.setWriteAccess(user.id, true);
79-
contactQuery.setACL(acl);
62+
const acl = new Parse.ACL();
63+
acl.setReadAccess(userPtr.id, true);
64+
acl.setWriteAccess(userPtr.id, true);
65+
acl.setReadAccess(user.id, true);
66+
acl.setWriteAccess(user.id, true);
67+
contactQuery.setACL(acl);
8068

81-
const contactRes = await contactQuery.save();
82-
const parseRes = JSON.parse(JSON.stringify(contactRes));
83-
return response.json({
84-
objectId: parseRes.objectId,
85-
Name: parseRes.Name,
86-
Email: parseRes.Email,
87-
Phone: parseRes.Phone,
88-
createdAt: parseRes.createdAt,
89-
updatedAt: parseRes.updatedAt,
90-
});
91-
}
92-
} catch (err) {
93-
console.log('err in', err);
94-
if (err.code === 202) {
95-
const params = { email: email };
96-
const userRes = await Parse.Cloud.run('getUserId', params);
97-
const roleurl = `${serverUrl}/functions/AddUserToRole`;
98-
const headers = {
99-
'Content-Type': 'application/json',
100-
'X-Parse-Application-Id': appId,
101-
// sessionToken: localStorage.getItem('accesstoken'),
102-
};
103-
const body = {
104-
appName: 'contracts',
105-
roleName: 'contracts_Guest',
106-
userId: userRes.id,
107-
};
108-
await axios.post(roleurl, body, { headers: headers });
109-
contactQuery.set('CreatedBy', userPtr);
110-
contactQuery.set('UserId', {
111-
__type: 'Pointer',
112-
className: '_User',
113-
objectId: userRes.id,
114-
});
115-
const acl = new Parse.ACL();
116-
acl.setReadAccess(userPtr.id, true);
117-
acl.setWriteAccess(userPtr.id, true);
118-
acl.setReadAccess(userRes.id, true);
119-
acl.setWriteAccess(userRes.id, true);
69+
const contactRes = await contactQuery.save();
70+
const parseRes = JSON.parse(JSON.stringify(contactRes));
71+
return response.json({
72+
objectId: parseRes.objectId,
73+
Name: parseRes.Name,
74+
Email: parseRes.Email,
75+
Phone: parseRes.Phone,
76+
createdAt: parseRes.createdAt,
77+
updatedAt: parseRes.updatedAt,
78+
});
79+
}
80+
} catch (err) {
81+
console.log('err in', err);
82+
if (err.code === 202) {
83+
const params = { email: email };
84+
const userRes = await Parse.Cloud.run('getUserId', params);
85+
const roleurl = `${serverUrl}/functions/AddUserToRole`;
86+
const headers = {
87+
'Content-Type': 'application/json',
88+
'X-Parse-Application-Id': appId,
89+
// sessionToken: localStorage.getItem('accesstoken'),
90+
};
91+
const body = {
92+
appName: 'contracts',
93+
roleName: 'contracts_Guest',
94+
userId: userRes.id,
95+
};
96+
await axios.post(roleurl, body, { headers: headers });
97+
contactQuery.set('CreatedBy', userPtr);
98+
contactQuery.set('UserId', {
99+
__type: 'Pointer',
100+
className: '_User',
101+
objectId: userRes.id,
102+
});
103+
const acl = new Parse.ACL();
104+
acl.setReadAccess(userPtr.id, true);
105+
acl.setWriteAccess(userPtr.id, true);
106+
acl.setReadAccess(userRes.id, true);
107+
acl.setWriteAccess(userRes.id, true);
120108

121-
contactQuery.setACL(acl);
122-
const contactRes = await contactQuery.save();
123-
if (contactRes) {
124-
const parseRes = JSON.parse(JSON.stringify(contactRes));
125-
return response.json({
126-
objectId: parseRes.objectId,
127-
Name: parseRes.Name,
128-
Email: parseRes.Email,
129-
Phone: parseRes.Phone,
130-
createdAt: parseRes.createdAt,
131-
updatedAt: parseRes.updatedAt,
132-
});
133-
}
134-
} else {
135-
if (err.code === 137) {
136-
return response.status(401).json({ error: 'Contact already exists!' });
137-
}
138-
return response
139-
.status(400)
140-
.json({ error: 'Something went wrong, please try again later!' });
141-
}
109+
contactQuery.setACL(acl);
110+
const contactRes = await contactQuery.save();
111+
if (contactRes) {
112+
const parseRes = JSON.parse(JSON.stringify(contactRes));
113+
return response.json({
114+
objectId: parseRes.objectId,
115+
Name: parseRes.Name,
116+
Email: parseRes.Email,
117+
Phone: parseRes.Phone,
118+
createdAt: parseRes.createdAt,
119+
updatedAt: parseRes.updatedAt,
120+
});
142121
}
143-
} catch (err) {
144-
console.log('err ', err);
122+
} else {
145123
if (err.code === 137) {
146124
return response.status(401).json({ error: 'Contact already exists!' });
147-
} else {
148-
return response
149-
.status(400)
150-
.json({ error: 'Something went wrong, please try again later!' });
151125
}
126+
return response
127+
.status(400)
128+
.json({ error: 'Something went wrong, please try again later!' });
152129
}
153130
}
154131
} catch (err) {
155-
return response.status(400).json({ error: 'Something went wrong, please try again later!' });
132+
console.log('err ', err);
133+
if (err.code === 137) {
134+
return response.status(401).json({ error: 'Contact already exists!' });
135+
} else {
136+
return response
137+
.status(400)
138+
.json({ error: 'Something went wrong, please try again later!' });
139+
}
156140
}
157141
} else {
158142
return response.status(405).json({ error: 'Invalid API Token!' });

0 commit comments

Comments
 (0)