@chevre/domain 22.11.0-alpha.5 → 22.11.0-alpha.6

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.
@@ -0,0 +1,129 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ // tslint:disable-next-line:max-func-body-length
7
+ async function main() {
8
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
9
+
10
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
11
+
12
+ let roleNames = [
13
+ chevre.factory.role.organizationRole.RoleName.InventoryManager
14
+ ];
15
+ let permissions = [
16
+ 'admin.creativeWorks.*',
17
+ 'admin.sellers.eventSeries.*',
18
+ 'admin.customers.read',
19
+ 'admin.offers.read',
20
+ 'admin.offers.create',
21
+ 'admin.offerCatalogs.create',
22
+ 'admin.offerCatalogItems.read',
23
+ 'admin.offerCatalogItems.create',
24
+ 'admin.products.create',
25
+ 'admin.sellers.events.create',
26
+ 'admin.sellers.events.update'
27
+ ];
28
+ for (const roleName of roleNames) {
29
+ for (const permission of permissions) {
30
+ const result = await roleRepo.addPermissionIfNotExists({
31
+ roleName: { $eq: roleName },
32
+ permission
33
+ });
34
+ console.log('permission added.', result, roleName);
35
+ }
36
+ }
37
+
38
+ roleNames = [
39
+ chevre.factory.role.organizationRole.RoleName.SellersOwner
40
+ ];
41
+ permissions = [
42
+ 'admin.sellers.eventSeries.*',
43
+ 'admin.customers.read',
44
+ 'admin.offers.read',
45
+ 'admin.offerCatalogItems.read',
46
+ 'admin.sellers.events.create',
47
+ 'admin.sellers.events.update',
48
+ 'admin.sellers.orders.read',
49
+ 'admin.sellers.reservations.read',
50
+ 'admin.sellers.assetTransactions.cancelReservation.write'
51
+ ];
52
+ for (const roleName of roleNames) {
53
+ for (const permission of permissions) {
54
+ const result = await roleRepo.addPermissionIfNotExists({
55
+ roleName: { $eq: roleName },
56
+ permission
57
+ });
58
+ console.log('permission added.', result, roleName);
59
+ }
60
+ }
61
+
62
+ roleNames = [
63
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
64
+ ];
65
+ permissions = [
66
+ 'admin.sellers.eventSeries.*',
67
+ 'admin.customers.read',
68
+ 'admin.offers.read',
69
+ 'admin.offerCatalogItems.read',
70
+ 'admin.sellers.events.create',
71
+ 'admin.sellers.events.update'
72
+ ];
73
+ for (const roleName of roleNames) {
74
+ for (const permission of permissions) {
75
+ const result = await roleRepo.addPermissionIfNotExists({
76
+ roleName: { $eq: roleName },
77
+ permission
78
+ });
79
+ console.log('permission added.', result, roleName);
80
+ }
81
+ }
82
+
83
+ roleNames = [
84
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
85
+ ];
86
+ permissions = [
87
+ 'admin.customers.read',
88
+ 'admin.offers.read',
89
+ 'admin.sellers.notes.create',
90
+ 'admin.sellers.notes.read',
91
+ 'admin.sellers.notes.update',
92
+ 'admin.sellers.orders.read',
93
+ 'admin.sellers.orders.update',
94
+ 'admin.sellers.reservations.read',
95
+ 'admin.sellers.reservations.attended',
96
+ 'admin.sellers.assetTransactions.cancelReservation.write'
97
+ ];
98
+ for (const roleName of roleNames) {
99
+ for (const permission of permissions) {
100
+ const result = await roleRepo.addPermissionIfNotExists({
101
+ roleName: { $eq: roleName },
102
+ permission
103
+ });
104
+ console.log('permission added.', result, roleName);
105
+ }
106
+ }
107
+
108
+ roleNames = [
109
+ chevre.factory.role.organizationRole.RoleName.TicketCollector
110
+ ];
111
+ permissions = [
112
+ 'admin.sellers.reservations.read',
113
+ 'admin.sellers.reservations.attended'
114
+ ];
115
+ for (const roleName of roleNames) {
116
+ for (const permission of permissions) {
117
+ const result = await roleRepo.addPermissionIfNotExists({
118
+ roleName: { $eq: roleName },
119
+ permission
120
+ });
121
+ console.log('permission added.', result, roleName);
122
+ }
123
+ }
124
+
125
+ }
126
+
127
+ main()
128
+ .then()
129
+ .catch(console.error);
@@ -8,17 +8,50 @@ async function main() {
8
8
 
9
9
  const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
10
 
11
- const roleNames = [
11
+ // const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ // chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ // chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
+ // ];
16
+ // for (const roleName of roleNames) {
17
+ // const result = await roleRepo.addPermissionIfNotExists({
18
+ // roleName: { $eq: roleName },
19
+ // permission: 'eventOffers.*'
20
+ // });
21
+ // console.log(result, roleName);
22
+ // }
23
+ let roleNames = [
24
+ chevre.factory.role.organizationRole.RoleName.InventoryManager
25
+ ];
26
+ let permissions = [
27
+ 'admin.creativeWorks.*'
28
+ ];
29
+ for (const roleName of roleNames) {
30
+ for (const permission of permissions) {
31
+ const result = await roleRepo.addPermissionIfNotExists({
32
+ roleName: { $eq: roleName },
33
+ permission
34
+ });
35
+ console.log('permission added.', result, roleName);
36
+ }
37
+ }
38
+
39
+ roleNames = [
12
40
  chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
41
  chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
42
  chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
43
  ];
44
+ permissions = [
45
+ 'admin.sellers.eventSeries.*'
46
+ ];
16
47
  for (const roleName of roleNames) {
17
- const result = await roleRepo.addPermissionIfNotExists({
18
- roleName: { $eq: roleName },
19
- permission: 'eventOffers.*'
20
- });
21
- console.log(result, roleName);
48
+ for (const permission of permissions) {
49
+ const result = await roleRepo.addPermissionIfNotExists({
50
+ roleName: { $eq: roleName },
51
+ permission
52
+ });
53
+ console.log('permission added.', result, roleName);
54
+ }
22
55
  }
23
56
  }
24
57
 
@@ -38,7 +38,6 @@ function countRedisKeyByProject(params: {
38
38
  {
39
39
  'project.id': {
40
40
  $eq: params.project.id
41
- // $in: useMongoAsStockHolderProjects
42
41
  },
43
42
  // startDate: {
44
43
  // $gte: params.now
@@ -93,30 +92,27 @@ function countRedisKeyByProject(params: {
93
92
  async function main() {
94
93
  const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection);
95
94
  const projectRepo = await chevre.repository.Project.createInstance(mongoose.connection);
96
- const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
95
+ // const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
97
96
  const stockHolderRepo = await chevre.repository.StockHolder.createInstance(
98
97
  client,
99
98
  mongoose.connection
100
99
  );
101
100
 
102
- const setting = await settingRepo.findOne(
103
- { project: { id: { $eq: '*' } } },
104
- ['useMongoAsStockHolderProjects', 'useMongoAsStockHolder']
105
- );
106
- const useMongoAsStockHolder = setting?.useMongoAsStockHolder === true;
107
- let useMongoAsStockHolderProjects =
108
- (Array.isArray(setting?.useMongoAsStockHolderProjects)) ? setting?.useMongoAsStockHolderProjects : [];
109
- if (useMongoAsStockHolder) {
110
- // 全プロジェクト
111
- useMongoAsStockHolderProjects = (await projectRepo.projectFields(
112
- {
113
- // id: { $eq: 'xxx' }
114
- },
115
- ['id']
116
- )).map(({ id }) => id);
117
- }
118
-
119
- useMongoAsStockHolderProjects = useMongoAsStockHolderProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
101
+ // const setting = await settingRepo.findOne(
102
+ // { project: { id: { $eq: '*' } } },
103
+ // ['useMongoAsStockHolder']
104
+ // );
105
+ // const useMongoAsStockHolder = setting?.useMongoAsStockHolder === true;
106
+ let checkingProjects: string[] = [];
107
+ // 全プロジェクト
108
+ checkingProjects = (await projectRepo.projectFields(
109
+ {
110
+ // id: { $eq: 'xxx' }
111
+ },
112
+ ['id']
113
+ )).map(({ id }) => id);
114
+
115
+ checkingProjects = checkingProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
120
116
 
121
117
  const results: {
122
118
  project: { id: string };
@@ -127,7 +123,7 @@ async function main() {
127
123
  const now = moment()
128
124
  .add(0, 'days')
129
125
  .toDate();
130
- for (const projectId of useMongoAsStockHolderProjects) {
126
+ for (const projectId of checkingProjects) {
131
127
  const { checkedCount, redisKeyCount } = await countRedisKeyByProject({
132
128
  project: { id: projectId },
133
129
  now
@@ -9,17 +9,18 @@ import { chevre } from '../../../lib/index';
9
9
  async function main() {
10
10
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
11
 
12
- const aggregateOfferRepo = await chevre.repository.AggregateOffer.createInstance(mongoose.connection);
12
+ const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
13
13
 
14
14
  let updateResult: any;
15
15
 
16
- updateResult = await aggregateOfferRepo.unsetUnnecessaryFields({
16
+ updateResult = await settingRepo.unsetUnnecessaryFields({
17
17
  filter: {
18
- 'offers.includedInDataCatalog.id': { $exists: true }
19
- // _id: { $eq: 'blj55y1mo' }
18
+ 'project.id': { $eq: '*' }
20
19
  },
21
20
  $unset: {
22
- 'offers.0.includedInDataCatalog': 1
21
+ useMongo4confirmationNumberFrom: 1,
22
+ useMongo4orderNumberFrom: 1,
23
+ useMongo4transactionNumberFrom: 1
23
24
  }
24
25
  });
25
26
  console.log(updateResult);
@@ -1,4 +1,4 @@
1
- import type { Connection } from 'mongoose';
1
+ import type { Connection, FilterQuery } from 'mongoose';
2
2
  import { ISetting } from './mongoose/schemas/setting';
3
3
  type IKeyOfProjection = keyof ISetting;
4
4
  export { ISetting };
@@ -32,4 +32,8 @@ export declare class SettingRepo {
32
32
  }, update: {
33
33
  $set: any;
34
34
  }): Promise<import("mongoose").UpdateWriteOpResult>;
35
+ unsetUnnecessaryFields(params: {
36
+ filter: FilterQuery<ISetting>;
37
+ $unset: any;
38
+ }): Promise<import("mongoose").UpdateWriteOpResult>;
35
39
  }
@@ -65,5 +65,11 @@ class SettingRepo {
65
65
  .exec();
66
66
  });
67
67
  }
68
+ unsetUnnecessaryFields(params) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ return this.settingModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
71
+ .exec();
72
+ });
73
+ }
68
74
  }
69
75
  exports.SettingRepo = SettingRepo;
@@ -12,35 +12,51 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.validateOrder = validateOrder;
13
13
  // import * as createDebug from 'debug';
14
14
  const moment = require("moment");
15
- const util = require("util");
16
15
  const factory = require("../../factory");
17
16
  const factory_1 = require("../offer/event/authorize/factory");
18
17
  const factory_2 = require("../offer/product/factory");
19
18
  const validateMovieTicket_1 = require("../transaction/placeOrder/confirm/validation/validateMovieTicket");
20
- function createCheckEventTasks(params) {
21
- const { order, project, reservationForIds } = params;
22
- const runsAt = new Date();
23
- return reservationForIds.map((reservationForId) => {
24
- const object = { id: reservationForId, typeOf: factory.eventType.ScreeningEvent };
25
- const data = {
26
- object,
27
- project: { id: project.id, typeOf: factory.organizationType.Project },
28
- typeOf: factory.actionType.CheckAction
29
- };
30
- const description = util.format('%s:%s:%s:%s', order.typeOf, order.orderNumber, factory.eventType.ScreeningEvent, reservationForId);
31
- return {
32
- description,
33
- project: { id: project.id, typeOf: factory.organizationType.Project },
34
- name: factory.taskName.CheckResource,
35
- status: factory.taskStatus.Ready,
36
- runsAt,
37
- remainingNumberOfTries: 3,
38
- numberOfTried: 0,
39
- executionResults: [],
40
- data
41
- };
42
- });
43
- }
19
+ // const debug = createDebug('chevre-domain:service:validation');
20
+ // type ICreatingCheckEventTask = Pick<
21
+ // factory.task.checkResource.IAttributes,
22
+ // 'data' | 'executionResults' | 'name' | 'numberOfTried' | 'project' | 'remainingNumberOfTries' | 'runsAt' | 'status' | 'description'
23
+ // > & {
24
+ // description: string;
25
+ // };
26
+ // function createCheckEventTasks(params: {
27
+ // order: Pick<factory.order.IOrder, 'orderNumber' | 'typeOf'>;
28
+ // project: { id: string };
29
+ // reservationForIds: string[];
30
+ // }): ICreatingCheckEventTask[] {
31
+ // const { order, project, reservationForIds } = params;
32
+ // const runsAt = new Date();
33
+ // return reservationForIds.map((reservationForId) => {
34
+ // const object: factory.task.checkResource.IResourceAsEvent = { id: reservationForId, typeOf: factory.eventType.ScreeningEvent };
35
+ // const data: factory.task.checkResource.IData = {
36
+ // object,
37
+ // project: { id: project.id, typeOf: factory.organizationType.Project },
38
+ // typeOf: factory.actionType.CheckAction
39
+ // };
40
+ // const description: string = util.format(
41
+ // '%s:%s:%s:%s',
42
+ // order.typeOf,
43
+ // order.orderNumber,
44
+ // factory.eventType.ScreeningEvent,
45
+ // reservationForId
46
+ // );
47
+ // return {
48
+ // description,
49
+ // project: { id: project.id, typeOf: factory.organizationType.Project },
50
+ // name: factory.taskName.CheckResource,
51
+ // status: factory.taskStatus.Ready,
52
+ // runsAt,
53
+ // remainingNumberOfTries: 3,
54
+ // numberOfTried: 0,
55
+ // executionResults: [],
56
+ // data
57
+ // };
58
+ // });
59
+ // }
44
60
  function validateOrder(params) {
45
61
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
46
62
  return (repos) => __awaiter(this, void 0, void 0, function* () {
@@ -216,18 +232,20 @@ function validateOrder(params) {
216
232
  throw new Error(`invalid ticketIdentifiers.length:${reservationReservedTicketIdentifiers.length} [expected:${acceptedOffers.length}]`);
217
233
  }
218
234
  }
235
+ // useMongoAsStockHolderProjectsの場合のイベント検証タスク作成を廃止(もう十分検証したので)(2025-07-11~)
219
236
  // add check event task(2025-05-01~)
220
- const setting = yield repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['useMongoAsStockHolderProjects']);
221
- const useMongoAsStockHolderProjects = setting === null || setting === void 0 ? void 0 : setting.useMongoAsStockHolderProjects;
222
- if (Array.isArray(useMongoAsStockHolderProjects) && useMongoAsStockHolderProjects.includes(params.project.id)) {
223
- const creatingCheckResourceTask = createCheckEventTasks({
224
- order: { orderNumber: order.orderNumber, typeOf: factory.order.OrderType.Order },
225
- project: { id: params.project.id },
226
- reservationForIds
227
- });
228
- if (creatingCheckResourceTask.length > 0) {
229
- yield repos.task.saveMany(creatingCheckResourceTask, { emitImmediately: true });
230
- }
231
- }
237
+ // const setting = <Pick<ISetting, 'useMongoAsStockHolderProjects'> | null>
238
+ // await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['useMongoAsStockHolderProjects']);
239
+ // const useMongoAsStockHolderProjects = setting?.useMongoAsStockHolderProjects;
240
+ // if (Array.isArray(useMongoAsStockHolderProjects) && useMongoAsStockHolderProjects.includes(params.project.id)) {
241
+ // const creatingCheckResourceTask = createCheckEventTasks({
242
+ // order: { orderNumber: order.orderNumber, typeOf: factory.order.OrderType.Order },
243
+ // project: { id: params.project.id },
244
+ // reservationForIds
245
+ // });
246
+ // if (creatingCheckResourceTask.length > 0) {
247
+ // await repos.task.saveMany(creatingCheckResourceTask, { emitImmediately: true });
248
+ // }
249
+ // }
232
250
  });
233
251
  }
package/package.json CHANGED
@@ -113,5 +113,5 @@
113
113
  "postversion": "git push origin --tags",
114
114
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
115
115
  },
116
- "version": "22.11.0-alpha.5"
116
+ "version": "22.11.0-alpha.6"
117
117
  }