mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-22 15:42:31 +02:00
add api for template, createDocument
This commit is contained in:
@@ -9,6 +9,11 @@ import getDocument from './routes/getDocument.js';
|
||||
import getContact from './routes/getContact.js';
|
||||
import deleteContact from './routes/deleteContact.js';
|
||||
import getContactList from './routes/getContactList.js';
|
||||
import createDocument from './routes/createDocument.js';
|
||||
import createTemplate from './routes/createTemplate.js';
|
||||
import getTemplate from './routes/getTemplate.js';
|
||||
import deletedTemplate from './routes/deleteTemplate.js';
|
||||
import getTemplatetList from './routes/getTemplateList.js';
|
||||
|
||||
dotenv.config();
|
||||
app.use(cors());
|
||||
@@ -32,3 +37,19 @@ app.delete('/contact/:contact_id', deleteContact);
|
||||
|
||||
// get list of contacts
|
||||
app.get('/contactlist', getContactList);
|
||||
|
||||
// create Document
|
||||
app.post('/createdocument', createDocument);
|
||||
|
||||
// create Template
|
||||
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.delete('/template/:template_id', deletedTemplate);
|
||||
|
||||
// get all types of documents on the basis of doctype
|
||||
app.get('/templatelist', getTemplatetList);
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
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;
|
||||
|
||||
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 contractsUser = new Parse.Query('contracts_Users');
|
||||
contractsUser.equalTo('UserId', userId);
|
||||
const extUser = await contractsUser.first({ useMasterKey: true });
|
||||
const extUserPtr = { __type: 'Pointer', className: 'contracts_Users', objectId: extUser.id };
|
||||
|
||||
const folderPtr = { __type: 'Pointer', className: 'contracts_Document', objectId: folderId };
|
||||
|
||||
const object = new Parse.Object('contracts_Document');
|
||||
object.set('Name', name);
|
||||
if (note) {
|
||||
object.set('Note', note);
|
||||
}
|
||||
if (description) {
|
||||
object.set('Description', description);
|
||||
}
|
||||
object.set('URL', file);
|
||||
object.set('CreatedBy', userId);
|
||||
object.set('ExtUserPtr', extUserPtr);
|
||||
if (signers) {
|
||||
object.set('Signers', signers);
|
||||
}
|
||||
if (folderId) {
|
||||
object.set('Folder', folderPtr);
|
||||
}
|
||||
const res = await object.save(null, { useMasterKey: true });
|
||||
return response.json({ code: 200, result: res });
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
return response.json(err);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
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;
|
||||
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 contractsUser = new Parse.Query('contracts_Users');
|
||||
contractsUser.equalTo('UserId', userId);
|
||||
const extUser = await contractsUser.first({ useMasterKey: true });
|
||||
const extUserPtr = { __type: 'Pointer', className: 'contracts_Users', objectId: extUser.id };
|
||||
|
||||
const folderPtr = { __type: 'Pointer', className: 'contracts_Template', objectId: folderId };
|
||||
|
||||
const object = new Parse.Object('contracts_Template');
|
||||
object.set('Name', name);
|
||||
if (note) {
|
||||
object.set('Note', note);
|
||||
}
|
||||
if (description) {
|
||||
object.set('Description', description);
|
||||
}
|
||||
object.set('URL', file);
|
||||
object.set('CreatedBy', userId);
|
||||
object.set('ExtUserPtr', extUserPtr);
|
||||
if (signers) {
|
||||
object.set('Signers', signers);
|
||||
}
|
||||
if (folderId) {
|
||||
object.set('Folder', folderPtr);
|
||||
}
|
||||
const res = await object.save(null, { useMasterKey: true });
|
||||
return response.json({ code: 200, result: res });
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
return response.json(err);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
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' });
|
||||
}
|
||||
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 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 isDeleted = res.get('IsArchive');
|
||||
if (isDeleted && isDeleted) {
|
||||
return response.json({ code: 404, message: 'Record not found!' });
|
||||
} else {
|
||||
const template = Parse.Object.extend('contracts_Template');
|
||||
const deleteQuery = new template();
|
||||
deleteQuery.id = request.params.template_id;
|
||||
deleteQuery.set('IsArchive', true);
|
||||
const deleteRes = await deleteQuery.save(null, { useMasterKey: true });
|
||||
if (deleteRes) {
|
||||
return response.json({ code: 200, result: 'Record delete successfully!' });
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Record not found!' });
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
return response.json(err);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +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);
|
||||
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!' });
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
return response.json(err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
import axios from 'axios';
|
||||
import reportJson from '../../../parsefunction/reportsJson.js';
|
||||
import dotenv from 'dotenv';
|
||||
dotenv.config();
|
||||
|
||||
export default async function getTemplatetList(request, response) {
|
||||
const reqToken = request.headers['x-api-token'];
|
||||
const appId = process.env.APP_ID;
|
||||
const serverUrl = process.env.SERVER_URL;
|
||||
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 userId = token.get('Id');
|
||||
const limit = request.body.limit ? request.body.limit : 200;
|
||||
const skip = request.body.skip ? request.body.skip : 0;
|
||||
|
||||
const clsName = 'contracts_Template';
|
||||
const params = {
|
||||
Type: { $ne: 'Folder' },
|
||||
CreatedBy: {
|
||||
__type: 'Pointer',
|
||||
className: '_User',
|
||||
objectId: userId,
|
||||
},
|
||||
IsArchive: { $ne: true },
|
||||
};
|
||||
const keys = [
|
||||
'Name',
|
||||
'Note',
|
||||
'Description',
|
||||
'Folder.Name',
|
||||
'URL',
|
||||
'ExtUserPtr.Name',
|
||||
'Signers.Name',
|
||||
];
|
||||
const orderBy = '-updatedAt';
|
||||
const strParams = JSON.stringify(params);
|
||||
const strKeys = keys.join();
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Parse-Application-Id': appId,
|
||||
'X-Parse-Master-Key': process.env.MASTER_KEY,
|
||||
};
|
||||
const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr`;
|
||||
const res = await axios.get(url, { headers: headers });
|
||||
if (res.data && res.data.results) {
|
||||
return response.json({ code: 200, result: res.data.results });
|
||||
} else {
|
||||
return response.json({ code: 200, result: [] });
|
||||
}
|
||||
}
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
Reference in New Issue
Block a user