Skip to content

Commit 04a298e

Browse files
committed
Moved @tryghost/offers to core folder
fix https://linear.app/ghost/issue/ENG-2385/offers - this commit moves the lib code and tests to the core folder so we can colocate code in one place rather than splitting it out across packages, which increases the cognitive load and overhead
1 parent 8208fb8 commit 04a298e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+45
-87
lines changed

.docker/Dockerfile

-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ COPY ghost/job-manager/package.json ghost/job-manager/package.json
8282
COPY ghost/members-csv/package.json ghost/members-csv/package.json
8383
COPY ghost/mw-error-handler/package.json ghost/mw-error-handler/package.json
8484
COPY ghost/mw-vhost/package.json ghost/mw-vhost/package.json
85-
COPY ghost/offers/package.json ghost/offers/package.json
8685
COPY ghost/post-events/package.json ghost/post-events/package.json
8786
COPY ghost/post-revisions/package.json ghost/post-revisions/package.json
8887
COPY ghost/prometheus-metrics/package.json ghost/prometheus-metrics/package.json

compose.yml

-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ services:
4747
- node_modules_ghost_members-csv:/home/ghost/ghost/members-csv/node_modules:delegated
4848
- node_modules_ghost_mw-error-handler:/home/ghost/ghost/mw-error-handler/node_modules:delegated
4949
- node_modules_ghost_mw-vhost:/home/ghost/ghost/mw-vhost/node_modules:delegated
50-
- node_modules_ghost_offers:/home/ghost/ghost/offers/node_modules:delegated
5150
- node_modules_ghost_post-events:/home/ghost/ghost/post-events/node_modules:delegated
5251
- node_modules_ghost_post-revisions:/home/ghost/ghost/post-revisions/node_modules:delegated
5352
- node_modules_ghost_prometheus-metrics:/home/ghost/ghost/prometheus-metrics/node_modules:delegated
@@ -192,7 +191,6 @@ volumes:
192191
node_modules_ghost_members-csv: {}
193192
node_modules_ghost_mw-error-handler: {}
194193
node_modules_ghost_mw-vhost: {}
195-
node_modules_ghost_offers: {}
196194
node_modules_ghost_post-events: {}
197195
node_modules_ghost_post-revisions: {}
198196
node_modules_ghost_prometheus-metrics: {}

ghost/core/core/server/services/members/members-api/services/PaymentsService.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ const DomainEvents = require('@tryghost/domain-events');
33
const TierCreatedEvent = require('../../../../../../core/server/services/tiers/TierCreatedEvent');
44
const TierPriceChangeEvent = require('../../../../../../core/server/services/tiers/TierPriceChangeEvent');
55
const TierNameChangeEvent = require('../../../../../../core/server/services/tiers/TierNameChangeEvent');
6-
const OfferCreatedEvent = require('@tryghost/members-offers').events.OfferCreatedEvent;
6+
const OfferCreatedEvent = require('../../../../../../core/server/services/offers/domain/events/OfferCreatedEvent');
77
const {BadRequestError} = require('@tryghost/errors');
88

