feat: add migration script for generate token route

This commit is contained in:
prafull-opensignlabs
2024-01-16 17:43:42 +05:30
parent 9500b2d678
commit eefaf5fe50
6 changed files with 740 additions and 68 deletions
@@ -45,7 +45,7 @@ app.delete('/contact/:contact_id', deleteContact);
app.get('/contactlist', getContactList);
// create Document
app.post('/createdocument', createDocument);
app.post('/createdocument', upload.array('file', 1), createDocument);
// get Document on the basis of id
app.get('/document/:document_id', getDocument);
@@ -60,7 +60,7 @@ app.delete('/document/:document_id', deleteDocument);
app.get('/documentlist/:doctype', getDocumentList);
// create Template
app.post('/createtemplate', createTemplate);
app.post('/createtemplate',upload.array('file', 1), createTemplate);
// get template on the basis of id
app.get('/template/:template_id', getTemplate);
@@ -74,43 +74,3 @@ app.delete('/template/:template_id', deletedTemplate);
// get all types of documents on the basis of doctype
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(),
});
});
@@ -1,13 +1,20 @@
const randomId = () => Math.floor(1000 + Math.random() * 9000);
export default async function createDocument(request, response) {
const name = request.body.name;
const note = request.body.note;
const description = request.body.description;
const signers = request.body.signer;
const folderId = request.body.folderId;
const file = request.body.file;
const name = request.body.Title;
const note = request.body.Note;
const description = request.body.Description;
const signers = request.body.Signers;
const folderId = request.body.FolderId;
// const file = request.body.file;
const url = process.env.SERVER_URL;
const fileData = request.files[0] ? request.files[0].buffer : null;
try {
const file = new Parse.File(request.files[0].originalname, {
base64: fileData.toString('base64'),
});
await file.save({ useMasterKey: true });
const fileUrl = file.url();
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
@@ -35,15 +42,30 @@ export default async function createDocument(request, response) {
if (description) {
object.set('Description', description);
}
object.set('URL', file);
object.set('URL', fileUrl);
object.set('CreatedBy', userId);
object.set('ExtUserPtr', extUserPtr);
if (signers) {
object.set('Signers', signers);
const placeholders = signers.map(x => ({
email: x,
Id: randomId(),
Role: '',
blockColor: '',
signerObjId: '',
signerPtr: {},
placeHolder: [],
}));
object.set('Placeholders', placeholders);
}
if (folderId) {
object.set('Folder', folderPtr);
}
const newACL = new Parse.ACL();
newACL.setPublicReadAccess(false);
newACL.setPublicWriteAccess(false);
newACL.setReadAccess(id, true);
newACL.setWriteAccess(id, true);
object.setACL(newACL);
const res = await object.save(null, { useMasterKey: true });
return response.json({ objectId: res.id, url: url });
} else {
@@ -1,12 +1,18 @@
export default async function createTemplate(request, response) {
const name = request.body.name;
const note = request.body.note;
const description = request.body.description;
const signers = request.body.signer;
const folderId = request.body.folderId;
const file = request.body.file;
const name = request.body.Title;
const note = request.body.Note;
const description = request.body.Description;
const signers = request.body.Signers;
const folderId = request.body.FolderId;
// const file = request.body.file;
const url = process.env.SERVER_URL;
const fileData = request.files[0] ? request.files[0].buffer : null;
try {
const file = new Parse.File(request.files[0].originalname, {
base64: fileData.toString('base64'),
});
await file.save({ useMasterKey: true });
const fileUrl = file.url();
const reqToken = request.headers['x-api-token'];
if (!reqToken) {
return response.status(400).json({ error: 'Please Provide API Token' });
@@ -34,15 +40,30 @@ export default async function createTemplate(request, response) {
if (description) {
object.set('Description', description);
}
object.set('URL', file);
object.set('URL', fileUrl);
object.set('CreatedBy', userId);
object.set('ExtUserPtr', extUserPtr);
if (signers) {
object.set('Signers', signers);
const placeholders = signers.map(x => ({
email: x,
Id: randomId(),
Role: '',
blockColor: '',
signerObjId: '',
signerPtr: {},
placeHolder: [],
}));
object.set('Placeholders', placeholders);
}
if (folderId) {
object.set('Folder', folderPtr);
}
const newACL = new Parse.ACL();
newACL.setPublicReadAccess(false);
newACL.setPublicWriteAccess(false);
newACL.setReadAccess(id, true);
newACL.setWriteAccess(id, true);
object.setACL(newACL);
const res = await object.save(null, { useMasterKey: true });
return response.json({ objectId: res.id, url: url });
} else {
@@ -43,7 +43,9 @@ async function DocumentAftersave(request) {
if (signers && signers.length > 0) {
await updateAclDoc(request.object.id);
} else {
await updateSelfDoc(request.object.id);
if (request?.object?.id) {
await updateSelfDoc(request.object.id);
}
}
} else {
if (request.user) {
@@ -51,7 +53,9 @@ async function DocumentAftersave(request) {
if (signers && signers.length > 0) {
await updateAclDoc(request.object.id);
} else {
await updateSelfDoc(request.object.id);
if (request?.object?.id) {
await updateSelfDoc(request.object.id);
}
}
}
}