diff --git a/apps/OpenSignServer/cloud/customRoute/v1/apiV1.js b/apps/OpenSignServer/cloud/customRoute/v1/apiV1.js index 794337cca..b5d3f1b5b 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/apiV1.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/apiV1.js @@ -14,6 +14,7 @@ import createTemplate from './routes/createTemplate.js'; import getTemplate from './routes/getTemplate.js'; import deletedTemplate from './routes/deleteTemplate.js'; import getTemplatetList from './routes/getTemplateList.js'; +import updateTemplate from './routes/updateTemplate.js'; dotenv.config(); app.use(cors()); @@ -47,9 +48,11 @@ app.post('/createtemplate', createTemplate); // get template on the basis of id app.get('/template/:template_id', getTemplate); +// get template on the basis of id +app.put('/template/:template_id', updateTemplate); + // get template on the basis of id app.delete('/template/:template_id', deletedTemplate); // get all types of documents on the basis of doctype app.get('/templatelist', getTemplatetList); - diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js index c6f38442c..e429e173c 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createContact.js @@ -70,9 +70,13 @@ export default async function createContact(request, response) { contactQuery.setACL(acl); - await contactQuery.save(); + const contactRes = await contactQuery.save(); // const parseData = JSON.parse(JSON.stringify(res)); - return response.json({ code: 200, message: 'Contact create sucessfully!' }); + return response.json({ + code: 200, + message: 'Contact created sucessfully!', + result: { id: contactRes.id }, + }); } } catch (err) { console.log('err ', err); @@ -106,8 +110,12 @@ export default async function createContact(request, response) { acl.setWriteAccess(userRes.id, true); contactQuery.setACL(acl); - await contactQuery.save(); - return response.json({ code: 200, message: 'Contact create sucessfully!' }); + const contactRes = await contactQuery.save(); + return response.json({ + code: 200, + message: 'Contact created sucessfully!', + result: { id: contactRes.id }, + }); // const parseData = JSON.parse(JSON.stringify(res)); } } @@ -115,6 +123,6 @@ export default async function createContact(request, response) { return response.json({ code: 404, message: 'Something went wrong, please try again later!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js index f1e499751..d58cca4de 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocument.js @@ -5,6 +5,7 @@ export default async function createDocument(request, response) { const signers = request.body.signer; const folderId = request.body.folderId; const file = request.body.file; + const url = process.env.SERVER_URL; try { const reqToken = request.headers['x-api-token']; @@ -44,9 +45,13 @@ export default async function createDocument(request, response) { object.set('Folder', folderPtr); } const res = await object.save(null, { useMasterKey: true }); - return response.json({ code: 200, result: res }); + return response.json({ + code: 200, + message: 'Document created successfully!', + result: { id: res.id, url: url }, + }); } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js index 3852cdadd..65863d764 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createTemplate.js @@ -5,6 +5,7 @@ export default async function createTemplate(request, response) { const signers = request.body.signer; const folderId = request.body.folderId; const file = request.body.file; + const url = process.env.SERVER_URL try { const reqToken = request.headers['x-api-token']; if (!reqToken) { @@ -43,9 +44,13 @@ export default async function createTemplate(request, response) { object.set('Folder', folderPtr); } const res = await object.save(null, { useMasterKey: true }); - return response.json({ code: 200, result: res }); + return response.json({ + code: 200, + message: 'Template created successfully!', + result: { id: res.id, url: url }, + }); } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, result: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js index 89a3926d1..b0e883a51 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteContact.js @@ -26,14 +26,14 @@ export default async function deleteContact(request, response) { deleteQuery.set('IsDeleted', true); const deleteRes = await deleteQuery.save(null, { useMasterKey: true }); if (deleteRes) { - return response.json({ code: 200, result: 'Record delete successfully!' }); + return response.json({ code: 200, message: 'Record delete successfully!' }); } } } else { return response.json({ code: 404, message: 'Record not found!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js index 763505268..3c1707f5a 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteTemplate.js @@ -26,14 +26,14 @@ export default async function deletedTemplate(request, response) { deleteQuery.set('IsArchive', true); const deleteRes = await deleteQuery.save(null, { useMasterKey: true }); if (deleteRes) { - return response.json({ code: 200, result: 'Record delete successfully!' }); + return response.json({ code: 200, message: 'Template delete successfully!' }); } } } else { return response.json({ code: 404, message: 'Record not found!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js index 3dcf56a24..cefc3d496 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContact.js @@ -14,14 +14,21 @@ export default async function getContact(request, response) { const Contactbook = new Parse.Query('contracts_Contactbook'); Contactbook.equalTo('objectId', request.params.contact_id); Contactbook.equalTo('CreatedBy', userId); + Contactbook.notEqualTo('IsDeleted', true); + Contactbook.select('Name,Email,Phone'); + const res = await Contactbook.first({ useMasterKey: true }); if (res) { - return response.json({ code: 200, result: res }); + const parseRes = JSON.parse(JSON.stringify(res)); + return response.json({ + code: 200, + result: { objectId: parseRes.objectId, Name: parseRes.Name, Email: parseRes.Email }, + }); } else { return response.json({ code: 404, message: 'Record not found!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js index e2a2762f0..0b3ad0b9f 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getContactList.js @@ -25,7 +25,7 @@ export default async function getContactList(request, response) { return response.json({ code: 200, result: [] }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js index 2c5a7e98f..e732e16cd 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js @@ -14,6 +14,7 @@ export default async function getDocument(request, response) { const Document = new Parse.Query('contracts_Document'); Document.equalTo('objectId', request.params.document_id); Document.equalTo('CreatedBy', userId); + Document.notEqualTo('IsArchive', true); const res = await Document.first({ useMasterKey: true }); if (res) { return response.json({ code: 200, result: res }); @@ -21,7 +22,7 @@ export default async function getDocument(request, response) { return response.json({ code: 404, message: 'Document not found!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js index d17387d74..01d6a0acb 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js @@ -63,5 +63,5 @@ export default async function getDocumentList(request, response) { return response.json({ code: 404, message: 'Report is not available!' }); } } - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js index c7faafcb1..c57638f04 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplate.js @@ -14,14 +14,15 @@ export default async function getTemplate(request, response) { const Document = new Parse.Query('contracts_Template'); Document.equalTo('objectId', request.params.template_id); Document.equalTo('CreatedBy', userId); + Document.notEqualTo('IsArchive', true); const res = await Document.first({ useMasterKey: true }); if (res) { return response.json({ code: 200, result: res }); } else { - return response.json({ code: 404, message: 'Document not found!' }); + return response.json({ code: 404, message: 'Template not found!' }); } } else { - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } } catch (err) { console.log('err ', err); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplateList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplateList.js index 36a73bc91..1a4ee3820 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplateList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getTemplateList.js @@ -53,5 +53,5 @@ export default async function getTemplatetList(request, response) { return response.json({ code: 200, result: [] }); } } - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getUser.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getUser.js index 300db2dfd..c81ebed50 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getUser.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getUser.js @@ -12,9 +12,9 @@ export default async function getUser(request, response) { if (token !== undefined) { // Valid Token then proceed request const userId = token.get('Id'); - const query = new Parse.Query(Parse.User); - query.equalTo('objectId', userId); - query.exclude('authData'); + const query = new Parse.Query('contracts_Users'); + query.equalTo('UserId', { __type: 'Pointer', className: '_User', objectId: userId }); + query.exclude('IsContactEntry,TourStatus,UserRole,TenantId,UserId,CreatedBy,Plan'); let user = await query.first({ useMasterKey: true }); const result = user; if (result) { @@ -23,5 +23,5 @@ export default async function getUser(request, response) { return response.json({ code: 404, message: 'Record not found!' }); } } - return response.json({ code: 404, message: 'Invalid API Token!' }); + return response.json({ code: 405, message: 'Invalid API Token!' }); } diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js new file mode 100644 index 000000000..1703aab08 --- /dev/null +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateTemplate.js @@ -0,0 +1,68 @@ +export default async function updateTemplate(request, response) { + try { + const reqToken = request.headers['x-api-token']; + if (!reqToken) { + return response.json({ message: 'Please Provide API Token' }); + } + const tokenQuery = new Parse.Query('appToken'); + tokenQuery.equalTo('token', reqToken); + const token = await tokenQuery.first({ useMasterKey: true }); + if (token !== undefined) { + // Valid Token then proceed request + const id = token.get('Id'); + const allowedKeys = ['Name', 'Note', 'Description']; + const objectKeys = Object.keys(request.body); + const isValid = objectKeys.every(key => allowedKeys.includes(key)) && objectKeys.length > 0; + if (isValid) { + const userId = { __type: 'Pointer', className: '_User', objectId: id }; + const template = new Parse.Query('contracts_Template'); + template.equalTo('objectId', request.params.template_id); + template.equalTo('CreatedBy', userId); + const res = await template.first({ useMasterKey: true }); + if (res) { + const isArchive = res.get('IsArchive'); + if (isArchive && isArchive) { + return response.json({ code: 404, message: 'Record not found!' }); + } else { + const template = Parse.Object.extend('contracts_Template'); + const updateQuery = new template(); + updateQuery.id = request.params.template_id; + if (request?.body?.Name) { + updateQuery.set('Name', request?.body?.Name); + } + if (request?.body?.Note) { + updateQuery.set('Note', request?.body?.Note); + } + if (request?.body?.Description) { + updateQuery.set('Name', request?.body?.Description); + } + if (request?.body?.FolderId) { + updateQuery.set('Folder', { + __type: 'Pointer', + className: 'contracts_Template', + objectId: request?.body?.FolderId, + }); + } + const updatedRes = await updateQuery.save(null, { useMasterKey: true }); + if (updatedRes) { + return response.json({ + code: 200, + message: 'Template updated successfully!', + result: updatedRes.id, + }); + } + } + } else { + return response.json({ code: 404, message: 'Record not found!' }); + } + } else { + return response.json({ code: 400, message: 'Please provide valid field names!' }); + } + } else { + return response.json({ code: 405, message: 'Invalid API Token!' }); + } + } catch (err) { + console.log('err ', err); + return response.json(err); + } +}