99
class PaymentsService {
1010
/**
1111
* @param {object} deps
1212
* @param {import('bookshelf').Model} deps.Offer
13-
* @param {import('@tryghost/members-offers/lib/application/OffersAPI')} deps.offersAPI
13+
* @param {import('../../../offers/application/OffersAPI')} deps.offersAPI
1414
* @param {import('../../../stripe/StripeAPI')} deps.stripeAPIService
1515
* @param {{get(key: string): any}} deps.settingsCache
1616
*/

ghost/core/core/server/services/offers/OfferBookshelfRepository.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const {flowRight} = require('lodash');
22
const {mapKeyValues, mapQuery} = require('@tryghost/mongo-utils');
33
const DomainEvents = require('@tryghost/domain-events');
4-
const {Offer} = require('@tryghost/members-offers');
4+
const Offer = require('./domain/models/Offer');
55
const sentry = require('../../../shared/sentry');
66
const logger = require('@tryghost/logging');
77

@@ -93,7 +93,7 @@ class OfferBookshelfRepository {
9393
* @private
9494
* @param {import('bookshelf').Model<any>} model
9595
* @param {BaseOptions} options
96-
* @returns {Promise<import('@tryghost/members-offers').Offer>}
96+
* @returns {Promise<import('./domain/models/Offer')>}
9797
*/
9898
async mapToOffer(model, options) {
9999
const json = model.toJSON();
@@ -140,7 +140,7 @@ class OfferBookshelfRepository {
140140
/**
141141
* @param {string} id
142142
* @param {BaseOptions} [options]
143-
* @returns {Promise<import('@tryghost/members-offers').Offer>}
143+
* @returns {Promise<import('./domain/models/Offer')>}
144144
*/
145145
async getById(id, options) {
146146
const model = await this.OfferModel.findOne({id}, {
@@ -158,7 +158,7 @@ class OfferBookshelfRepository {
158158
/**
159159
* @param {string} id stripe_coupon_id
160160
* @param {BaseOptions} [options]
161-
* @returns {Promise<import('@tryghost/members-offers').Offer>}
161+
* @returns {Promise<import('./domain/models/Offer')>}
162162
*/
163163
async getByStripeCouponId(id, options) {
164164
const model = await this.OfferModel.findOne({stripe_coupon_id: id}, {
@@ -175,7 +175,7 @@ class OfferBookshelfRepository {
175175

176176
/**
177177
* @param {ListOptions} options
178-
* @returns {Promise<import('@tryghost/members-offers').Offer[]>}
178+
* @returns {Promise<import('./domain/models/Offer')[]>}
179179
*/
180180
async getAll(options) {
181181
const models = await this.OfferModel.findAll({
@@ -194,7 +194,7 @@ class OfferBookshelfRepository {
194194
}
195195

196196
/**
197-
* @param {import('@tryghost/members-offers').Offer} offer
197+
* @param {import('./domain/models/Offer')} offer
198198
* @param {BaseOptions} [options]
199199
* @returns {Promise<void>}
200200
*/

ghost/core/core/server/services/offers/service.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
const OffersModule = require('@tryghost/members-offers');
2-
31
const DynamicRedirectManager = require('../lib/DynamicRedirectManager');
42
const config = require('../../../shared/config');
53
const urlUtils = require('../../../shared/url-utils');
64
const models = require('../../models');
75
const OfferBookshelfRepository = require('./OfferBookshelfRepository');
6+
const OffersModule = require('./OffersModule');
87

98
let redirectManager;
109

ghost/core/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@
100100
"@tryghost/limit-service": "1.2.15",
101101
"@tryghost/logging": "2.4.21",
102102
"@tryghost/members-csv": "0.0.0",
103-
"@tryghost/members-offers": "0.0.0",
104103
"@tryghost/metrics": "1.0.37",
105104
"@tryghost/mw-error-handler": "0.0.0",
106105
"@tryghost/mw-vhost": "0.0.0",

ghost/offers/test/lib/application/UniqueChecker.test.js renamed to ghost/core/test/unit/server/services/offers/application/UniqueChecker.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const sinon = require('sinon');
22
const should = require('should');
3-
const UniqueChecker = require('../../../lib/application/UniqueChecker');
3+
const UniqueChecker = require('../../../../../../core/server/services/offers/application/UniqueChecker');
44

55
describe('UniqueChecker', function () {
66
describe('#isUniqueCode', function () {

ghost/offers/test/lib/domain/models/Offer.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/Offer.test.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const should = require('should');
22
const ObjectID = require('bson-objectid').default;
3-
const errors = require('../../../../lib/domain/errors');
4-
const Offer = require('../../../../lib/domain/models/Offer');
5-
const OfferName = require('../../../../lib/domain/models/OfferName');
6-
const OfferCode = require('../../../../lib/domain/models/OfferCode');
3+
const errors = require('../../../../../../../core/server/services/offers/domain/errors');
4+
const Offer = require('../../../../../../../core/server/services/offers/domain/models/Offer');
5+
const OfferName = require('../../../../../../../core/server/services/offers/domain/models/OfferName');
6+
const OfferCode = require('../../../../../../../core/server/services/offers/domain/models/OfferCode');
77

88
function createUniqueChecker(dupe) {
99
return {

ghost/offers/test/lib/domain/models/OfferAmount.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferAmount.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const {OfferPercentageAmount, OfferFixedAmount, OfferTrialAmount} = require('../../../../lib/domain/models/OfferAmount');
1+
const should = require('should');
2+
3+
const {OfferPercentageAmount, OfferFixedAmount, OfferTrialAmount} = require('../../../../../../../core/server/services/offers/domain/models/OfferAmount');
24

35
describe('OfferAmount', function () {
46
describe('OfferPercentageAmount', function () {

ghost/offers/test/lib/domain/models/OfferCadence.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferCadence.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferCadence = require('../../../../lib/domain/models/OfferCadence');
1+
const should = require('should');
2+
3+
const OfferCadence = require('../../../../../../../core/server/services/offers/domain/models/OfferCadence');
24

35
describe('OfferCadence', function () {
46
describe('OfferCadence.create factory', function () {

ghost/offers/test/lib/domain/models/OfferCode.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferCode.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferCode = require('../../../../lib/domain/models/OfferCode');
1+
const should = require('should');
2+
3+
const OfferCode = require('../../../../../../../core/server/services/offers/domain/models/OfferCode');
24

35
describe('OfferCode', function () {
46
describe('OfferCode.create factory', function () {

ghost/offers/test/lib/domain/models/OfferCurrency.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferCurrency.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferCurrency = require('../../../../lib/domain/models/OfferCurrency');
1+
const should = require('should');
2+
3+
const OfferCurrency = require('../../../../../../../core/server/services/offers/domain/models/OfferCurrency');
24

35
describe('OfferCurrency', function () {
46
describe('OfferCurrency.create factory', function () {

ghost/offers/test/lib/domain/models/OfferDescription.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferDescription.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferDescription = require('../../../../lib/domain/models/OfferDescription');
1+
const should = require('should');
2+
3+
const OfferDescription = require('../../../../../../../core/server/services/offers/domain/models/OfferDescription');
24

35
describe('OfferDescription', function () {
46
describe('OfferDescription.create factory', function () {

ghost/offers/test/lib/domain/models/OfferDuration.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferDuration.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferDuration = require('../../../../lib/domain/models/OfferDuration');
1+
const should = require('should');
2+
3+
const OfferDuration = require('../../../../../../../core/server/services/offers/domain/models/OfferDuration');
24

35
describe('OfferDuration', function () {
46
describe('OfferDuration.create factory', function () {

ghost/offers/test/lib/domain/models/OfferName.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferName.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferName = require('../../../../lib/domain/models/OfferName');
1+
const should = require('should');
2+
3+
const OfferName = require('../../../../../../../core/server/services/offers/domain/models/OfferName');
24

35
describe('OfferName', function () {
46
describe('OfferName.create factory', function () {

ghost/offers/test/lib/domain/models/OfferStatus.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferStatus.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferStatus = require('../../../../lib/domain/models/OfferStatus');
1+
const should = require('should');
2+
3+
const OfferStatus = require('../../../../../../../core/server/services/offers/domain/models/OfferStatus');
24

35
describe('OfferStatus', function () {
46
describe('OfferStatus.create factory', function () {

ghost/offers/test/lib/domain/models/OfferTitle.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferTitle.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferTitle = require('../../../../lib/domain/models/OfferTitle');
1+
const should = require('should');
2+
3+
const OfferTitle = require('../../../../../../../core/server/services/offers/domain/models/OfferTitle');
24

35
describe('OfferTitle', function () {
46
describe('OfferTitle.create factory', function () {

ghost/offers/test/lib/domain/models/OfferType.test.js renamed to ghost/core/test/unit/server/services/offers/domain/models/OfferType.test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const OfferType = require('../../../../lib/domain/models/OfferType');
1+
const should = require('should');
2+
3+
const OfferType = require('../../../../../../../core/server/services/offers/domain/models/OfferType');
24

35
describe('OfferType', function () {
46
describe('OfferType.create factory', function () {

ghost/offers/.eslintrc.js

-6
This file was deleted.

ghost/offers/index.js

-1
This file was deleted.

ghost/offers/package.json

-34
This file was deleted.

ghost/offers/test/.eslintrc.js

-6
This file was deleted.

ghost/offers/test/hello.test.js

-10
This file was deleted.

yarn.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -7501,7 +7501,7 @@
75017501
debug "^4.3.3"
75027502
lodash "^4.17.21"
75037503

7504-
"@tryghost/mongo-utils@0.6.2", "@tryghost/mongo-utils@^0.6.2":
7504+
"@tryghost/mongo-utils@^0.6.2":
75057505
version "0.6.2"
75067506
resolved "https://registry.yarnpkg.com/@tryghost/mongo-utils/-/mongo-utils-0.6.2.tgz#18af1e057aad6876cb7ff61f817df4e90d8055bf"
75077507
integrity sha512-ewXYg2/EOYNc/ko5zwfvxskYfyLOVjMOPGgRLODJf3jLp9iXK9nfLHOrnAO4Jeh9CLzHm84aWUMaRIFH/XQULg==

0 commit comments

Comments
 (0)