mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-09-08 10:47:39 +02:00
add api for get, delete contact, getUser & get Documents
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
//--npm modules
|
||||
import express from 'express';
|
||||
import cors from 'cors';
|
||||
export const app = express();
|
||||
import dotenv from 'dotenv';
|
||||
import getUser from './routes/getUser.js';
|
||||
import getDocuments from './routes/getDocuments.js';
|
||||
import getDocument from './routes/getDocument.js';
|
||||
import getContact from './routes/getContact.js';
|
||||
import deleteContact from './routes/deleteContact.js';
|
||||
import getContacts from './routes/getContacts.js';
|
||||
|
||||
dotenv.config();
|
||||
app.use(cors());
|
||||
app.use(express.json({ limit: '50mb' }));
|
||||
app.use(express.urlencoded({ limit: '50mb', extended: true }));
|
||||
|
||||
// get user details whose api token used
|
||||
app.get('/getuser', getUser);
|
||||
|
||||
// get all types of documents on the basis of doctype
|
||||
app.get('/getdocuments', getDocuments);
|
||||
|
||||
// get Document on the basis of id
|
||||
app.get('/document/:document_id', getDocument);
|
||||
|
||||
// get contact on the basis of id
|
||||
app.get('/contact/:contact_id', getContact);
|
||||
|
||||
// soft delete contact
|
||||
app.delete('/contact/:contact_id', deleteContact);
|
||||
|
||||
// get list of contacts
|
||||
app.get('/getcontacts', getContacts);
|
||||
@@ -0,0 +1,42 @@
|
||||
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' });
|
||||
}
|
||||
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 Contactbook = new Parse.Query('contracts_Contactbook');
|
||||
Contactbook.equalTo('objectId', request.params.contact_id);
|
||||
Contactbook.equalTo('CreatedBy', userId);
|
||||
const res = await Contactbook.first({ useMasterKey: true });
|
||||
if (res) {
|
||||
const isDeleted = res.get('IsDeleted');
|
||||
if (isDeleted && isDeleted) {
|
||||
return response.json({ code: 404, message: 'Record not found!' });
|
||||
} else {
|
||||
const Contactbook = Parse.Object.extend('contracts_Contactbook');
|
||||
const deleteQuery = new Contactbook();
|
||||
deleteQuery.id = request.params.contact_id;
|
||||
deleteQuery.set('IsDeleted', 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,30 @@
|
||||
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' });
|
||||
}
|
||||
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 Contactbook = new Parse.Query('contracts_Contactbook');
|
||||
Contactbook.equalTo('objectId', request.params.contact_id);
|
||||
Contactbook.equalTo('CreatedBy', userId);
|
||||
const res = await Contactbook.first({ useMasterKey: true });
|
||||
if (res) {
|
||||
return response.json({ code: 200, result: res });
|
||||
} 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,29 @@
|
||||
export default async function getContacts(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 Contactbook = new Parse.Query('contracts_Contactbook');
|
||||
Contactbook.equalTo('CreatedBy', userId);
|
||||
const res = await Contactbook.find({ useMasterKey: true });
|
||||
if (res && res.length > 0) {
|
||||
return response.json({ code: 200, result: res });
|
||||
} else {
|
||||
return response.json({ code: 200, result: [] });
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
return response.json(err);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
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' });
|
||||
}
|
||||
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_Document');
|
||||
Document.equalTo('objectId', request.params.document_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,67 @@
|
||||
import axios from 'axios';
|
||||
import reportJson from '../../../parsefunction/reportsJson.js';
|
||||
import dotenv from 'dotenv';
|
||||
dotenv.config();
|
||||
|
||||
export default async function getDocuments(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 docType = request.body.doctype;
|
||||
const limit = request.body.limit;
|
||||
const skip = request.body.skip;
|
||||
let reportId;
|
||||
switch (docType) {
|
||||
case 'draftDocuments':
|
||||
reportId = 'ByHuevtCFY';
|
||||
break;
|
||||
case 'signatureRequest':
|
||||
reportId = '4Hhwbp482K';
|
||||
break;
|
||||
case 'inprogressDocuments':
|
||||
reportId = '1MwEuxLEkF';
|
||||
break;
|
||||
case 'completeDocuments':
|
||||
reportId = 'kQUoW4hUXz';
|
||||
break;
|
||||
case 'expiredDocuments':
|
||||
reportId = 'zNqBHXHsYH';
|
||||
break;
|
||||
case 'declinedDocuments':
|
||||
reportId = 'UPr2Fm5WY3';
|
||||
break;
|
||||
}
|
||||
const json = reportId && reportJson(reportId, userId);
|
||||
const clsName = 'contracts_Document';
|
||||
if (json) {
|
||||
const { params, keys } = json;
|
||||
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: [] });
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Report is not available!' });
|
||||
}
|
||||
}
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import dotenv from 'dotenv';
|
||||
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' });
|
||||
}
|
||||
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 query = new Parse.Query(Parse.User);
|
||||
query.equalTo('objectId', userId);
|
||||
query.exclude('authData');
|
||||
let user = await query.first({ useMasterKey: true });
|
||||
const result = user;
|
||||
if (result) {
|
||||
return response.json({ code: 200, result: result });
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Record not found!' });
|
||||
}
|
||||
}
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import AWS from 'aws-sdk';
|
||||
import { app as customRoute } from './cloud/customRoute/customApp.js';
|
||||
import { exec } from 'child_process';
|
||||
import { createTransport } from 'nodemailer';
|
||||
import { app as v1 } from './cloud/customRoute/v1/apiV1.js';
|
||||
|
||||
const spacesEndpoint = new AWS.Endpoint(process.env.DO_ENDPOINT);
|
||||
// console.log("configuration ", configuration);
|
||||
@@ -162,6 +163,9 @@ if (!process.env.TESTING) {
|
||||
// Mount your custom express app
|
||||
app.use('/', customRoute);
|
||||
|
||||
// Mount v1
|
||||
app.use('/v1', v1);
|
||||
|
||||
// Parse Server plays nicely with the rest of your web routes
|
||||
app.get('/', function (req, res) {
|
||||
// res.statusCode = 200;
|
||||
|
||||
Reference in New Issue
Block a user