0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00

Added support for Offer status to API

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

- Includes `status` on OfferDTO so client can use it
- Allows editing `status` of Offers
- Allows setting initial `status` when creating Offers
This commit is contained in:
Fabien O'Carroll 2021-10-12 17:11:52 +02:00
parent 04b9944e67
commit facbfcfa8e
2 changed files with 11 additions and 1 deletions

View file

@ -22,6 +22,8 @@
* @prop {'once'|'repeating'|'forever'} duration
* @prop {null|number} duration_in_months
*
* @prop {'active'|'archived'} status
*
* @prop {object} tier
* @prop {string} tier.id
* @prop {string} tier.name
@ -46,6 +48,7 @@ class OfferMapper {
duration_in_months: offer.duration.value.type === 'repeating' ? offer.duration.value.months : null,
currency_restriction: offer.type.value === 'fixed',
currency: offer.type.value === 'fixed' ? offer.currency.value : null,
status: offer.status.value,
tier: {
id: offer.tier.id,
name: offer.tier.name

View file

@ -3,6 +3,7 @@ const OfferName = require('../domain/models/OfferName');
const OfferCode = require('../domain/models/OfferCode');
const OfferTitle = require('../domain/models/OfferTitle');
const OfferDescription = require('../domain/models/OfferDescription');
const OfferStatus = require('../domain/models/OfferStatus');
const OfferMapper = require('./OfferMapper');
const UniqueChecker = require('./UniqueChecker');
@ -31,7 +32,7 @@ class OffersAPI {
}
/**
* @param {object} data
* @param {any} data
*
* @returns {Promise<OfferMapper.OfferDTO>}
*/
@ -55,6 +56,7 @@ class OffersAPI {
* @param {string} [data.display_title]
* @param {string} [data.display_description]
* @param {string} [data.code]
* @param {string} [data.status]
*
* @returns {Promise<OfferMapper.OfferDTO>}
*/
@ -85,6 +87,11 @@ class OffersAPI {
offer.displayDescription = description;
}
if (data.status) {
const status = OfferStatus.create(data.status);
offer.status = status;
}
await this.repository.save(offer, options);
return OfferMapper.toDTO(offer);