Wired trial days to tiers API

refs https://github.com/TryGhost/Team/issues/1724

- Added `trial_days` to api serializers
This commit is contained in:
Rishabh 2022-08-05 15:26:20 +05:30 committed by Rishabh Garg
parent a0dca653e7
commit 2d12d9aa89
4 changed files with 15 additions and 1 deletions

View File

@ -1,4 +1,5 @@
const localUtils = require('../../index'); const localUtils = require('../../index');
const labs = require('../../../../../../shared/labs');
const forceActiveFilter = (frame) => { const forceActiveFilter = (frame) => {
if (frame.options.filter) { if (frame.options.filter) {
@ -22,6 +23,10 @@ function convertTierInput(input) {
visibility: input.visibility visibility: input.visibility
}; };
if (labs.isSet('freeTrial')) {
converted.trial_days = input.trial_days;
}
if (input.monthly_price && input.currency) { if (input.monthly_price && input.currency) {
converted.monthly_price = { converted.monthly_price = {
amount: input.monthly_price, amount: input.monthly_price,

View File

@ -4,6 +4,7 @@ const debug = require('@tryghost/debug')('api:endpoints:utils:serializers:output
const allowedIncludes = ['monthly_price', 'yearly_price']; const allowedIncludes = ['monthly_price', 'yearly_price'];
const localUtils = require('../../index'); const localUtils = require('../../index');
const utils = require('../../../../shared/utils'); const utils = require('../../../../shared/utils');
const labs = require('../../../../../../shared/labs');
module.exports = { module.exports = {
browse: createSerializer('browse', paginatedTiers), browse: createSerializer('browse', paginatedTiers),
@ -69,6 +70,10 @@ function serializeTier(tier, options, frame) {
benefits: null benefits: null
}; };
if (labs.isSet('freeTrial')) {
serialized.trial_days = json.trial_days;
}
if (Array.isArray(json.benefits)) { if (Array.isArray(json.benefits)) {
serialized.benefits = json.benefits.map(benefit => benefit.name); serialized.benefits = json.benefits.map(benefit => benefit.name);
} else { } else {

View File

@ -21,6 +21,7 @@ Object {
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/, "id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
"name": "Free", "name": "Free",
"slug": "free", "slug": "free",
"trial_days": 0,
"type": "free", "type": "free",
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/, "updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/,
"visibility": "public", "visibility": "public",
@ -34,6 +35,7 @@ Object {
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/, "id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
"name": "Default Product", "name": "Default Product",
"slug": "default-product", "slug": "default-product",
"trial_days": 0,
"type": "paid", "type": "paid",
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/, "updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/,
"visibility": "public", "visibility": "public",

View File

@ -21,6 +21,7 @@ Object {
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/, "id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
"name": "Free", "name": "Free",
"slug": "free", "slug": "free",
"trial_days": 0,
"type": "free", "type": "free",
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/, "updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
"visibility": "public", "visibility": "public",
@ -36,6 +37,7 @@ Object {
"monthly_price": 1200, "monthly_price": 1200,
"name": "Default Product", "name": "Default Product",
"slug": "default-product", "slug": "default-product",
"trial_days": 0,
"type": "paid", "type": "paid",
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/, "updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
"visibility": "public", "visibility": "public",
@ -50,7 +52,7 @@ exports[`Tiers Content API Can request only active tiers 2: [headers] 1`] = `
Object { Object {
"access-control-allow-origin": "*", "access-control-allow-origin": "*",
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0", "cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
"content-length": "700", "content-length": "730",
"content-type": "application/json; charset=utf-8", "content-type": "application/json; charset=utf-8",
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/, "etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
"vary": "Accept-Encoding", "vary": "Accept-Encoding",