@chevre/domain 23.1.0-alpha.27 → 23.1.0-alpha.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ const project = { id: String(process.env.PROJECT_ID) };
9
9
  async function main() {
10
10
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
11
 
12
- const acceptedPaymentMethodOfferRepo = await chevre.repository.AcceptedPaymentMethodOffer.createInstance(mongoose.connection);
12
+ const acceptedPaymentMethodRepo = await chevre.repository.AcceptedPaymentMethod.createInstance(mongoose.connection);
13
13
 
14
14
  const validFrom = moment()
15
15
  .toDate();
@@ -18,7 +18,7 @@ async function main() {
18
18
  .toDate();
19
19
  const settingOffer: Omit<chevre.factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer, 'id'> = {
20
20
  typeOf: chevre.factory.offerType.Offer,
21
- identifier: '20251202acceptedPaymentMethodOffer',
21
+ identifier: '20251202acceptedPaymentMethod',
22
22
  itemOffered: {
23
23
  id: '7k9ayl8hc',
24
24
  typeOf: chevre.factory.eventType.ScreeningEventSeries
@@ -36,7 +36,7 @@ async function main() {
36
36
  project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
37
37
  };
38
38
 
39
- let result = await acceptedPaymentMethodOfferRepo.upsertAcceptedPaymentMethodOffersByIdentifier(
39
+ let result = await acceptedPaymentMethodRepo.upsertAcceptedPaymentMethodsByIdentifier(
40
40
  [
41
41
  {
42
42
  $set: settingOffer,
@@ -49,7 +49,7 @@ async function main() {
49
49
  );
50
50
  console.log(result);
51
51
 
52
- result = await acceptedPaymentMethodOfferRepo.upsertAcceptedPaymentMethodOffersByIdentifier(
52
+ result = await acceptedPaymentMethodRepo.upsertAcceptedPaymentMethodsByIdentifier(
53
53
  [
54
54
  {
55
55
  $set: settingOffer,
@@ -1,7 +1,7 @@
1
1
  import type { BulkWriteResult } from 'mongodb';
2
2
  import { Connection, FilterQuery } from 'mongoose';
3
3
  import * as factory from '../factory';
4
- import { IDocType } from './mongoose/schemas/acceptedPaymentMethodOffer';
4
+ import { IDocType } from './mongoose/schemas/acceptedPaymentMethod';
5
5
  type IUnset = {
6
6
  [key in keyof IDocType]?: 1;
7
7
  };
@@ -10,17 +10,17 @@ type IDocWithId = IDocType & {
10
10
  };
11
11
  type IKeyOfProjection = keyof IDocType;
12
12
  /**
13
- * 対応決済方法オファーリポジトリ
13
+ * 対応決済方法リポジトリ
14
14
  */
15
- export declare class AcceptedPaymentMethodOfferRepo {
16
- private readonly acceptedPaymentMethodOfferModel;
15
+ export declare class AcceptedPaymentMethodRepo {
16
+ private readonly acceptedPaymentMethodModel;
17
17
  constructor(connection: Connection);
18
18
  static CREATE_MONGO_CONDITIONS(params: factory.acceptedPaymentMethodOffer.ISearchConditions): FilterQuery<IDocType>[];
19
- findAcceptedPaymentMethodOffers(params: factory.acceptedPaymentMethodOffer.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<IDocWithId[]>;
19
+ findAcceptedPaymentMethods(params: factory.acceptedPaymentMethodOffer.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<IDocWithId[]>;
20
20
  /**
21
21
  * オファーコードと提供リソースIDをキーにして冪等置換
22
22
  */
23
- upsertAcceptedPaymentMethodOffersByIdentifier(params: {
23
+ upsertAcceptedPaymentMethodsByIdentifier(params: {
24
24
  $set: Pick<IDocType, 'identifier' | 'itemOffered' | 'acceptedPaymentMethod' | 'seller' | 'project' | 'typeOf' | 'validFrom' | 'validThrough'> & {
25
25
  id?: never;
26
26
  };
@@ -9,10 +9,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AcceptedPaymentMethodOfferRepo = void 0;
12
+ exports.AcceptedPaymentMethodRepo = void 0;
13
13
  const factory = require("../factory");
14
14
  const settings_1 = require("../settings");
15
- const acceptedPaymentMethodOffer_1 = require("./mongoose/schemas/acceptedPaymentMethodOffer");
15
+ const acceptedPaymentMethod_1 = require("./mongoose/schemas/acceptedPaymentMethod");
16
16
  const AVAILABLE_PROJECT_FIELDS = [
17
17
  'identifier',
18
18
  'project',
@@ -24,11 +24,11 @@ const AVAILABLE_PROJECT_FIELDS = [
24
24
  'seller'
25
25
  ];
26
26
  /**
27
- * 対応決済方法オファーリポジトリ
27
+ * 対応決済方法リポジトリ
28
28
  */
29
- class AcceptedPaymentMethodOfferRepo {
29
+ class AcceptedPaymentMethodRepo {
30
30
  constructor(connection) {
31
- this.acceptedPaymentMethodOfferModel = connection.model(acceptedPaymentMethodOffer_1.modelName, (0, acceptedPaymentMethodOffer_1.createSchema)());
31
+ this.acceptedPaymentMethodModel = connection.model(acceptedPaymentMethod_1.modelName, (0, acceptedPaymentMethod_1.createSchema)());
32
32
  }
33
33
  static CREATE_MONGO_CONDITIONS(params) {
34
34
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
@@ -75,10 +75,10 @@ class AcceptedPaymentMethodOfferRepo {
75
75
  }
76
76
  return andConditions;
77
77
  }
78
- findAcceptedPaymentMethodOffers(params, inclusion) {
78
+ findAcceptedPaymentMethods(params, inclusion) {
79
79
  return __awaiter(this, void 0, void 0, function* () {
80
80
  var _a;
81
- const conditions = AcceptedPaymentMethodOfferRepo.CREATE_MONGO_CONDITIONS(params);
81
+ const conditions = AcceptedPaymentMethodRepo.CREATE_MONGO_CONDITIONS(params);
82
82
  let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
83
83
  if (Array.isArray(inclusion) && inclusion.length > 0) {
84
84
  positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
@@ -87,7 +87,7 @@ class AcceptedPaymentMethodOfferRepo {
87
87
  throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
88
88
  }
89
89
  const projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
90
- const query = this.acceptedPaymentMethodOfferModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
90
+ const query = this.acceptedPaymentMethodModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
91
91
  if (typeof ((_a = params.sort) === null || _a === void 0 ? void 0 : _a.validFrom) === 'number') {
92
92
  query.sort({ validFrom: params.sort.validFrom });
93
93
  }
@@ -104,7 +104,7 @@ class AcceptedPaymentMethodOfferRepo {
104
104
  /**
105
105
  * オファーコードと提供リソースIDをキーにして冪等置換
106
106
  */
107
- upsertAcceptedPaymentMethodOffersByIdentifier(params, options) {
107
+ upsertAcceptedPaymentMethodsByIdentifier(params, options) {
108
108
  return __awaiter(this, void 0, void 0, function* () {
109
109
  const { update } = options;
110
110
  const bulkWriteOps = [];
@@ -164,9 +164,9 @@ class AcceptedPaymentMethodOfferRepo {
164
164
  });
165
165
  }
166
166
  if (bulkWriteOps.length > 0) {
167
- const bulkWriteResult = yield this.acceptedPaymentMethodOfferModel.bulkWrite(bulkWriteOps, { ordered: false });
167
+ const bulkWriteResult = yield this.acceptedPaymentMethodModel.bulkWrite(bulkWriteOps, { ordered: false });
168
168
  // modifiedの場合upsertedIdsに含まれないので、idを検索する
169
- const modifiedProductOffers = yield this.acceptedPaymentMethodOfferModel.find({ $or: queryFilters }, {
169
+ const modifiedProductOffers = yield this.acceptedPaymentMethodModel.find({ $or: queryFilters }, {
170
170
  _id: 0,
171
171
  id: { $toString: '$_id' }
172
172
  })
@@ -177,4 +177,4 @@ class AcceptedPaymentMethodOfferRepo {
177
177
  });
178
178
  }
179
179
  }
180
- exports.AcceptedPaymentMethodOfferRepo = AcceptedPaymentMethodOfferRepo;
180
+ exports.AcceptedPaymentMethodRepo = AcceptedPaymentMethodRepo;
@@ -4,7 +4,7 @@ type IDocType = factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer;
4
4
  type IModel = Model<IDocType>;
5
5
  type ISchemaDefinition = SchemaDefinition<IDocType>;
6
6
  type ISchema = Schema<IDocType, IModel, {}, {}, {}, {}, ISchemaDefinition, IDocType>;
7
- declare const modelName = "AcceptedPaymentMethodOffer";
7
+ declare const modelName = "AcceptedPaymentMethod";
8
8
  declare const indexes: [d: IndexDefinition, o: IndexOptions][];
9
9
  declare function createSchema(): ISchema;
10
10
  export { createSchema, IDocType, IModel, indexes, modelName };
@@ -5,7 +5,7 @@ exports.createSchema = createSchema;
5
5
  const mongoose_1 = require("mongoose");
6
6
  const settings_1 = require("../../../settings");
7
7
  const writeConcern_1 = require("../writeConcern");
8
- const modelName = 'AcceptedPaymentMethodOffer';
8
+ const modelName = 'AcceptedPaymentMethod';
9
9
  exports.modelName = modelName;
10
10
  const schemaDefinition = {
11
11
  project: { type: mongoose_1.SchemaTypes.Mixed, required: true },
@@ -21,7 +21,7 @@ const schemaDefinition = {
21
21
  const schemaOptions = {
22
22
  autoIndex: settings_1.MONGO_AUTO_INDEX,
23
23
  autoCreate: false,
24
- collection: 'acceptedPaymentMethodOffers',
24
+ collection: 'acceptedPaymentMethods',
25
25
  id: true,
26
26
  read: settings_1.MONGO_READ_PREFERENCE,
27
27
  writeConcern: writeConcern_1.writeConcern,
@@ -2,7 +2,7 @@
2
2
  * リポジトリ
3
3
  */
4
4
  import type { AcceptedOfferRepo } from './repo/acceptedOffer';
5
- import type { AcceptedPaymentMethodOfferRepo } from './repo/acceptedPaymentMethodOffer';
5
+ import type { AcceptedPaymentMethodRepo } from './repo/acceptedPaymentMethod';
6
6
  import type { AccountRepo } from './repo/account';
7
7
  import type { AccountingReportRepo } from './repo/accountingReport';
8
8
  import type { AccountTitleRepo } from './repo/accountTitle';
@@ -95,9 +95,9 @@ export type AcceptedOffer = AcceptedOfferRepo;
95
95
  export declare namespace AcceptedOffer {
96
96
  function createInstance(...params: ConstructorParameters<typeof AcceptedOfferRepo>): Promise<AcceptedOfferRepo>;
97
97
  }
98
- export type AcceptedPaymentMethodOffer = AcceptedPaymentMethodOfferRepo;
99
- export declare namespace AcceptedPaymentMethodOffer {
100
- function createInstance(...params: ConstructorParameters<typeof AcceptedPaymentMethodOfferRepo>): Promise<AcceptedPaymentMethodOfferRepo>;
98
+ export type AcceptedPaymentMethod = AcceptedPaymentMethodRepo;
99
+ export declare namespace AcceptedPaymentMethod {
100
+ function createInstance(...params: ConstructorParameters<typeof AcceptedPaymentMethodRepo>): Promise<AcceptedPaymentMethodRepo>;
101
101
  }
102
102
  export type Account = AccountRepo;
103
103
  export declare namespace Account {
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PendingReservation = exports.PaymentServiceProvider = exports.PaymentServiceChannel = exports.PaymentService = exports.Passport = exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.NoteAboutOrder = exports.Note = exports.MovieTicketType = exports.Message = exports.MerchantReturnPolicy = exports.MemberProgram = exports.Member = exports.Issuer = exports.IdentityProvider = exports.Identity = exports.EventSeries = exports.EventSellerMakesOffer = exports.EventOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.Credentials = exports.CreativeWork = exports.ConfirmationNumber = exports.Comment = exports.Authorization = exports.CategoryCode = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOrder = exports.AggregateOffer = exports.AdvanceBookingRequirement = exports.AdditionalProperty = exports.Action = exports.AccountTransaction = exports.AccountTitle = exports.AccountingReport = exports.Account = exports.AcceptedPaymentMethodOffer = exports.AcceptedOffer = void 0;
12
+ exports.PendingReservation = exports.PaymentServiceProvider = exports.PaymentServiceChannel = exports.PaymentService = exports.Passport = exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.NoteAboutOrder = exports.Note = exports.MovieTicketType = exports.Message = exports.MerchantReturnPolicy = exports.MemberProgram = exports.Member = exports.Issuer = exports.IdentityProvider = exports.Identity = exports.EventSeries = exports.EventSellerMakesOffer = exports.EventOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.Credentials = exports.CreativeWork = exports.ConfirmationNumber = exports.Comment = exports.Authorization = exports.CategoryCode = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOrder = exports.AggregateOffer = exports.AdvanceBookingRequirement = exports.AdditionalProperty = exports.Action = exports.AccountTransaction = exports.AccountTitle = exports.AccountingReport = exports.Account = exports.AcceptedPaymentMethod = exports.AcceptedOffer = void 0;
13
13
  exports.WebSite = exports.rateLimit = exports.Trip = exports.TransactionProcess = exports.TransactionNumber = exports.Transaction = exports.Ticket = exports.Telemetry = exports.Task = exports.StockHolder = exports.setting = exports.Setting = exports.ServiceOutputIdentifier = exports.ServiceOutput = exports.ServiceAvailableHour = exports.SellerReturnPolicy = exports.SellerPaymentAccepted = exports.SellerMakesOffer = exports.Seller = exports.Schedule = exports.Role = exports.ReserveInterface = exports.Reservation = exports.ProjectMakesOffer = exports.Project = exports.ProductOffer = exports.ProductModel = exports.ProductHasOfferCatalog = exports.Product = exports.PriceSpecification = exports.PotentialAction = exports.place = exports.Permit = exports.Person = exports.paymentMethod = void 0;
14
14
  var AcceptedOffer;
15
15
  (function (AcceptedOffer) {
@@ -24,19 +24,19 @@ var AcceptedOffer;
24
24
  }
25
25
  AcceptedOffer.createInstance = createInstance;
26
26
  })(AcceptedOffer || (exports.AcceptedOffer = AcceptedOffer = {}));
27
- var AcceptedPaymentMethodOffer;
28
- (function (AcceptedPaymentMethodOffer) {
27
+ var AcceptedPaymentMethod;
28
+ (function (AcceptedPaymentMethod) {
29
29
  let repo;
30
30
  function createInstance(...params) {
31
31
  return __awaiter(this, void 0, void 0, function* () {
32
32
  if (repo === undefined) {
33
- repo = (yield Promise.resolve().then(() => require('./repo/acceptedPaymentMethodOffer'))).AcceptedPaymentMethodOfferRepo;
33
+ repo = (yield Promise.resolve().then(() => require('./repo/acceptedPaymentMethod'))).AcceptedPaymentMethodRepo;
34
34
  }
35
35
  return new repo(...params);
36
36
  });
37
37
  }
38
- AcceptedPaymentMethodOffer.createInstance = createInstance;
39
- })(AcceptedPaymentMethodOffer || (exports.AcceptedPaymentMethodOffer = AcceptedPaymentMethodOffer = {}));
38
+ AcceptedPaymentMethod.createInstance = createInstance;
39
+ })(AcceptedPaymentMethod || (exports.AcceptedPaymentMethod = AcceptedPaymentMethod = {}));
40
40
  var Account;
41
41
  (function (Account) {
42
42
  let repo;
@@ -1,14 +1,15 @@
1
- /**
2
- * ペイメントカード決済取引バリデーション
3
- */
1
+ import * as factory from '../../../factory';
4
2
  import type { EventRepo } from '../../../repo/event';
5
3
  import type { EventSeriesRepo } from '../../../repo/eventSeries';
6
- import * as factory from '../../../factory';
7
4
  /**
8
5
  * 必要あらば関連リソースの対応決済方法を検証する
9
6
  */
10
7
  export declare function validateAcceptedPaymentMethodIfNeeded(params: Pick<factory.assetTransaction.pay.IStartParamsWithoutDetail, 'object'> | {
11
- object: factory.action.accept.pay.IPayObject;
8
+ object: factory.action.accept.pay.IPayObject & {
9
+ paymentMethod: factory.action.accept.pay.IPaymentMethod & {
10
+ movieTickets: never;
11
+ };
12
+ };
12
13
  }): (repos: {
13
14
  event: EventRepo;
14
15
  eventSeries: EventSeriesRepo;
@@ -10,32 +10,60 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.validateAcceptedPaymentMethodIfNeeded = validateAcceptedPaymentMethodIfNeeded;
13
+ /**
14
+ * ペイメントカード決済取引バリデーション
15
+ */
16
+ const createDebug = require("debug");
13
17
  const factory = require("../../../factory");
18
+ const debug = createDebug('chevre-domain:service:assetTransaction:pay');
14
19
  /**
15
20
  * 必要あらば関連リソースの対応決済方法を検証する
16
21
  */
17
22
  function validateAcceptedPaymentMethodIfNeeded(params) {
18
23
  return (repos) => __awaiter(this, void 0, void 0, function* () {
19
24
  var _a, _b;
20
- const orderedItems = (_a = params.object.serviceOutput) === null || _a === void 0 ? void 0 : _a.referencesOrder.orderedItem;
21
- if (Array.isArray(orderedItems)) {
22
- const eventIds = orderedItems.map((orderedItem) => orderedItem.orderedItem.serviceOutput.reservationFor.id);
23
- if (eventIds.length === 0) {
25
+ /**
26
+ * 検証対象のイベントIDリスト
27
+ */
28
+ let checkingEventIds;
29
+ const paymentServiceType = params.object.typeOf;
30
+ // CreditCard or MovieTicket?
31
+ if (paymentServiceType === factory.service.paymentService.PaymentServiceType.CreditCard) {
32
+ const orderedItems = (_a = params.object.serviceOutput) === null || _a === void 0 ? void 0 : _a.referencesOrder.orderedItem;
33
+ if (Array.isArray(orderedItems)) {
34
+ checkingEventIds = orderedItems.map((orderedItem) => orderedItem.orderedItem.serviceOutput.reservationFor.id);
35
+ }
36
+ }
37
+ else if (paymentServiceType === factory.service.paymentService.PaymentServiceType.MovieTicket) {
38
+ const movieTickets = params.object.paymentMethod.movieTickets;
39
+ if (Array.isArray(movieTickets)) {
40
+ checkingEventIds = [...new Set(movieTickets.map((ticket) => ticket.serviceOutput.reservationFor.id))];
41
+ // イベントがひとつに特定されているかどうか確認
42
+ if (checkingEventIds.length !== 1) {
43
+ throw new factory.errors.Argument('movieTickets', 'Number of events must be 1');
44
+ }
45
+ }
46
+ }
47
+ else {
48
+ // 対面決済ではひとまず対応決済方法検証なし
49
+ }
50
+ debug('validateAcceptedPaymentMethodIfNeeded: checkingEventIds:', checkingEventIds, paymentServiceType);
51
+ if (Array.isArray(checkingEventIds)) {
52
+ if (checkingEventIds.length === 0) {
24
53
  throw new factory.errors.ArgumentNull('object.serviceOutput.referencesOrder.orderedItem');
25
54
  }
26
55
  // 指定された全イベントについて、施設コンテンツの対応決済方法を検証する
27
56
  const eventSeriesIds = (yield repos.event.projectEventFields({
28
- limit: eventIds.length,
57
+ limit: checkingEventIds.length,
29
58
  page: 1,
30
- id: { $in: eventIds },
59
+ id: { $in: checkingEventIds },
31
60
  typeOf: factory.eventType.ScreeningEvent
32
61
  }, ['superEvent'])).map((event) => event.superEvent.id);
33
- if (eventSeriesIds.length !== eventIds.length) {
62
+ if (eventSeriesIds.length !== checkingEventIds.length) {
34
63
  throw new factory.errors.NotFound(factory.eventType.ScreeningEvent);
35
64
  }
36
65
  const uniqueEventSeriesIds = [...new Set(eventSeriesIds)];
37
- // tslint:disable-next-line:no-console
38
- console.log('validateAcceptedPaymentMethodIfNeeded: eventSeries with AggregateOffer?', uniqueEventSeriesIds);
66
+ debug('validateAcceptedPaymentMethodIfNeeded: eventSeries with AggregateOffer?', uniqueEventSeriesIds);
39
67
  for (const eventSeriesId of uniqueEventSeriesIds) {
40
68
  const eventSeries = (yield repos.eventSeries.projectEventSeriesFields({
41
69
  limit: 1,
package/package.json CHANGED
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "23.1.0-alpha.27"
118
+ "version": "23.1.0-alpha.29"
119
119
  }