mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-22 07:32:31 +02:00
feat: add limit and skip variables in query & contact creation api
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
import axios from 'axios';
|
||||
export default async function createContact(request, response) {
|
||||
const serverUrl = process.env.SERVER_URL;
|
||||
const appId = process.env.APP_ID;
|
||||
const name = request.body.name;
|
||||
const phone = request.body.phone;
|
||||
const email = request.body.email;
|
||||
|
||||
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 };
|
||||
try {
|
||||
const Tenant = new Parse.Query('partners_Tenant');
|
||||
Tenant.equalTo('UserId', userId);
|
||||
const tenantRes = Tenant.first({ useMasterKey: true });
|
||||
|
||||
const contactQuery = new Parse.Object('contracts_Contactbook');
|
||||
contactQuery.set('Name', name);
|
||||
contactQuery.set('Phone', phone);
|
||||
contactQuery.set('Email', email);
|
||||
contactQuery.set('UserRole', 'contracts_Guest');
|
||||
|
||||
if (tenantRes) {
|
||||
contactQuery.set('TenantId', {
|
||||
__type: 'Pointer',
|
||||
className: 'partners_Tenant',
|
||||
objectId: tenantRes.id,
|
||||
});
|
||||
}
|
||||
try {
|
||||
const _users = Parse.Object.extend('User');
|
||||
const _user = new _users();
|
||||
_user.set('name', name);
|
||||
_user.set('username', email);
|
||||
_user.set('email', email);
|
||||
_user.set('phone', phone);
|
||||
_user.set('password', phone);
|
||||
|
||||
const user = await _user.save();
|
||||
if (user) {
|
||||
const roleurl = `${serverUrl}/functions/AddUserToRole`;
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Parse-Application-Id': appId,
|
||||
// sessionToken: localStorage.getItem('accesstoken'),
|
||||
};
|
||||
const body = {
|
||||
appName: 'contracts',
|
||||
roleName: 'contracts_Guest',
|
||||
userId: user.id,
|
||||
};
|
||||
await axios.post(roleurl, body, { headers: headers });
|
||||
const currentUser = Parse.User.current();
|
||||
contactQuery.set('CreatedBy', Parse.User.createWithoutData(currentUser.id));
|
||||
|
||||
contactQuery.set('UserId', user);
|
||||
const acl = new Parse.ACL();
|
||||
acl.setReadAccess(currentUser.id, true);
|
||||
acl.setWriteAccess(currentUser.id, true);
|
||||
acl.setReadAccess(user.id, true);
|
||||
acl.setWriteAccess(user.id, true);
|
||||
|
||||
contactQuery.setACL(acl);
|
||||
|
||||
await contactQuery.save();
|
||||
// const parseData = JSON.parse(JSON.stringify(res));
|
||||
return response.json({ code: 200, message: 'Contact create sucessfully!' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('err ', err);
|
||||
if (err.code === 202) {
|
||||
const params = { email: email };
|
||||
const userRes = await Parse.Cloud.run('getUserId', params);
|
||||
const roleurl = `${parseBaseUrl}functions/AddUserToRole`;
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Parse-Application-Id': parseAppId,
|
||||
// sessionToken: localStorage.getItem('accesstoken'),
|
||||
};
|
||||
const body = {
|
||||
appName: 'contracts',
|
||||
roleName: 'contracts_Guest',
|
||||
userId: userRes.id,
|
||||
};
|
||||
await axios.post(roleurl, body, { headers: headers });
|
||||
const currentUser = Parse.User.current();
|
||||
contactQuery.set('CreatedBy', Parse.User.createWithoutData(currentUser.id));
|
||||
|
||||
contactQuery.set('UserId', {
|
||||
__type: 'Pointer',
|
||||
className: '_User',
|
||||
objectId: userRes.id,
|
||||
});
|
||||
const acl = new Parse.ACL();
|
||||
acl.setReadAccess(currentUser.id, true);
|
||||
acl.setWriteAccess(currentUser.id, true);
|
||||
acl.setReadAccess(userRes.id, true);
|
||||
acl.setWriteAccess(userRes.id, true);
|
||||
|
||||
contactQuery.setACL(acl);
|
||||
await contactQuery.save();
|
||||
return response.json({ code: 200, message: 'Contact create sucessfully!' });
|
||||
// const parseData = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
return response.json({ code: 404, message: 'Something went wrong, please try again later!' });
|
||||
}
|
||||
} else {
|
||||
return response.json({ code: 404, message: 'Invalid API Token!' });
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,8 @@ export default async function deletedTemplate(request, response) {
|
||||
template.equalTo('CreatedBy', userId);
|
||||
const res = await template.first({ useMasterKey: true });
|
||||
if (res) {
|
||||
const isDeleted = res.get('IsArchive');
|
||||
if (isDeleted && isDeleted) {
|
||||
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');
|
||||
|
||||
@@ -11,8 +11,13 @@ 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 Contactbook = new Parse.Query('contracts_Contactbook');
|
||||
Contactbook.equalTo('CreatedBy', userId);
|
||||
Contactbook.notEqualTo('IsDeleted', true);
|
||||
Contactbook.limit(limit);
|
||||
Contactbook.skip(skip);
|
||||
const res = await Contactbook.find({ useMasterKey: true });
|
||||
if (res && res.length > 0) {
|
||||
return response.json({ code: 200, result: res });
|
||||
|
||||
@@ -17,8 +17,8 @@ export default async function getDocumentList(request, response) {
|
||||
// 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;
|
||||
const limit = request?.body?.limit ? request.body.limit : 100;
|
||||
const skip = request?.body?.skip ? request.body.skip : 0;
|
||||
let reportId;
|
||||
switch (docType) {
|
||||
case 'draftDocuments':
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import axios from 'axios';
|
||||
import reportJson from '../../../parsefunction/reportsJson.js';
|
||||
import dotenv from 'dotenv';
|
||||
dotenv.config();
|
||||
|
||||
@@ -16,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 : 200;
|
||||
const skip = request.body.skip ? request.body.skip : 0;
|
||||
const limit = request?.body?.limit ? request.body.limit : 100;
|
||||
const skip = request?.body?.skip ? request.body.skip : 0;
|
||||
|
||||
const clsName = 'contracts_Template';
|
||||
const params = {
|
||||
|
||||
Reference in New Issue
Block a user