'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')(process.env.STRIPE_SECRET_KEY); var cards = { createCard: async function (req, res, next) { try { logger.info(req.body); var data = { "request_uid": req.body.request_uid, "request_id": req.body.request_id, }; let Qstring = " SELECT r.*,m.firstname,m.lastname,m.email FROM members_card_request r " + " LEFT JOIN members m ON m.id=r.member_id " + " WHERE r.uid::text = '" + data.request_uid +"'"; logger.info(Qstring); db.query(Qstring, async function (err, result) { try { if (err) throw err; // , , const req_data = { "name": result.rows[0].firstname.toString() + ' ' + result.rows[0].firstname.toString(), "firstname": result.rows[0].firstname, "lastname": result.rows[0].lastname, "phone_number": result.rows[0].phone_number, "email": result.rows[0].email, "address": result.rows[0].address, "city": result.rows[0].city, "state": result.rows[0].state, "postal_code": result.rows[0].postal_code, "country": result.rows[0].country, "dob_day": result.rows[0].dob_day, "dob_month": result.rows[0].dob_month, "dob_year": result.rows[0].dob_year, }; logger.info("READY FOR STRIPE CALL ",req_data); logger.info("READY FOR STRIPE CALL ************************************************************************ AFTER "); const ReqParam = { name: req_data.name, email: req_data.email, phone_number: req_data.phone_number, status: 'active', type: 'individual', individual: { first_name: req_data.firstname, last_name: req_data.lastname, dob: { day: req_data.dob_day, month: req_data.dob_month, year: req_data.dob_year }, }, billing: { address: { line1: req_data.address, city: req_data.city, state: req_data.state, postal_code: req_data.postal_code, country: req_data.country, }, }, }; logger.info("REQ=>", ReqParam); stripe.issuing.cardholders.create(ReqParam).then((cardholder) => { console.log(cardholder); Qstring = " UPDATE members_card_request SET card_issue_id='"+cardholder.id+"' , status = 10, updated = now() " + " WHERE uid::text = '" + data.request_uid +"'"; db.query(Qstring, async function (err, result) { console.log(cardholder); let resultItem = { "result": cardholder, "total_record": 0 } next(null, resultItem); // pass control to the next handler }); }).catch((error) => { console.error(error); let resultItem = { "result": error, "total_record": 0 } next(null, resultItem); }); } catch (e) { next(e.message, null); // pass control to the next handler } }); } 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;