From e71940ecdca8916c3fafecb8d3a12a52c920c212 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Mon, 5 Aug 2024 12:43:44 +0530 Subject: [PATCH] fix:add env in docker compose, save tenantcredit and datafiles is not working --- apps/OpenSignServer/Utils.js | 89 +++++-------------- .../parsefunction/sendMailGmailProvider.js | 19 ++-- .../cloud/parsefunction/sendMailv3.js | 17 ++-- docker-compose.yml | 12 +++ 4 files changed, 61 insertions(+), 76 deletions(-) diff --git a/apps/OpenSignServer/Utils.js b/apps/OpenSignServer/Utils.js index 99a92dab2..f6e05f30e 100644 --- a/apps/OpenSignServer/Utils.js +++ b/apps/OpenSignServer/Utils.js @@ -1,9 +1,6 @@ -import axios from 'axios'; import dotenv from 'dotenv'; dotenv.config(); -const appId = process.env.APP_ID; -const serverUrl = process.env.SERVER_URL; export const cloudServerUrl = 'http://localhost:8080/app'; export function customAPIurl() { const url = new URL(cloudServerUrl); @@ -38,17 +35,12 @@ export function replaceMailVaribles(subject, body, variables) { replacedBody = replacedBody.replace(regex, variables[variable]); } } - - const result = { - subject: replacedSubject, - body: replacedBody, - }; + const result = { subject: replacedSubject, body: replacedBody }; return result; } -export const saveFileUsage = async (size, imageUrl, userId) => { +export const saveFileUsage = async (size, fileUrl, userId) => { //checking server url and save file's size - try { const tenantQuery = new Parse.Query('partners_Tenant'); tenantQuery.equalTo('UserId', { @@ -58,53 +50,28 @@ export const saveFileUsage = async (size, imageUrl, userId) => { }); const tenant = await tenantQuery.first(); if (tenant) { - const tenantPtr = { - __type: 'Pointer', - className: 'partners_Tenant', - objectId: tenant.id, - }; - const _tenantPtr = JSON.stringify(tenantPtr); + const tenantPtr = { __type: 'Pointer', className: 'partners_Tenant', objectId: tenant.id }; try { - const res = await axios.get( - `${serverUrl}/classes/partners_TenantCredits?where={"PartnersTenant":${_tenantPtr}}`, - { - headers: { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - }, - } - ); - const response = res.data.results; - - let data; - // console.log("response", response); - if (response && response.length > 0) { - data = { - usedStorage: response[0].usedStorage ? response[0].usedStorage + size : size, - }; - await axios.put( - `${serverUrl}/classes/partners_TenantCredits/${response[0].objectId}`, - data, - { - headers: { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - }, - } - ); + const tenantCredits = new Parse.Query('partners_TenantCredits'); + tenantCredits.equalTo('PartnersTenant', tenantPtr); + const res = await tenantCredits.first({ useMasterKey: true }); + if (res) { + const response = JSON.parse(JSON.stringify(res)); + const size = response?.usedStorage ? response.usedStorage + size : size; + const updateCredit = new Parse.Object('partners_TenantCredits'); + updateCredit.id = res.id; + updateCredit.set('usedStorage', size); + await updateCredit.save(null, { useMasterKey: true }); } else { - data = { usedStorage: size, PartnersTenant: tenantPtr }; - await axios.post(`${serverUrl}/classes/partners_TenantCredits`, data, { - headers: { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - }, - }); + const newCredit = new Parse.Object('partners_TenantCredits'); + newCredit.set('usedStorage', size); + newCredit.set('PartnersTenant', tenantPtr); + await newCredit.save(null, { useMasterKey: true }); } } catch (err) { console.log('err in save usage', err); } - saveDataFile(size, imageUrl, tenantPtr); + saveDataFile(size, fileUrl, tenantPtr); } } catch (err) { console.log('err in fetch tenant Id', err); @@ -112,21 +79,13 @@ export const saveFileUsage = async (size, imageUrl, userId) => { }; //function for save fileUrl and file size in particular client db class partners_DataFiles -const saveDataFile = async (size, imageUrl, tenantPtr) => { - const data = { - FileUrl: imageUrl, - FileSize: size, - TenantPtr: tenantPtr, - }; - - // console.log("data save",file, data) +const saveDataFile = async (size, fileUrl, tenantPtr) => { try { - await axios.post(`${serverUrl}/classes/partners_DataFiles`, data, { - headers: { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': appId, - }, - }); + const newDataFiles = new Parse.Object('partners_DataFiles'); + newDataFiles.set('FileUrl', fileUrl); + newDataFiles.set('FileSize', size); + newDataFiles.set('TenantPtr', tenantPtr); + await newDataFiles.save(null, { useMasterKey: true }); } catch (err) { console.log('error in save usage ', err); } diff --git a/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js b/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js index a4c065eb6..9e809be46 100644 --- a/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js +++ b/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js @@ -37,16 +37,23 @@ const makeEmail = async (to, from, subject, html, url, pdfName) => { let Pdf = fs.createWriteStream('test.pdf'); const writeToLocalDisk = () => { return new Promise((resolve, reject) => { - if (useLocal !== 'true' && publicUrl.protocol !== 'http:') { - https.get(url, async function (response) { + if (useLocal !== 'true') { + https.get(req.params.url, async function (response) { response.pipe(Pdf); response.on('end', () => resolve('success')); }); } else { - http.get(url, async function (response) { - response.pipe(Pdf); - response.on('end', () => resolve('success')); - }); + if (publicUrl.protocol === 'http:') { + http.get(req.params.url, async function (response) { + response.pipe(Pdf); + response.on('end', () => resolve('success')); + }); + } else { + https.get(req.params.url, async function (response) { + response.pipe(Pdf); + response.on('end', () => resolve('success')); + }); + } } }); }; diff --git a/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js b/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js index 412154847..65426f29c 100644 --- a/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js +++ b/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js @@ -34,16 +34,23 @@ async function sendMailProvider(req) { let Pdf = fs.createWriteStream('test.pdf'); const writeToLocalDisk = () => { return new Promise((resolve, reject) => { - if (useLocal !== 'true' && publicUrl.protocol !== 'http:') { + if (useLocal !== 'true') { https.get(req.params.url, async function (response) { response.pipe(Pdf); response.on('end', () => resolve('success')); }); } else { - http.get(req.params.url, async function (response) { - response.pipe(Pdf); - response.on('end', () => resolve('success')); - }); + if (publicUrl.protocol === 'http:') { + http.get(req.params.url, async function (response) { + response.pipe(Pdf); + response.on('end', () => resolve('success')); + }); + } else { + https.get(req.params.url, async function (response) { + response.pipe(Pdf); + response.on('end', () => resolve('success')); + }); + } } }); }; diff --git a/docker-compose.yml b/docker-compose.yml index 1b4a22c61..86202b80b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,18 @@ services: environment: - NODE_ENV=production - SERVER_URL=${HOST:-https://localhost:3001/app} + - APP_ID=opensign + - MASTER_KEY=insecure_masterkey + - MONGODB_URI=mongodb://mongo-container:27017/OpenSignDB + - PARSE_MOUNT=/app + - USE_LOCAL=true + - SMTP_ENABLE=true + - SMTP_HOST=smtp.yourhost.com + - SMTP_PORT=443 + - SMTP_USER_EMAIL=mailer@yourdomain.com + - SMTP_PASS=password + - PFX_BASE64='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' + - PASS_PHRASE=opensign networks: - app-network mongo: