Skip to content

Commit

Permalink
Logger service (#30)
Browse files Browse the repository at this point in the history
* feat: logger service

* fix: revert translations

* chore: empty line

* fix: override onsubmit to work for stored cards
  • Loading branch information
amihajlovski authored Oct 30, 2023
1 parent 893fa63 commit cfee0ff
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 0 deletions.
3 changes: 3 additions & 0 deletions adyen/components/AdyenCheckout.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ const AdyenCheckoutComponent = (props) => {
environment: adyenPaymentMethods.ADYEN_ENVIRONMENT,
clientKey: adyenPaymentMethods.ADYEN_CLIENT_KEY,
paymentMethodsResponse: adyenPaymentMethods,
onSubmit(state, element) {
paymentMethodsConfiguration.card.onSubmit(state, element)
},
paymentMethodsConfiguration: paymentMethodsConfiguration,
onAdditionalDetails(state, element) {
paymentMethodsConfiguration.card.onAdditionalDetails(state, element)
Expand Down
23 changes: 23 additions & 0 deletions adyen/controllers/logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import {APPLICATION_VERSION} from '../utils/constants.mjs'

const ADYEN_PREFIX = 'ADYEN'

class Logger {
static info(step, message) {
console.info(`${ADYEN_PREFIX}_INFO ${APPLICATION_VERSION} ${step} ${message}`)
}

static warn(step, message) {
console.warn(`${ADYEN_PREFIX}_WARN ${APPLICATION_VERSION} ${step} ${message}`)
}

static error(step, message) {
console.error(`${ADYEN_PREFIX}_ERROR ${APPLICATION_VERSION} ${step} ${message}`)
}

static debug(step, message) {
console.debug(`${ADYEN_PREFIX}_DEBUG ${APPLICATION_VERSION} ${step} ${message}`)
}
}

export default Logger
4 changes: 4 additions & 0 deletions adyen/controllers/payment-methods.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ import {BLOCKED_PAYMENT_METHODS} from '../utils/constants.mjs'
import {ShopperCustomers} from 'commerce-sdk-isomorphic'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
import AdyenCheckoutConfig from './checkout-config'
import Logger from './logger'

async function getPaymentMethods(req, res) {
Logger.info('getPaymentMethods', 'start')
const checkout = AdyenCheckoutConfig.getInstance()

try {
Expand Down Expand Up @@ -39,12 +41,14 @@ async function getPaymentMethods(req, res) {
shopperReference: req.headers.customerid
})

Logger.info('getPaymentMethods', 'success')
res.json({
...response,
ADYEN_CLIENT_KEY: process.env.ADYEN_CLIENT_KEY,
ADYEN_ENVIRONMENT: process.env.ADYEN_ENVIRONMENT
})
} catch (err) {
Logger.error('getPaymentMethods', err.message)
res.status(err.statusCode || 500).json(err.message)
}
}
Expand Down
4 changes: 4 additions & 0 deletions adyen/controllers/payments-details.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import {createCheckoutResponse} from '../utils/createCheckoutResponse.mjs'
import AdyenCheckoutConfig from './checkout-config'
import Logger from './logger'

async function sendPaymentDetails(req, res) {
Logger.info('sendPaymentDetails', 'start')
const checkout = AdyenCheckoutConfig.getInstance()
try {
const {data} = req.body
const response = await checkout.instance.paymentsDetails(data)
Logger.info('sendPaymentDetails', `resultCode ${response.resultCode}`)
res.json(createCheckoutResponse(response))
} catch (err) {
Logger.error('sendPaymentDetails', err.message)
res.status(err.statusCode || 500).json(err.message)
}
}
Expand Down
6 changes: 6 additions & 0 deletions adyen/controllers/payments.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {createCheckoutResponse} from '../utils/createCheckoutResponse.mjs'
import {ShopperBaskets, ShopperOrders} from 'commerce-sdk-isomorphic'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
import AdyenCheckoutConfig from './checkout-config'
import Logger from './logger'

const errorMessages = {
AMOUNT_NOT_CORRECT: 'amount not correct',
Expand All @@ -27,6 +28,7 @@ const validateRequestParams = (req) => {
}

async function sendPayments(req, res) {
Logger.info('sendPayments', 'start')
if (!validateRequestParams(req)) {
throw new Error(errorMessages.INVALID_PARAMS)
}
Expand All @@ -47,6 +49,7 @@ async function sendPayments(req, res) {
})

if (!basket?.paymentInstruments || !basket?.paymentInstruments?.length) {
Logger.info('sendPayments', 'addPaymentInstrumentToBasket')
await shopperBaskets.addPaymentInstrumentToBasket({
body: {
amount: basket.orderTotal,
Expand Down Expand Up @@ -86,6 +89,7 @@ async function sendPayments(req, res) {
basketId: req.headers.basketid
}
})
Logger.info('sendPayments', `orderCreated ${order.orderNo}`)

if (order?.customerInfo?.customerId !== req.headers.customerid) {
throw new Error(errorMessages.INVALID_ORDER)
Expand Down Expand Up @@ -126,6 +130,7 @@ async function sendPayments(req, res) {
}

const response = await checkout.instance.payments(paymentRequest)
Logger.info('sendPayments', `resultCode ${response.resultCode}`)

// await ordersApi.updateOrderPaymentTransaction({
// body: {
Expand All @@ -139,6 +144,7 @@ async function sendPayments(req, res) {

res.json(createCheckoutResponse(response))
} catch (err) {
Logger.error('sendPayments', err.message)
res.status(err.statusCode || 500).json(err.message)
}
}
Expand Down
5 changes: 5 additions & 0 deletions adyen/controllers/webhook.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {hmacValidator} from '@adyen/api-library'
import Logger from './logger'

const messages = {
AUTH_ERROR: 'Access Denied!',
Expand Down Expand Up @@ -42,6 +43,7 @@ function authenticate(req, res, next) {
throw new Error(messages.AUTH_ERROR)
}
} catch (err) {
Logger.error('authenticate', err.message)
return next(err)
}
}
Expand All @@ -59,15 +61,18 @@ function validateHmac(req, res, next) {
throw new Error(messages.AUTH_ERROR)
}
} catch (err) {
Logger.error('validateHmac', err.message)
return next(err)
}
}

function webhookSuccess(res) {
Logger.info('webhookSuccess', res.toString())
return res.status(200).json(messages.AUTH_SUCCESS)
}

const errorHandler = (err, req, res, next) => {
Logger.error('errorHandler', err.message)
res.status(err.statusCode || 500).json(err.message || messages.DEFAULT_ERROR)
}

Expand Down

0 comments on commit cfee0ff

Please sign in to comment.