New Stripe Mico
This commit is contained in:
@@ -1 +1,5 @@
|
||||
PORT = 9088
|
||||
WRENCHJOB_PORT=3000
|
||||
WRENCHJOB_POSTGRE_URL='postgresql://wrenchboard:wrenchboard@10.20.30.60:5432/wrenchboard'
|
||||
WRENCHJOB_KAFKA_BROKER01='10.10.10.120:9092'
|
||||
STRIPE_PUBLISHED_KEY='pk_test_51JwvOXCMmfol61TL2IlTEWytKObMLrZTAxJRHdepqWggXm4ENMyrrnR5dxfd5cPeflvCUG1HsErQI43BjOAmUEh500N0FWOZoE'
|
||||
STRIPE_SECRET_KEY='sk_test_51JwvOXCMmfol61TLadZlDf2rxq6Q1IC50JITRixcbyig8T2zdqpO8HY2NEcwNHacRQKQpTf6JGh7haqUVEH0rccA00eFht1ewi'
|
||||
+5
-115
@@ -1,123 +1,13 @@
|
||||
#FROM node:erbium
|
||||
|
||||
FROM alpine:3.18
|
||||
|
||||
ENV NODE_VERSION 22.1.0
|
||||
|
||||
RUN addgroup -g 1000 node \
|
||||
&& adduser -u 1000 -G node -s /bin/sh -D node \
|
||||
&& apk add --no-cache \
|
||||
libstdc++ \
|
||||
&& apk add --no-cache --virtual .build-deps \
|
||||
curl \
|
||||
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
|
||||
&& case "${alpineArch##*-}" in \
|
||||
x86_64) ARCH='x64' CHECKSUM="087edf483f8bf94acfd41bdada76a296d0673f7739ebfe1179971c90f34d3a95" OPENSSL_ARCH=linux-x86_64;; \
|
||||
x86) OPENSSL_ARCH=linux-elf;; \
|
||||
aarch64) OPENSSL_ARCH=linux-aarch64;; \
|
||||
arm*) OPENSSL_ARCH=linux-armv4;; \
|
||||
ppc64le) OPENSSL_ARCH=linux-ppc64le;; \
|
||||
s390x) OPENSSL_ARCH=linux-s390x;; \
|
||||
*) ;; \
|
||||
esac \
|
||||
&& if [ -n "${CHECKSUM}" ]; then \
|
||||
set -eu; \
|
||||
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
|
||||
echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
|
||||
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
|
||||
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
|
||||
else \
|
||||
echo "Building from source" \
|
||||
# backup build
|
||||
&& apk add --no-cache --virtual .build-deps-full \
|
||||
binutils-gold \
|
||||
g++ \
|
||||
gcc \
|
||||
gnupg \
|
||||
libgcc \
|
||||
linux-headers \
|
||||
make \
|
||||
python3 \
|
||||
# use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
|
||||
&& export GNUPGHOME="$(mktemp -d)" \
|
||||
# gpg keys listed at https://github.com/nodejs/node#release-keys
|
||||
&& for key in \
|
||||
4ED778F539E3634C779C87C6D7062848A1AB005C \
|
||||
141F07595B7B3FFE74309A937405533BE57C7D57 \
|
||||
74F12602B6F1C4E913FAA37AD3A89613643B6201 \
|
||||
DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
|
||||
61FC681DFB92A079F1685E77973F295594EC4689 \
|
||||
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
|
||||
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
|
||||
890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
|
||||
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
|
||||
108F52B48DB57BB0CC439B2997B01419BD92F80A \
|
||||
A363A499291CBBC940DD62E41F10027AF002F8B0 \
|
||||
CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
|
||||
; do \
|
||||
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
|
||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
|
||||
done \
|
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
|
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
||||
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
|
||||
&& gpgconf --kill all \
|
||||
&& rm -rf "$GNUPGHOME" \
|
||||
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
||||
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
|
||||
&& cd "node-v$NODE_VERSION" \
|
||||
&& ./configure \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
|
||||
&& make install \
|
||||
&& apk del .build-deps-full \
|
||||
&& cd .. \
|
||||
&& rm -Rf "node-v$NODE_VERSION" \
|
||||
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
|
||||
fi \
|
||||
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
|
||||
# Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451
|
||||
&& find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; \
|
||||
&& apk del .build-deps \
|
||||
# smoke tests
|
||||
&& node --version \
|
||||
&& npm --version
|
||||
|
||||
ENV YARN_VERSION 1.22.19
|
||||
|
||||
RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
|
||||
# use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
|
||||
&& export GNUPGHOME="$(mktemp -d)" \
|
||||
&& for key in \
|
||||
6A010C5166006599AA17F08146C2130DFD2497F5 \
|
||||
; do \
|
||||
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
|
||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
|
||||
done \
|
||||
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
|
||||
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
|
||||
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
|
||||
&& gpgconf --kill all \
|
||||
&& rm -rf "$GNUPGHOME" \
|
||||
&& mkdir -p /opt \
|
||||
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
|
||||
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
|
||||
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
|
||||
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
|
||||
&& apk del .build-deps-yarn \
|
||||
# smoke test
|
||||
&& yarn --version \
|
||||
&& rm -rf /tmp/*
|
||||
|
||||
|
||||
FROM node:erbium
|
||||
|
||||
# Create app directory
|
||||
RUN mkdir -p /usr/src
|
||||
WORKDIR /usr/src
|
||||
RUN mkdir -p /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Install app dependencies
|
||||
COPY package.json /usr/src/
|
||||
COPY package.json /usr/src/app/
|
||||
RUN npm install
|
||||
|
||||
COPY . /usr/src
|
||||
COPY . /usr/src/app
|
||||
|
||||
CMD [ "npm", "start" ]
|
||||
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
//equire('../../package.json')
|
||||
const cards = require('../../service/cards.js');
|
||||
|
||||
|
||||
//const logger = require('../../app/logger');
|
||||
|
||||
const cardsControllers = {
|
||||
createCard: function (req, res) {
|
||||
cards.createCard(req, res, function (err, result) {
|
||||
res.status(200).json({
|
||||
'status': 'OK',
|
||||
'internal_return': 0,
|
||||
'result_list': result.result,
|
||||
'total_record': result.total_record
|
||||
})
|
||||
}).then(r =>{
|
||||
console.log(r);
|
||||
});
|
||||
},
|
||||
|
||||
activateCard: function (req, res) {
|
||||
cards.activateCard(req, res, function (err, dist) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
// res.json(dist);
|
||||
res.status(200).json({
|
||||
'status': 'OK',
|
||||
'internal_return': 0,
|
||||
'result_list': dist.result,
|
||||
'total_record': dist.total_record
|
||||
})
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = cardsControllers;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// import express from "express"
|
||||
// import { activateCard,createCard } from "../controller/cardsController.js"
|
||||
//
|
||||
// const card_route = express.Router();
|
||||
//
|
||||
//
|
||||
// export default card_route;
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
const controller = require('../controller/cardsController.js');
|
||||
|
||||
module.exports = function(app) {
|
||||
app.route('/create')
|
||||
.get(controller.createCard);
|
||||
app.route('/activate')
|
||||
.get(controller.activateCard);
|
||||
app.route('/eventSendMoney')
|
||||
.post(controller.activateCard);
|
||||
|
||||
};
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
const cardsControllers = require('../controller/cardsController.js');
|
||||
|
||||
module.exports = function(app) {
|
||||
app.route('/create')
|
||||
.get(cardsControllers.createCard);
|
||||
app.route('/activate')
|
||||
.get(cardsControllers.activateCard);
|
||||
// app.route('/eventSendMoney')
|
||||
// .post(controller.activateCard);
|
||||
|
||||
};
|
||||
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* @file
|
||||
* Configures the database connection
|
||||
*/
|
||||
|
||||
const { Pool, Client } = require('pg');
|
||||
const url = require('url');
|
||||
const logger = require('./logger');
|
||||
//const connectionString = 'postgresql://wrenchboard:wrenchboard@10.10.10.23:5432/wrenchboard';
|
||||
const connectionString = process.env.POSTGRE_URL.replace(/'/g, '');
|
||||
const params = url.parse(connectionString);
|
||||
const auth = params.auth.split(':');
|
||||
const config = {
|
||||
user: auth[0],
|
||||
password: auth[1],
|
||||
host: params.hostname,
|
||||
port: params.port,
|
||||
database: params.pathname.split('/')[1],
|
||||
ssl: false
|
||||
};
|
||||
|
||||
const postgres = new Pool(config);
|
||||
|
||||
postgres.on('connect', client => {
|
||||
logger.info('Connected to Database');
|
||||
});
|
||||
|
||||
postgres.on('acquire', client => {
|
||||
logger.info('Client is checked out from the DB connection pool');
|
||||
});
|
||||
|
||||
postgres.on('remove', client => {
|
||||
logger.info('Client is closed & removed from the DB connection pool');
|
||||
});
|
||||
|
||||
postgres.on('error', (err, client) => {
|
||||
logger.error(err);
|
||||
});
|
||||
|
||||
// Connect to PostgreSQL
|
||||
postgres.connect((err, client, release) => {
|
||||
logger.info(connectionString);
|
||||
if (err) {
|
||||
logger.error('Error acquiring client', err.stack);
|
||||
return null;
|
||||
}
|
||||
client.query('SELECT NOW()', (err, result) => {
|
||||
release();
|
||||
if (err) {
|
||||
logger.error('Error executing query', err.stack);
|
||||
return nul;
|
||||
}
|
||||
logger.info(result.rows);
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = postgres;
|
||||
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @file
|
||||
* Set up the app
|
||||
*/
|
||||
var _ = require('underscore');
|
||||
var db = require('./db');
|
||||
|
||||
module.exports = function () {
|
||||
db();
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
// import { Kafka } from "kafkajs";
|
||||
const dotenv = require('dotenv');
|
||||
const env = dotenv.config();
|
||||
//console.log("ENVVVVV ", env);
|
||||
|
||||
const {Kafka} = require('kafkajs');
|
||||
const kafkaBroker1 = process.env.WRENCHJOB_KAFKA_BROKER01;
|
||||
|
||||
console.log("kafkaBroker1", kafkaBroker1);
|
||||
|
||||
const kafka = new Kafka({
|
||||
clientId: "wallet-kafka",
|
||||
brokers: [kafkaBroker1],
|
||||
});
|
||||
class KafkaConfig {
|
||||
|
||||
constructor() {
|
||||
console.log("kafkaBroker1 ******** ", kafkaBroker1);
|
||||
this.producer = kafka.producer();
|
||||
this.consumer = kafka.consumer({ groupId: "test-group" });
|
||||
}
|
||||
|
||||
async produce(topic, messages) {
|
||||
try {
|
||||
console.log("kafkaBroker1 ######### ", kafkaBroker1);
|
||||
await this.producer.connect();
|
||||
await this.producer.send({
|
||||
topic: topic,
|
||||
messages: messages,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
await this.producer.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
async consume(topic, callback) {
|
||||
try {
|
||||
await this.consumer.connect();
|
||||
await this.consumer.subscribe({ topic: topic, fromBeginning: true });
|
||||
await this.consumer.run({
|
||||
eachMessage: async ({ topic, partition, message }) => {
|
||||
const value = message.value.toString();
|
||||
callback(value);
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = KafkaConfig;
|
||||
//export default KafkaConfig;
|
||||
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* @file
|
||||
* Defines logger for the microservice
|
||||
*/
|
||||
|
||||
var winston = require('winston');
|
||||
var Papertrail = require('winston-papertrail').Papertrail;
|
||||
var serviceIdentifier = require('../package.json').name;
|
||||
|
||||
var host = process.env.LOG_SERVICE_HOST;
|
||||
var port = process.env.LOG_SERVICE_PORT;
|
||||
|
||||
/**
|
||||
* Class to provide logging facilities for the microservice
|
||||
* @constructor
|
||||
*/
|
||||
|
||||
var Logger = function () {
|
||||
|
||||
// Try to route logs to third party service
|
||||
if (host && port) {
|
||||
// Define our transport
|
||||
var transport = new Papertrail({
|
||||
levels: {
|
||||
debug: 0,
|
||||
info: 1,
|
||||
error: 3
|
||||
},
|
||||
colors: {
|
||||
debug: 'blue',
|
||||
info: 'green',
|
||||
error: 'red'
|
||||
},
|
||||
host,
|
||||
port,
|
||||
json: true,
|
||||
colorize: true,
|
||||
logFormat: (level, message) => {
|
||||
return `[${serviceIdentifier}] ${level} : ${message}`;
|
||||
}
|
||||
});
|
||||
|
||||
// Handle exceptions
|
||||
transport.exceptionsLevel = 'error';
|
||||
winston.handleExceptions(transport);
|
||||
}
|
||||
|
||||
this.info = winston.info;
|
||||
this.error = winston.error;
|
||||
this.debug = winston.debug;
|
||||
};
|
||||
|
||||
module.exports = new Logger();
|
||||
|
||||
|
||||
/**
|
||||
* @typedef {Object} Logger
|
||||
* @property {function} info - Log in level `info`
|
||||
* @property {function} error - Log in level `error`
|
||||
* @property {function} debug - Log in level `debug`
|
||||
*/
|
||||
@@ -1,51 +0,0 @@
|
||||
import User from "../model/cardModel.js";
|
||||
// Set your secret key. Remember to switch to your live secret key in production.
|
||||
// See your keys here: https://dashboard.stripe.com/apikeys
|
||||
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
|
||||
|
||||
|
||||
export const createCard = async (req,res)=>{
|
||||
try {
|
||||
const userData = new User(req.body);
|
||||
const { email } = userData;
|
||||
|
||||
|
||||
const cardholder = await stripe.issuing.cardholders.create({
|
||||
name: 'Jenny Rosen',
|
||||
email: 'jenny.rosen@example.com',
|
||||
phone_number: '+18008675309',
|
||||
status: 'active',
|
||||
type: 'individual',
|
||||
individual: {
|
||||
first_name: 'Jenny',
|
||||
last_name: 'Rosen',
|
||||
dob: {day: 1, month: 11, year: 1981},
|
||||
},
|
||||
billing: {
|
||||
address: {
|
||||
line1: '123 Main Street',
|
||||
city: 'San Francisco',
|
||||
state: 'CA',
|
||||
postal_code: '94111',
|
||||
country: 'US',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
res.status(200).json(saveUser);
|
||||
|
||||
} catch (error) {
|
||||
res.status(500).json({error: `Internal Server error 002 ${error} ` });
|
||||
}
|
||||
}
|
||||
|
||||
export const activateCard = async (req, res)=>{
|
||||
try{
|
||||
|
||||
return res.json("Hello Worlds");
|
||||
}catch(error){
|
||||
res.status(500).json({error: "Internal Server error"});
|
||||
}
|
||||
}
|
||||
//C:\WORKS\PROJECTS\WRB\WrenchCore\WrenchStripeNode\controller\cardsController.js
|
||||
+6
-6
@@ -6,12 +6,12 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./:/usr/src
|
||||
- '/usr/src/node_modules'
|
||||
- ./:/app
|
||||
- '/app/node_modules'
|
||||
ports:
|
||||
- 6332:6320
|
||||
# environment:
|
||||
# - PORT=${WRENCHJOB_PORT}
|
||||
# - POSTGRE_URL=${WRENCHJOB_POSTGRE_URL}
|
||||
- 3038:3000
|
||||
environment:
|
||||
- PORT=${WRENCHJOB_PORT}
|
||||
- POSTGRE_URL=${WRENCHJOB_POSTGRE_URL}
|
||||
volumes:
|
||||
src:
|
||||
@@ -1,43 +0,0 @@
|
||||
import express from "express"
|
||||
import mongoose from "mongoose"
|
||||
import bodyParser from "body-parser"
|
||||
import dotenv from "dotenv"
|
||||
import card_route from "./routes/cardRoute.js"
|
||||
import nodemailer from "nodemailer";
|
||||
|
||||
const app = express();
|
||||
|
||||
// Enable parsing of URL-encoded data on all routes:
|
||||
app.use(express.urlencoded({
|
||||
extended: false, // Whether to use algorithm that can handle non-flat data strutures
|
||||
limit: 10000, // Limit payload size in bytes
|
||||
parameterLimit: 2, // Limit number of form items on payload
|
||||
}));
|
||||
|
||||
//app.use(bodyParser.json());
|
||||
dotenv.config();
|
||||
const PORT = process.env.PORT || 5000;
|
||||
const MONGOURL = process.env.MONGO_URL;
|
||||
|
||||
|
||||
|
||||
mongoose.connect(MONGOURL).then(()=>{
|
||||
console.log("Data connected");
|
||||
app.listen(PORT,()=>{
|
||||
console.log(`Server on ${PORT}`);
|
||||
})
|
||||
}).catch((error)=>{
|
||||
console.log(error);
|
||||
});
|
||||
app.use("/api/cards", card_route);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+27
-11
@@ -2,24 +2,40 @@
|
||||
"name": "Wrench-Stripe",
|
||||
"version": "1.0.0",
|
||||
"description": "WrenchBoard Stripe",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"start": "node index.js",
|
||||
"start:dev": "nodemon index.js"
|
||||
"generate-docs": "jsdoc ./api/*.js ./api/**/*.js ./app/*.js ./app/**/*.js ./service/*.js ./service/**/*.js -d docs",
|
||||
"lint": "eslint ./ --ext .js",
|
||||
"start": "node server.js",
|
||||
"start:dev": "nodemon server.js",
|
||||
"test": "npm run lint"
|
||||
},
|
||||
"author": "ChiefSoft Works",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@stripe/stripe-js": "^4.0.0",
|
||||
"axios": "^1.6.8",
|
||||
"body-parser": "^1.20.2",
|
||||
"axios": "^0.24.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.4.5",
|
||||
"express": "^4.19.2",
|
||||
"mongoose": "^8.3.3",
|
||||
"nodemailer": "^6.9.13"
|
||||
"cookie-parser": "^1.4.6",
|
||||
"express": "^4.17.1",
|
||||
"kafkajs": "^2.2.4",
|
||||
"openapi-types": "^10.0.0",
|
||||
"pg": "8.7.1",
|
||||
"pg-pool": "^3.5.1",
|
||||
"request": "^2.88.2",
|
||||
"swagger-autogen": "^2.17.2",
|
||||
"swagger-jsdoc": "^6.1.0",
|
||||
"swagger-ui-express": "^4.3.0",
|
||||
"underscore": "^1.8.3",
|
||||
"url": "^0.11.0",
|
||||
"winston": "^2.3.1",
|
||||
"winston-papertrail": "^1.0.4",
|
||||
"stripe": "^17.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^3.1.0"
|
||||
"eslint": "^1.10.3",
|
||||
"jsdoc": "^3.4.3",
|
||||
"nodemon": "^1.11.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
import express from "express"
|
||||
import { activateCard,createCard } from "../controller/cardsController.js"
|
||||
|
||||
const card_route = express.Router();
|
||||
route.post("/create",createCard);
|
||||
route.get("/activate", activateCard)
|
||||
|
||||
export default card_route;
|
||||
@@ -0,0 +1,42 @@
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const bodyParser = require('body-parser');
|
||||
const logger = require('./app/logger');
|
||||
const port = process.env.PORT || 3000;
|
||||
const KafkaConfig = require("./app/kconfig");
|
||||
|
||||
const app = express();
|
||||
|
||||
// create application/json parser
|
||||
var jsonParser = bodyParser.json(); // express.json();
|
||||
|
||||
// create application/x-www-form-urlencoded parser
|
||||
var urlencodedParser = bodyParser.urlencoded({ extended: false }); // express.bodyParser({extended: true});
|
||||
|
||||
app.use(urlencodedParser);
|
||||
app.use(jsonParser);
|
||||
app.use(cors());
|
||||
app.use(cookieParser());
|
||||
|
||||
// parse application/vnd.api+json as json
|
||||
app.use(bodyParser.json({ type: 'application/vnd.api+json' }))
|
||||
|
||||
const routes = require('./api/routes/route');
|
||||
routes(app);
|
||||
|
||||
app.listen(port, "0.0.0.0", function() {
|
||||
logger.info('***** Server started on port: ' + port + ' *****');
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
'use strict';
|
||||
|
||||
const request = require('request');
|
||||
const db = require('../app/db')
|
||||
const logger = require('../app/logger');
|
||||
//const User = require("../app/model/cardModel.js");
|
||||
|
||||
const stripe = require('stripe')('sk_test_51JwvOXCMmfol61TLadZlDf2rxq6Q1IC50JITRixcbyig8T2zdqpO8HY2NEcwNHacRQKQpTf6JGh7haqUVEH0rccA00eFht1ewi');
|
||||
|
||||
var cards = {
|
||||
createCard: async function (req, res, next) {
|
||||
|
||||
try {
|
||||
const userData = new User(req.body);
|
||||
const {email} = userData;
|
||||
|
||||
|
||||
const cardholder = await stripe.issuing.cardholders.create({
|
||||
name: 'Jenny Rosen',
|
||||
email: 'jenny.rosen@example.com',
|
||||
phone_number: '+18008675309',
|
||||
status: 'active',
|
||||
type: 'individual',
|
||||
individual: {
|
||||
first_name: 'Jenny',
|
||||
last_name: 'Rosen',
|
||||
dob: {day: 1, month: 11, year: 1981},
|
||||
},
|
||||
billing: {
|
||||
address: {
|
||||
line1: '123 Main Street',
|
||||
city: 'San Francisco',
|
||||
state: 'CA',
|
||||
postal_code: '94111',
|
||||
country: 'US',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
// res.status(200).json(saveUser);
|
||||
|
||||
} catch (error) {
|
||||
await res.status(500).json({error: `Internal Server error 002 ${error} `});
|
||||
}
|
||||
|
||||
|
||||
// let resultItem ={
|
||||
// "result": bannerArray,
|
||||
// "total_record": 4
|
||||
// }
|
||||
// next(null, resultItem ); // pass control to the next handler
|
||||
|
||||
},
|
||||
activateCard: function (req, res, next) {
|
||||
|
||||
|
||||
let resultItem ={
|
||||
"result": [],
|
||||
"total_record": 5
|
||||
}
|
||||
next(null, resultItem ); // pass control to the next handler
|
||||
|
||||
},
|
||||
};
|
||||
module.exports = cards;
|
||||
Reference in New Issue
Block a user