remove code from response and add update Document api

This commit is contained in:
prafull-opensignlabs
2024-01-15 18:15:16 +05:30
parent ebdc5ef566
commit e52c7c97cf
15 changed files with 201 additions and 91 deletions
@@ -16,8 +16,13 @@ import deletedTemplate from './routes/deleteTemplate.js';
import getTemplatetList from './routes/getTemplateList.js';
import updateTemplate from './routes/updateTemplate.js';
import createContact from './routes/createContact.js';
import multer from 'multer';
import fs from 'node:fs';
dotenv.config();
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });
app.use(cors());
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
@@ -35,16 +40,19 @@ app.get('/contact/:contact_id', getContact);
app.delete('/contact/:contact_id', deleteContact);
// get list of contacts
app.post('/contactlist', getContactList);
app.get('/contactlist', getContactList);
// create Document
app.post('/createdocument', createDocument);
// get template on the basis of id
app.put('/template/:document_id', updateTemplate);
// get Document on the basis of id
app.get('/document/:document_id', getDocument);
// get all types of documents on the basis of doctype
app.post('/documentlist/:doctype', getDocumentList);
app.get('/documentlist/:doctype', getDocumentList);
// create Template
app.post('/createtemplate', createTemplate);
@@ -59,4 +67,45 @@ app.put('/template/:template_id', updateTemplate);
app.delete('/template/:template_id', deletedTemplate);
// get all types of documents on the basis of doctype
app.post('/templatelist', getTemplatetList);
app.get('/templatelist', getTemplatetList);
app.post('/tempupload', upload.single('file'), async (req, res) => {
const name = req.body.name;
const note = req.body.note;
const description = req.body.description;
const fileFormat = req.body.fileFormat; // 'binary' or 'base64'
const filePath = req.body.filePath; // Path to the file
let fileData;
if (fileFormat === 'binary') {
// Read file content if the file is in binary format
fileData = fs.readFileSync(filePath);
} else if (fileFormat === 'base64') {
// Convert base64 data to binary
fileData = req.file ? req.file.buffer : null;
} else {
return res.status(400).json({ error: 'Invalid file format' });
}
// Create a Parse.File object
const file = new Parse.File('myfile', { base64: fileData.toString('base64') });
// Save the file to Parse Server
try {
await file.save();
} catch (error) {
console.error('Error saving file to Parse Server:', error);
return res.status(500).json({ error: 'Internal Server Error' });
}
// Perform any desired processing with the received data
// Respond to the client with the file URL
res.json({
name: name,
note: note,
description: description,
fileUrl: file.url(),
});
});
@@ -8,7 +8,7 @@ export default async function createContact(request, response) {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -73,7 +73,6 @@ export default async function createContact(request, response) {
const contactRes = await contactQuery.save();
// const parseData = JSON.parse(JSON.stringify(res));
return response.json({
code: 200,
message: 'Contact created sucessfully!',
result: { objectId: contactRes.id },
});
@@ -112,7 +111,6 @@ export default async function createContact(request, response) {
contactQuery.setACL(acl);
const contactRes = await contactQuery.save();
return response.json({
code: 200,
message: 'Contact created sucessfully!',
result: { objectId: contactRes.id },
});
@@ -120,9 +118,9 @@ export default async function createContact(request, response) {
}
}
} catch (err) {
return response.json({ code: 404, message: 'Something went wrong, please try again later!' });
return response.status(404).json({ error: 'Something went wrong, please try again later!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
}
@@ -10,7 +10,7 @@ export default async function createDocument(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -46,12 +46,11 @@ export default async function createDocument(request, response) {
}
const res = await object.save(null, { useMasterKey: true });
return response.json({
code: 200,
message: 'Document created successfully!',
result: { objectId: res.id, url: url },
});
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -5,11 +5,11 @@ 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
const url = process.env.SERVER_URL;
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -45,12 +45,11 @@ export default async function createTemplate(request, response) {
}
const res = await object.save(null, { useMasterKey: true });
return response.json({
code: 200,
message: 'Template created successfully!',
result: { id: res.id, url: url },
});
} else {
return response.json({ code: 405, result: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -2,7 +2,7 @@ export default async function deleteContact(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -18,7 +18,7 @@ export default async function deleteContact(request, response) {
if (res) {
const isDeleted = res.get('IsDeleted');
if (isDeleted && isDeleted) {
return response.json({ code: 404, message: 'Contact not found!' });
return response.status(404).json({ error: 'Contact not found!' });
} else {
const Contactbook = Parse.Object.extend('contracts_Contactbook');
const deleteQuery = new Contactbook();
@@ -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, message: 'Contact deleted successfully!' });
return response.json({ message: 'Contact deleted successfully!' });
}
}
} else {
return response.json({ code: 404, message: 'Contact not found!' });
return response.status(404).json({ error: 'Contact not found!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -2,7 +2,7 @@ export default async function deletedTemplate(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -18,7 +18,7 @@ export default async function deletedTemplate(request, response) {
if (res) {
const isArchive = res.get('IsArchive');
if (isArchive && isArchive) {
return response.json({ code: 404, message: 'Template not found!' });
return response.status(404).json({ error: 'Template not found!' });
} else {
const template = Parse.Object.extend('contracts_Template');
const deleteQuery = new template();
@@ -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, message: 'Template deleted successfully!' });
return response.json({ message: 'Template deleted successfully!' });
}
}
} else {
return response.json({ code: 404, message: 'Template not found!' });
return response.status(404).json({ error: 'Template not found!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -2,7 +2,7 @@ export default async function getContact(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -21,14 +21,13 @@ export default async function getContact(request, response) {
if (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: 'Contact not found!' });
return response.status(404).json({ error: 'Contact not found!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -2,7 +2,7 @@ export default async function getContactList(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -11,8 +11,8 @@ export default async function getContactList(request, response) {
// Valid Token then proceed request
const id = token.get('Id');
const userId = { __type: 'Pointer', className: '_User', objectId: id };
const limit = request?.body?.limit ? request.body.limit : 100;
const skip = request?.body?.skip ? request.body.skip : 0;
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
const Contactbook = new Parse.Query('contracts_Contactbook');
Contactbook.equalTo('CreatedBy', userId);
Contactbook.notEqualTo('IsDeleted', true);
@@ -20,12 +20,12 @@ export default async function getContactList(request, response) {
Contactbook.skip(skip);
const res = await Contactbook.find({ useMasterKey: true });
if (res && res.length > 0) {
return response.json({ code: 200, result: res });
return response.json({ result: res });
} else {
return response.json({ code: 200, result: [] });
return response.json({ result: [] });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -2,7 +2,7 @@ export default async function getDocument(request, response) {
try {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -17,12 +17,12 @@ export default async function getDocument(request, response) {
Document.notEqualTo('IsArchive', true);
const res = await Document.first({ useMasterKey: true });
if (res) {
return response.json({ code: 200, result: res });
return response.json({ result: res });
} else {
return response.json({ code: 404, message: 'Document not found!' });
return response.status(404).json({ error: 'Document not found!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
@@ -8,7 +8,7 @@ export default async function getDocumentList(request, response) {
const appId = process.env.APP_ID;
const serverUrl = process.env.SERVER_URL;
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -17,8 +17,8 @@ export default async function getDocumentList(request, response) {
// Valid Token then proceed request
const userId = token.get('Id');
const docType = request.params.doctype;
const limit = request?.body?.limit ? request.body.limit : 100;
const skip = request?.body?.skip ? request.body.skip : 0;
const limit = request?.query?.limit ? request.query.limit : 100;
const skip = request?.query?.skip ? request.query.skip : 0;
let reportId;
switch (docType) {
case 'draftdocuments':
@@ -69,13 +69,13 @@ export default async function getDocumentList(request, response) {
Signers: x?.Signers?.map(y => y?.Name) || '',
}))
: [];
return response.json({ code: 200, result: updateRes });
return response.json({ result: updateRes });
} else {
return response.json({ code: 200, result: [] });
return response.json({ result: [] });
}
} else {
return response.json({ code: 404, message: 'Report not available!' });
return response.status(404).json({ error: 'Report not available!' });
}
}
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -1,32 +1,31 @@
export default async function getTemplate(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 userId = { __type: 'Pointer', className: '_User', objectId: id };
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: 'Template not found!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
return response.json(err);
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);
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// Valid Token then proceed request
const id = token.get('Id');
const userId = { __type: 'Pointer', className: '_User', objectId: id };
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({ result: res });
} else {
return response.status(404).json({ error: 'Template not found!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
return response.json(err);
}
}
@@ -7,7 +7,7 @@ export default async function getTemplatetList(request, response) {
const appId = process.env.APP_ID;
const serverUrl = process.env.SERVER_URL;
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -15,8 +15,8 @@ export default async function getTemplatetList(request, response) {
if (token !== undefined) {
// Valid Token then proceed request
const userId = token.get('Id');
const limit = request?.body?.limit ? request.body.limit : 100;
const skip = request?.body?.skip ? request.body.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 = {
@@ -61,10 +61,10 @@ export default async function getTemplatetList(request, response) {
Signers: x?.Signers?.map(y => y?.Name) || '',
}))
: [];
return response.json({ code: 200, result: updateRes });
return response.json({ result: updateRes });
} else {
return response.json({ code: 200, result: [] });
return response.json({ result: [] });
}
}
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -4,7 +4,7 @@ dotenv.config();
export default async function getUser(request, response) {
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.json({ message: 'Please Provide API Token' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -18,10 +18,10 @@ export default async function getUser(request, response) {
let user = await query.first({ useMasterKey: true });
const result = user;
if (result) {
return response.json({ code: 200, result: result });
return response.json({ result: result });
} else {
return response.json({ code: 404, message: 'User not found!' });
return response.status(404).json({ error: 'User not found!' });
}
}
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
@@ -0,0 +1,68 @@
export default async function updateDocument(request, response) {
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);
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 document = new Parse.Query('contracts_Document');
document.equalTo('objectId', request.params.document_id);
document.equalTo('CreatedBy', userId);
const res = await document.first({ useMasterKey: true });
if (res) {
const isArchive = res.get('IsArchive');
if (isArchive && isArchive) {
return response.status(404).json({ message: 'Document not found!' });
} else {
const document = Parse.Object.extend('contracts_Document');
const updateQuery = new document();
updateQuery.id = request.params.document_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_Document',
objectId: request?.body?.FolderId,
});
}
const updatedRes = await updateQuery.save(null, { useMasterKey: true });
if (updatedRes) {
return response.json({
message: 'Document updated successfully!',
result: { objectId: updatedRes.id },
});
}
}
} else {
return response.status(404).json({ error: 'Document not found!' });
}
} else {
return response.status(400).json({ error: 'Please provide valid field names!' });
}
} else {
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);
return response.json(err);
}
}
@@ -2,7 +2,7 @@ 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' });
return response.status(400).json({ error: 'Please Provide API Token' });
}
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('token', reqToken);
@@ -22,7 +22,7 @@ export default async function updateTemplate(request, response) {
if (res) {
const isArchive = res.get('IsArchive');
if (isArchive && isArchive) {
return response.json({ code: 404, message: 'Template not found!' });
return response.status(404).json({ message: 'Template not found!' });
} else {
const template = Parse.Object.extend('contracts_Template');
const updateQuery = new template();
@@ -46,20 +46,19 @@ export default async function updateTemplate(request, response) {
const updatedRes = await updateQuery.save(null, { useMasterKey: true });
if (updatedRes) {
return response.json({
code: 200,
message: 'Template updated successfully!',
result: { objectId: updatedRes.id },
});
}
}
} else {
return response.json({ code: 404, message: 'Template not found!' });
return response.status(404).json({ error: 'Template not found!' });
}
} else {
return response.json({ code: 400, message: 'Please provide valid field names!' });
return response.status(400).json({ error: 'Please provide valid field names!' });
}
} else {
return response.json({ code: 405, message: 'Invalid API Token!' });
return response.status(405).json({ error: 'Invalid API Token!' });
}
} catch (err) {
console.log('err ', err);