paypal-integrations-intacct
Version:
Integration between paypal and intacct using hapi.
60 lines • 2.34 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const boom = require("boom");
const hapi_paypal_1 = require("hapi-paypal");
const invoicing_1 = require("./invoicing");
exports.hapiPayPal = new hapi_paypal_1.HapiPayPal();
exports.hapiPayPal.routes.get("paypal_webhooks_listen").custom = (request, reply, error, response) => __awaiter(this, void 0, void 0, function* () {
if (error) {
return reply(boom.notFound(error.message));
}
try {
yield invoicing_1.hapiPayPalIntacctInvoicing.webhookHandler(request.payload);
return reply("GOT IT!");
}
catch (err) {
request.server.log("error", `webhookEvent: ${JSON.stringify(request.payload)} | Error:${err.message}`);
return reply(boom.badRequest(err.message));
}
});
exports.hapiPayPalOptions = {
routes: ["paypal_webhooks_listen"],
sdk: {
client_id: process.env.PAYPAL_CLIENT_ID,
client_secret: process.env.PAYPAL_CLIENT_SECRET,
mode: process.env.PAYPAL_MODE,
requestOptions: {
headers: {
"PayPal-Partner-Attribution-Id": "Hapi-Middleman-Intacct",
},
},
},
webhook: {
event_types: [
{
name: "INVOICING.INVOICE.PAID",
},
{
name: "INVOICING.INVOICE.CANCELLED",
},
],
url: `https://${process.env.HOSTNAME}${process.env.PAYPAL_WEBHOOK_ROUTE}`,
},
};
exports.hapiPayPalPlugin = {
options: exports.hapiPayPalOptions,
register: exports.hapiPayPal.register,
select: ["public"],
};
exports.hapiPayPalGlueRegistration = {
plugin: exports.hapiPayPalPlugin,
};
//# sourceMappingURL=hapi-paypal.js.map