From 7e8bfe982250b2a9924ebce1745eea3c3499a0fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Famibelle-Pronzola?= Date: Sat, 22 Jul 2023 12:56:26 +0400 Subject: [PATCH] Remove server.js and add 3001 to dev and start port --- package.json | 4 +- server.js | 169 --------------------------------------------------- 2 files changed, 2 insertions(+), 171 deletions(-) delete mode 100644 server.js diff --git a/package.json b/package.json index a43bee7..8982630 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "private": true, "scripts": { "lint": "xo", - "dev": "node server", + "dev": "next dev -p 3001", "build": "next build", - "start": "NODE_ENV=production node server -p 3001" + "start": "next start -p 3001" }, "dependencies": { "@emotion/cache": "^11.7.1", diff --git a/server.js b/server.js deleted file mode 100644 index 46367ed..0000000 --- a/server.js +++ /dev/null @@ -1,169 +0,0 @@ -require('dotenv').config() -const express = require('express') -const bodyParser = require('body-parser') -const next = require('next') -const compression = require('compression') -const {pick} = require('lodash') -const stripe = require('stripe')(process.env.STRIPE_SECRETE_KEY) - -const endpointSecret = process.env.STRIPE_ENDPOINT_SECRET - -const w = require('./lib/utils/w') -const createSucceededEmail = require('./lib/emails/payment-succeeded') -const {sendMail} = require('./lib/sendmail') - -const port = process.env.PORT || 3001 -const dev = process.env.NODE_ENV !== 'production' -const donProduct = process.env.STRIPE_DON_PRODUCT -const app = next({dev}) -const handle = app.getRequestHandler() - -app.prepare().then(() => { - const server = express() - server.use((req, res, next) => { - if (req.originalUrl === '/stripe/valid-payment' || req.originalUrl === '/stripe/check-payment' || req.originalUrl === '/stripe/cancel-payment') { - express.json()(req, res, next) - } else { - next() - } - }) - - if (!dev) { - server.use(compression()) - } - - server.get('/awtis', (req, res) => { - res.redirect('/awtis/paj/1') - }) - - server.get('/awtis/paj/:paj', (req, res) => { - app.render(req, res, '/awtis', { - ...req.query, - paj: req.params.paj - }) - }) - - // Stripe routes - - server.get('/stripe/dons-list', w(async (req, res) => { - const prices = await stripe.prices.list({ - active: true, - product: donProduct - }) - const {data} = prices - const filteredData = data.map(d => pick(d, ['id', 'unit_amount'])) - const sortedData = filteredData.sort((a, b) => a.unit_amount - b.unit_amount) - res.send(sortedData) - })) - - server.post('/stripe/valid-payment', w(async (req, res) => { - let customer - const {id, email} = req.body - const price = await stripe.prices.retrieve( - id - ) - if (!price) { - throw new Error('Une erreur s’est produite') - } - - const customerSearch = await stripe.customers.list({ - email - }) - - if (customerSearch.data.length > 0) { - customer = customerSearch.data.find(c => c.email === email) - } else { - customer = await stripe.customers.create({ - email - }) - } - - if (!customer) { - return res.sendStatus(400) - } - - const paymentIntent = await stripe.paymentIntents.create({ - amount: price.unit_amount, - currency: 'eur', - automatic_payment_methods: { - enabled: true - }, - customer: customer.id, - receipt_email: email, - description: 'Don fait à Organisation KA Internationale' - }) - - res.send({ - clientSecret: paymentIntent.client_secret, - paymentIntent: paymentIntent.id - }) - })) - - server.post('/stripe/check-payment', w(async (req, res) => { - const {payment_intent} = req.body - const paymentFromStripe = await stripe.paymentIntents.retrieve( - payment_intent - ) - res.send(paymentFromStripe) - })) - - server.post('/stripe/cancel-payment', w(async (req, res) => { - const {paymentIntent} = req.body - const paymentCanceled = await stripe.paymentIntents.cancel(paymentIntent, { - cancellation_reason: 'abandoned' - }) - - if (!paymentCanceled) { - res.sendStatus(404) - } - - if (paymentCanceled.status === 'canceled') { - res.sendStatus(200) - } else { - res.sendStatus(400) - } - })) - - server.post('/stripe/webhook', bodyParser.raw({type: 'application/json'}), async (req, res) => { - let event = req.body - if (endpointSecret) { - const signature = req.headers['stripe-signature'] - try { - event = stripe.webhooks.constructEvent( - req.body, - signature, - endpointSecret - ) - } catch (error) { - console.log('⚠️ Webhook signature verification failed.', error.message) - return res.sendStatus(400) - } - } - - const paymentIntent = event.data.object - - const email = createSucceededEmail(paymentIntent.amount / 100) - switch (event.type) { - case 'payment_intent.succeeded': - await sendMail(email, paymentIntent.receipt_email) - break - - default: - console.log(`Unhandled event type ${event.type}`) - } - - res.json({received: true}) - }) - - server.get('*', (req, res) => handle(req, res)) - - server.post('*', (req, res) => handle(req, res)) - - server.listen(port, error => { - if (error) { - throw error - } - }) - - console.log(`> Ready on http://localhost:${port}`) -})