@ -0,0 +1,188 @@ | |||||
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig | |||||
# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,node | |||||
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,macos,node | |||||
### macOS ### | |||||
# General | |||||
.DS_Store | |||||
.AppleDouble | |||||
.LSOverride | |||||
# Icon must end with two \r | |||||
Icon | |||||
# Thumbnails | |||||
._* | |||||
# Files that might appear in the root of a volume | |||||
.DocumentRevisions-V100 | |||||
.fseventsd | |||||
.Spotlight-V100 | |||||
.TemporaryItems | |||||
.Trashes | |||||
.VolumeIcon.icns | |||||
.com.apple.timemachine.donotpresent | |||||
# Directories potentially created on remote AFP share | |||||
.AppleDB | |||||
.AppleDesktop | |||||
Network Trash Folder | |||||
Temporary Items | |||||
.apdisk | |||||
### Node ### | |||||
# Logs | |||||
logs | |||||
*.log | |||||
npm-debug.log* | |||||
yarn-debug.log* | |||||
yarn-error.log* | |||||
lerna-debug.log* | |||||
.pnpm-debug.log* | |||||
.log | |||||
# Diagnostic reports (https://nodejs.org/api/report.html) | |||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | |||||
# Runtime data | |||||
pids | |||||
*.pid | |||||
*.seed | |||||
*.pid.lock | |||||
# Directory for instrumented libs generated by jscoverage/JSCover | |||||
lib-cov | |||||
# Coverage directory used by tools like istanbul | |||||
coverage | |||||
*.lcov | |||||
# nyc test coverage | |||||
.nyc_output | |||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | |||||
.grunt | |||||
# Bower dependency directory (https://bower.io/) | |||||
bower_components | |||||
# node-waf configuration | |||||
.lock-wscript | |||||
# Compiled binary addons (https://nodejs.org/api/addons.html) | |||||
build/Release | |||||
# Dependency directories | |||||
node_modules/ | |||||
jspm_packages/ | |||||
# Snowpack dependency directory (https://snowpack.dev/) | |||||
web_modules/ | |||||
# TypeScript cache | |||||
*.tsbuildinfo | |||||
# Optional npm cache directory | |||||
.npm | |||||
# Optional eslint cache | |||||
.eslintcache | |||||
# Microbundle cache | |||||
.rpt2_cache/ | |||||
.rts2_cache_cjs/ | |||||
.rts2_cache_es/ | |||||
.rts2_cache_umd/ | |||||
# Optional REPL history | |||||
.node_repl_history | |||||
# Output of 'npm pack' | |||||
*.tgz | |||||
# Yarn Integrity file | |||||
.yarn-integrity | |||||
# dotenv environment variables file | |||||
.env | |||||
.env.test | |||||
.env.production | |||||
# parcel-bundler cache (https://parceljs.org/) | |||||
.cache | |||||
.parcel-cache | |||||
# Next.js build output | |||||
.next | |||||
out | |||||
# Nuxt.js build / generate output | |||||
.nuxt | |||||
dist | |||||
# Gatsby files | |||||
.cache/ | |||||
# Comment in the public line in if your project uses Gatsby and not Next.js | |||||
# https://nextjs.org/blog/next-9-1#public-directory-support | |||||
# public | |||||
# vuepress build output | |||||
.vuepress/dist | |||||
# Serverless directories | |||||
.serverless/ | |||||
# FuseBox cache | |||||
.fusebox/ | |||||
# DynamoDB Local files | |||||
.dynamodb/ | |||||
# TernJS port file | |||||
.tern-port | |||||
# Stores VSCode versions used for testing VSCode extensions | |||||
.vscode-test | |||||
# yarn v2 | |||||
.yarn/cache | |||||
.yarn/unplugged | |||||
.yarn/build-state.yml | |||||
.yarn/install-state.gz | |||||
.pnp.* | |||||
### Node Patch ### | |||||
# Serverless Webpack directories | |||||
.webpack/ | |||||
# Optional stylelint cache | |||||
.stylelintcache | |||||
# SvelteKit build / generate output | |||||
.svelte-kit | |||||
### VisualStudioCode ### | |||||
.vscode/* | |||||
!.vscode/settings.json | |||||
!.vscode/tasks.json | |||||
!.vscode/launch.json | |||||
!.vscode/extensions.json | |||||
*.code-workspace | |||||
# Local History for Visual Studio Code | |||||
.history/ | |||||
### VisualStudioCode Patch ### | |||||
# Ignore all local history of files | |||||
.history | |||||
.ionide | |||||
# Support for Project snippet scope | |||||
!.vscode/*.code-snippets | |||||
# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,node | |||||
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) | |||||
@ -0,0 +1,60 @@ | |||||
var createError = require('http-errors'); | |||||
var express = require('express'); | |||||
var app = express(); | |||||
var path = require('path'); | |||||
//var cookieParser = require('cookie-parser'); | |||||
var logger = require('morgan'); | |||||
const connection = require('./utils/db_config'); | |||||
const scriptRouter = require('./routes/script'); | |||||
const scheduler = require('./utils/scheduler'); | |||||
const rfs = require('rotating-file-stream'); | |||||
const logDirectory = path.join(__dirname, 'log') | |||||
const port = process.env.PORT || 5000; | |||||
// view engine setup | |||||
app.set('views', path.join(__dirname, 'views')); | |||||
app.set('view engine', 'pug'); | |||||
// create a write stream (in append mode) | |||||
const accessLogStream = rfs.createStream('apiResponse.log', { | |||||
interval: '1d', // rotate daily | |||||
path: logDirectory | |||||
}) | |||||
// setup the logger | |||||
app.use(logger('tiny', { stream: accessLogStream })); | |||||
app.use(logger('dev')); | |||||
app.use(express.json()); | |||||
app.use(express.urlencoded({ extended: false })); | |||||
//app.use(cookieParser()); | |||||
app.use(express.static(path.join(__dirname, 'public'))); | |||||
//app.use('/', indexRouter); | |||||
app.use('/script', scriptRouter); | |||||
/* SCHEDULER */ | |||||
//scheduler.routineFetchInvestors(); | |||||
// catch 404 and forward to error handler | |||||
app.use(function (req, res, next) { | |||||
next(createError(404)); | |||||
}); | |||||
// error handler | |||||
app.use(function (err, req, res, next) { | |||||
// set locals, only providing error in development | |||||
res.locals.message = err.message; | |||||
res.locals.error = req.app.get('env') === 'development' ? err : {}; | |||||
// render the error page | |||||
res.status(err.status || 500); | |||||
res.render('error'); | |||||
}); | |||||
app.listen(port, () => { | |||||
console.log(`App is running on port ${port}`) | |||||
}); | |||||
module.exports = app; |
@ -0,0 +1,25 @@ | |||||
{ | |||||
"name": "p2p_liquiloan_script", | |||||
"version": "1.0.0", | |||||
"description": "", | |||||
"main": "app.js", | |||||
"scripts": { | |||||
"test": "echo \"Error: no test specified\" && exit 1" | |||||
}, | |||||
"repository": { | |||||
"type": "git", | |||||
"url": "https://git.nivesh.com:443/akhilesh.chandak/P2P_Liquiloan_Script.git" | |||||
}, | |||||
"author": "", | |||||
"license": "ISC", | |||||
"dependencies": { | |||||
"cookie-parser": "^1.4.6", | |||||
"dotenv": "^16.3.1", | |||||
"express": "^4.18.2", | |||||
"morgan": "^1.10.0", | |||||
"node-cron": "^3.0.3", | |||||
"rotating-file-stream": "^3.1.1", | |||||
"sequelize": "^6.35.1", | |||||
"tedious": "^16.6.1" | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
body { | |||||
padding: 50px; | |||||
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; | |||||
} | |||||
a { | |||||
color: #00B7FF; | |||||
} |
@ -0,0 +1,7 @@ | |||||
const express = require('express'); | |||||
const router = express.Router(); | |||||
/* GET users listing. */ | |||||
module.exports = router; |
@ -0,0 +1,43 @@ | |||||
const ERROR_500 = "500"; | |||||
const SUCCESS = "200"; | |||||
const ERROR_400 = "400"; | |||||
const ERROR_404 = "404"; | |||||
const ERROR_409 = "409"; | |||||
const ERROR_410 = "410"; | |||||
const ERROR_401 = "401"; | |||||
const UNAUTHORIZED_ERROR = "You are not authorized to use the app"; | |||||
const ERROR_MESSAGE = "Oops,something went wrong"; | |||||
const BUCKET_NAME_NIVESH = "nivesh-call-logs/recording"; | |||||
const S3_BUCKET_NIVESH_CALL_URL= "https://nivesh-call-logs.s3.ap-south-1.amazonaws.com/recording/"; | |||||
const BUCKET_NAME_SOA_REPORTS = "client-soa-reports/ELSS"; | |||||
const S3_BUCKET_SOA_REPORTS_URL= "https://client-soa-reports.s3.ap-south-1.amazonaws.com/ELSS/"; | |||||
const AWS_ACCESS_KEY_ID_TEST = "AKIA2C5JCOWXUXB4T3MV"; | |||||
const AWS_SECRET_KEY_TEST = "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"; | |||||
const EXOTEL_AUTHTOKEN = "Basic NWE0NjY1ZDU0MGViNzk5NjQxMGQ1NWJhYzllZmI5MTVhOTgyYWU2MmRmYWFkZmM0OmU0YTgzNjEwNjI1NWM5ZDllY2QxMDNiOWQwZGFmYWQ3ZTA1YjNjNTU1NDJhZjU3NQ==" | |||||
s3://kwikfoods/2020/ | |||||
module.exports = { | |||||
ERROR_500, | |||||
ERROR_400, | |||||
ERROR_404, | |||||
ERROR_401, | |||||
UNAUTHORIZED_ERROR, | |||||
SUCCESS, | |||||
ERROR_MESSAGE, | |||||
ERROR_410, | |||||
ERROR_409, | |||||
BUCKET_NAME_NIVESH, | |||||
S3_BUCKET_NIVESH_CALL_URL, | |||||
BUCKET_NAME_SOA_REPORTS, | |||||
S3_BUCKET_SOA_REPORTS_URL, | |||||
AWS_ACCESS_KEY_ID_TEST, | |||||
AWS_SECRET_KEY_TEST, | |||||
EXOTEL_AUTHTOKEN | |||||
}; |
@ -0,0 +1,76 @@ | |||||
const Sequelize = require('sequelize'); | |||||
const tedious = require('tedious'); | |||||
require('dotenv').config(); | |||||
const db = {}; | |||||
var sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER_NAME, process.env.DB_PASSWORD, { | |||||
host: process.env.DB_HOST, | |||||
dialect: process.env.DB_TYPE, | |||||
dialectModule: tedious, | |||||
define: { underscored: false }, | |||||
logging: false, | |||||
timezone: 'ist', | |||||
dialectOptions: { | |||||
options: { | |||||
encrypt: true, | |||||
requestTimeout: 60000 // timeout = 30 seconds | |||||
} | |||||
} | |||||
}); | |||||
sequelize | |||||
.authenticate() | |||||
.then(() => { | |||||
console.log('connected to database successfully') | |||||
}).catch(err => { | |||||
console.error('Unable to connect to the database:', err); | |||||
}); | |||||
// sequelize.sync({ | |||||
// force: false | |||||
// }); | |||||
db.Sequelize = Sequelize; | |||||
db.sequelize = sequelize; | |||||
//db.exotelCalls = require('../model/exotelcalls')(sequelize, Sequelize); | |||||
//db.cRMLeadRemarks = require('../model/crmLeadRemarks')(sequelize, Sequelize); | |||||
//db.appRating.associations(db); | |||||
module.exports = db; | |||||
/* | |||||
const sql = require('mssql') | |||||
const sqlConfig = { | |||||
user: 'BSeMF', | |||||
password: 'nivesh2017', | |||||
database: 'providentialadvisory', | |||||
server: 'ec2-13-235-204-185.ap-south-1.compute.amazonaws.com', | |||||
pool: { | |||||
max: 10, | |||||
min: 0, | |||||
idleTimeoutMillis: 30000 | |||||
}, | |||||
options: { | |||||
encrypt: true, // for azure | |||||
trustServerCertificate: true // change to true for local dev / self-signed certs | |||||
} | |||||
} | |||||
const connection = async () => { | |||||
try { | |||||
console.log('ajksfkgjsafkksafkkfskf') | |||||
let con = await sql.connect(sqlConfig) | |||||
console.log('connection',con); | |||||
} catch (err) { | |||||
console.log(err); | |||||
} | |||||
}; | |||||
connection(); | |||||
*/ |
@ -0,0 +1,77 @@ | |||||
const express = require('express'); | |||||
const Constants = require('./consts.js'); | |||||
const sendErrorMessage = (res, errorCode) => { | |||||
res.json({ | |||||
status: errorCode, | |||||
message: Constants.ERROR_MESSAGE | |||||
}); | |||||
}; | |||||
const sendErrorCustomMessage = (res, text, errorCode) => { | |||||
res.json({ | |||||
status: errorCode, | |||||
message: text | |||||
}); | |||||
}; | |||||
const sendSuccessMessage = (res, message) => { | |||||
res.json({ | |||||
status: Constants.SUCCESS, | |||||
message: message | |||||
}).status(200); | |||||
}; | |||||
const sendsuccessData = (res, message, data) => { | |||||
res.json({ | |||||
status: Constants.SUCCESS, | |||||
message: message, | |||||
data: data | |||||
}); | |||||
}; | |||||
const sendErrorCustomData = (res, message, data) => { | |||||
res.json({ | |||||
status: Constants.ERROR_500, | |||||
message: message, | |||||
data: data | |||||
}); | |||||
}; | |||||
const sendNotFoundMessage = (res, message) => { | |||||
res.json({ | |||||
status: Constants.ERROR_404, | |||||
message: message | |||||
}); | |||||
}; | |||||
const sendErrorCustomDataWithCode = (res, message, data, code) => { | |||||
res.json({ | |||||
status: code, | |||||
message: message, | |||||
data: data | |||||
}); | |||||
}; | |||||
const sendErrorCustomWithCode = (res, message, code) => { | |||||
res.json({ | |||||
status: code, | |||||
message: message | |||||
}) | |||||
} | |||||
module.exports = { | |||||
sendErrorMessage, | |||||
sendsuccessData, | |||||
sendSuccessMessage, | |||||
sendErrorCustomMessage, | |||||
sendErrorCustomData, | |||||
sendNotFoundMessage, | |||||
sendErrorCustomDataWithCode, | |||||
sendErrorCustomWithCode | |||||
} |
@ -0,0 +1,17 @@ | |||||
'use strict'; | |||||
const cron = require('node-cron'); | |||||
const routineFetchInvestors = () => { | |||||
cron.schedule(process.env.SCHEDULER_RULE_EXOTEL_CALL, () => { | |||||
console.log("running scheduler"); | |||||
// recordingController.callExotelRecording(); | |||||
}) | |||||
}; | |||||
module.exports = { | |||||
routineFetchInvestors, | |||||
}; | |||||
Powered by TurnKey Linux.