Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const functions = require("firebase-functions");
- const admin = require("firebase-admin");
- const { firestore } = require("firebase-admin");
- const Stripe = require("stripe");
- const moment = require('moment');
- const express = require('express');
- const app = express();
- const stripe = new Stripe(functions.config().stripe.testkey);
- const cors = require('cors')({origin: true});
- admin.initializeApp(functions.config().firebase);
- const SENDGRID_API_KEY = functions.config().sendgrid.key;
- const sgMail = require('@sendgrid/mail');
- sgMail.setApiKey(SENDGRID_API_KEY);
- app.all('*', function(req, res, next) {
- const allowedOrigins = ['https://www.website.com','https://www.website.com/', 'http://localhost:4200'];
- const origin = req.headers.origin;
- console.log(origin);
- if (allowedOrigins.includes(origin)) {
- console.error('allowed')
- res.setHeader('Access-Control-Allow-Origin', origin);
- }
- res.setHeader('Access-Control-Allow-Methods', 'POST, PUT, GET, OPTIONS');
- res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Authorization, Content-Type, Accept");
- if (req.method === "OPTIONS") {
- res.send('ok').status(200);
- return
- }
- next();
- });
- exports.createStripeCustomer = functions.https.onCall((data, context) => {
- console.log('in Cloud Functions > index.js > createStripeCustomer()');
- //User auth data
- const user = data.userObj;
- console.log('stripe testkey:');
- console.log(functions.config().stripe.testkey);
- console.log('user obj:');
- console.log(user);
- console.log('user.email:');
- console.log(user.email);
- // Register Stripe user
- return stripe.customers.create({
- email: user.email
- }).then((customerArg) => {
- console.log(`Returned 'customer' object: `);
- console.log(customerArg);
- console.log('event.uid: ');
- console.log(user.uid);
- console.log('Saving customerID to users firestore at path: ');
- console.log(admin.firestore().collection('Users').doc(user.uid).path);
- //Save user's UID to customer in firestore 'Customers' collection (Change to batch when time permits)
- return admin.firestore().collection('Customers').doc(customerArg.id).create({
- customerID: customerArg.id,
- userUID: user.uid,
- displayName: user.displayName,
- email: user.email,
- photoURL: user.photoURL,
- date: Date.now()
- }).then(() => {
- console.log('Finished saving users UID to firestore Customers collection.');
- setTimeout(() => {
- console.log('In setTimeout - saving customerID to user > uid in firestore');
- //Save customerID to user's firestore (Rewrite as batch)
- return admin.firestore().collection('Users').doc(user.uid).update({
- customerID: customerArg.id
- }).then(() => {
- console.log('Finished saving customerID to users firestore. Now saving users UID to Customer collection...');
- }).catch((err) => {
- console.error(err);
- });
- }, 5000);
- }).catch((err) => {
- console.error(err);
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement