Skip to content

Commit

Permalink
feat: html encode also all subscription events
Browse files Browse the repository at this point in the history
  • Loading branch information
stfsy committed Sep 27, 2022
1 parent b057a17 commit 95353ba
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
3 changes: 3 additions & 0 deletions lib/html-encoder.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ const encodeHtml = require('html-entities').encode
const encode = (object) => {
const result = {}

if (typeof object === 'string') {
return encodeHtml(object)
}
Object.entries(object).forEach(([key, value]) => {
if (typeof value === 'object') {
result[key] = encode(value)
Expand Down
9 changes: 6 additions & 3 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,9 @@ class Subscriptions {
vendor_user_id: subscription.user_id,
}

const encoded = htmlEncode(statusModel)
const subscriptionModel = {
status: this._storage._arrayUnion(statusModel)
status: this._storage._arrayUnion(encoded)
}

const flatModel = flattenObject(subscriptionModel, 'subscription')
Expand Down Expand Up @@ -227,8 +228,9 @@ class Subscriptions {
vendor_user_id: subscription.user_id,
}

const encoded = htmlEncode(statusModel)
const subscriptionModel = {
status: this._storage._arrayUnion(statusModel),
status: this._storage._arrayUnion(encoded)
}

const flatModel = flattenObject(subscriptionModel, 'subscription')
Expand Down Expand Up @@ -262,8 +264,9 @@ class Subscriptions {
vendor_user_id: subscription.user_id,
}

const encoded = htmlEncode(statusModel)
const subscriptionModel = {
status: this._storage._arrayUnion(statusModel),
status: this._storage._arrayUnion(encoded)
}

const flatModel = flattenObject(subscriptionModel, 'subscription')
Expand Down
12 changes: 6 additions & 6 deletions test/spec/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const paymentSucceded = require('../fixtures/payment-succeeded')
const paymentFailed = require('../fixtures/payment-failed')
const paymentRefunded = require('../fixtures/payment-refunded')

const { Subscriptions } = require('../../lib/index')
const { Subscriptions, htmlEncoder } = require('../../lib/index')
const paddleIntegration = new Subscriptions('api_client')
const storage = require('../../lib/firestore/nested-firestore-resource')({ documentPath: 'api_client', resourceName: 'api_clients' })

Expand Down Expand Up @@ -55,10 +55,10 @@ describe('PaddleIntegration', () => {
expect(status.unit_price).to.equal(createPayload.unit_price)
expect(status.quantity).to.equal(createPayload.quantity)
expect(status.event_time).to.equal(createPayload.event_time)
expect(status.cancel_url).to.equal(createPayload.cancel_url)
expect(status.cancel_url).to.equal(htmlEncoder(createPayload.cancel_url))
expect(status.checkout_id).to.equal(createPayload.checkout_id)
expect(status.source).to.equal(createPayload.source)
expect(status.update_url).to.equal(createPayload.update_url)
expect(status.update_url).to.equal(htmlEncoder(createPayload.update_url))
expect(status.subscription_id).to.equal(createPayload.subscription_id)
expect(status.subscription_plan_id).to.equal(createPayload.subscription_plan_id)
expect(status.vendor_user_id).to.equal(createPayload.user_id)
Expand Down Expand Up @@ -111,10 +111,10 @@ describe('PaddleIntegration', () => {
expect(status1.unit_price).to.equal(createPayload.unit_price)
expect(status1.quantity).to.equal(createPayload.quantity)
expect(status1.event_time).to.equal(createPayload.event_time)
expect(status1.cancel_url).to.equal(createPayload.cancel_url)
expect(status1.cancel_url).to.equal(htmlEncoder(createPayload.cancel_url))
expect(status1.checkout_id).to.equal(createPayload.checkout_id)
expect(status1.source).to.equal(createPayload.source)
expect(status1.update_url).to.equal(createPayload.update_url)
expect(status1.update_url).to.equal(htmlEncoder(createPayload.update_url))
expect(status1.subscription_id).to.equal(createPayload.subscription_id)
expect(status1.subscription_plan_id).to.equal(createPayload.subscription_plan_id)
expect(status1.vendor_user_id).to.equal(createPayload.user_id)
Expand Down Expand Up @@ -149,7 +149,7 @@ describe('PaddleIntegration', () => {
expect(status3.unit_price).to.equal(updatePayload.new_unit_price)
expect(status3.quantity).to.equal(updatePayload.new_quantity)
expect(status3.event_time).to.equal(updatePayload.event_time)
expect(status3.update_url).to.equal(updatePayload.update_url)
expect(status3.update_url).to.equal(htmlEncoder(updatePayload.update_url))
expect(status3.subscription_id).to.equal(updatePayload.subscription_id)
expect(status3.subscription_plan_id).to.equal(updatePayload.subscription_plan_id)
expect(status3.vendor_user_id).to.equal(updatePayload.user_id)
Expand Down

0 comments on commit 95353ba

Please sign in to comment.