Last active
February 14, 2023 19:20
-
-
Save allenhark/ca92288de8c45c1848a5aeb8b3cdb456 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Create charge | |
* @returns charges | |
*/ | |
async create_charge({ request, response, auth, params }) { | |
// get current customer from auth session | |
let user = await auth.getUser() | |
//get charge creation variables | |
let { charge, customer, chargeOptions } = request.all() | |
try { | |
//create charge with loans data controller | |
let { data } = await Axios.post(`clients/${customer}/charges`, charge) | |
let save = { | |
m_id: data.resourceId, //customer ID from middleware | |
customer_id: params.id, // customer ID from core banking server | |
amount: charge.amount, // charge amount | |
m_client_id: customer, // Customer ID from loans queue server | |
currency: chargeOptions.currency.code, // Charges currency ISO https://www.iso.org/iso-4217-currency-codes.html | |
created_by: user.id, // user creating the charge | |
dueDate: Moment(charge.dueDate).format('YYYY-MM-DD') //format date to weird american style | |
} | |
//Broadcast event | |
Event.fire("new::logs", { | |
user_id: user.id, | |
category: 'customer_charges', | |
activity: `User ${user.first_name} has created a new customer charge on customer: ${params.id} with id: ${data.resourceId}` | |
}) | |
// store data to database | |
let saved = await Charge.create(save) | |
// return response object | |
return response.json({ | |
success: true, | |
message: "Charge created", | |
data: saved | |
}) | |
} catch (e) { | |
// if server error | |
let data = e.response.data | |
if (data.httpStatusCode !== 500) | |
return response.status(data.httpStatusCode).send({ | |
success: false, | |
error: { | |
code: data.httpStatusCode, | |
message: data.errors[0].defaultUserMessage | |
} | |
}) | |
else | |
throw new Error('Internal server error') | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment