| @ -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.