Skip to content
This repository was archived by the owner on Apr 8, 2024. It is now read-only.

Commit 953bc16

Browse files
committed
feat: html encode also all subscription events
1 parent be28b9a commit 953bc16

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

lib/html-encoder.js

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ const encodeHtml = require('html-entities').encode
55
const encode = (object) => {
66
const result = {}
77

8+
if (typeof object === 'string') {
9+
return encodeHtml(object)
10+
}
811
Object.entries(object).forEach(([key, value]) => {
912
if (typeof value === 'object') {
1013
result[key] = encode(value)

lib/index.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,9 @@ class Subscriptions {
176176
vendor_user_id: subscription.user_id,
177177
}
178178

179+
const encoded = htmlEncode(statusModel)
179180
const subscriptionModel = {
180-
status: this._storage._arrayUnion(statusModel)
181+
status: this._storage._arrayUnion(encoded)
181182
}
182183

183184
const flatModel = flattenObject(subscriptionModel, 'subscription')
@@ -227,8 +228,9 @@ class Subscriptions {
227228
vendor_user_id: subscription.user_id,
228229
}
229230

231+
const encoded = htmlEncode(statusModel)
230232
const subscriptionModel = {
231-
status: this._storage._arrayUnion(statusModel),
233+
status: this._storage._arrayUnion(encoded)
232234
}
233235

234236
const flatModel = flattenObject(subscriptionModel, 'subscription')
@@ -262,8 +264,9 @@ class Subscriptions {
262264
vendor_user_id: subscription.user_id,
263265
}
264266

267+
const encoded = htmlEncode(statusModel)
265268
const subscriptionModel = {
266-
status: this._storage._arrayUnion(statusModel),
269+
status: this._storage._arrayUnion(encoded)
267270
}
268271

269272
const flatModel = flattenObject(subscriptionModel, 'subscription')

test/spec/index.spec.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const paymentSucceded = require('../fixtures/payment-succeeded')
99
const paymentFailed = require('../fixtures/payment-failed')
1010
const paymentRefunded = require('../fixtures/payment-refunded')
1111

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

@@ -55,10 +55,10 @@ describe('PaddleIntegration', () => {
5555
expect(status.unit_price).to.equal(createPayload.unit_price)
5656
expect(status.quantity).to.equal(createPayload.quantity)
5757
expect(status.event_time).to.equal(createPayload.event_time)
58-
expect(status.cancel_url).to.equal(createPayload.cancel_url)
58+
expect(status.cancel_url).to.equal(htmlEncoder(createPayload.cancel_url))
5959
expect(status.checkout_id).to.equal(createPayload.checkout_id)
6060
expect(status.source).to.equal(createPayload.source)
61-
expect(status.update_url).to.equal(createPayload.update_url)
61+
expect(status.update_url).to.equal(htmlEncoder(createPayload.update_url))
6262
expect(status.subscription_id).to.equal(createPayload.subscription_id)
6363
expect(status.subscription_plan_id).to.equal(createPayload.subscription_plan_id)
6464
expect(status.vendor_user_id).to.equal(createPayload.user_id)
@@ -111,10 +111,10 @@ describe('PaddleIntegration', () => {
111111
expect(status1.unit_price).to.equal(createPayload.unit_price)
112112
expect(status1.quantity).to.equal(createPayload.quantity)
113113
expect(status1.event_time).to.equal(createPayload.event_time)
114-
expect(status1.cancel_url).to.equal(createPayload.cancel_url)
114+
expect(status1.cancel_url).to.equal(htmlEncoder(createPayload.cancel_url))
115115
expect(status1.checkout_id).to.equal(createPayload.checkout_id)
116116
expect(status1.source).to.equal(createPayload.source)
117-
expect(status1.update_url).to.equal(createPayload.update_url)
117+
expect(status1.update_url).to.equal(htmlEncoder(createPayload.update_url))
118118
expect(status1.subscription_id).to.equal(createPayload.subscription_id)
119119
expect(status1.subscription_plan_id).to.equal(createPayload.subscription_plan_id)
120120
expect(status1.vendor_user_id).to.equal(createPayload.user_id)
@@ -149,7 +149,7 @@ describe('PaddleIntegration', () => {
149149
expect(status3.unit_price).to.equal(updatePayload.new_unit_price)
150150
expect(status3.quantity).to.equal(updatePayload.new_quantity)
151151
expect(status3.event_time).to.equal(updatePayload.event_time)
152-
expect(status3.update_url).to.equal(updatePayload.update_url)
152+
expect(status3.update_url).to.equal(htmlEncoder(updatePayload.update_url))
153153
expect(status3.subscription_id).to.equal(updatePayload.subscription_id)
154154
expect(status3.subscription_plan_id).to.equal(updatePayload.subscription_plan_id)
155155
expect(status3.vendor_user_id).to.equal(updatePayload.user_id)

0 commit comments

Comments
 (0)