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

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,132 @@
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.reservations.useActions.read',
51
+ 'admin.sellers.assetTransactions.cancelReservation.write'
52
+ ];
53
+ for (const roleName of roleNames) {
54
+ for (const permission of permissions) {
55
+ const result = await roleRepo.addPermissionIfNotExists({
56
+ roleName: { $eq: roleName },
57
+ permission
58
+ });
59
+ console.log('permission added.', result, roleName);
60
+ }
61
+ }
62
+
63
+ roleNames = [
64
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
65
+ ];
66
+ permissions = [
67
+ 'admin.sellers.eventSeries.*',
68
+ 'admin.customers.read',
69
+ 'admin.offers.read',
70
+ 'admin.offerCatalogItems.read',
71
+ 'admin.sellers.events.create',
72
+ 'admin.sellers.events.update'
73
+ ];
74
+ for (const roleName of roleNames) {
75
+ for (const permission of permissions) {
76
+ const result = await roleRepo.addPermissionIfNotExists({
77
+ roleName: { $eq: roleName },
78
+ permission
79
+ });
80
+ console.log('permission added.', result, roleName);
81
+ }
82
+ }
83
+
84
+ roleNames = [
85
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
86
+ ];
87
+ permissions = [
88
+ 'admin.customers.read',
89
+ 'admin.offers.read',
90
+ 'admin.sellers.notes.create',
91
+ 'admin.sellers.notes.read',
92
+ 'admin.sellers.notes.update',
93
+ 'admin.sellers.orders.read',
94
+ 'admin.sellers.orders.update',
95
+ 'admin.sellers.reservations.read',
96
+ 'admin.sellers.reservations.useActions.read',
97
+ 'admin.sellers.reservations.useActions.create',
98
+ 'admin.sellers.assetTransactions.cancelReservation.write'
99
+ ];
100
+ for (const roleName of roleNames) {
101
+ for (const permission of permissions) {
102
+ const result = await roleRepo.addPermissionIfNotExists({
103
+ roleName: { $eq: roleName },
104
+ permission
105
+ });
106
+ console.log('permission added.', result, roleName);
107
+ }
108
+ }
109
+
110
+ roleNames = [
111
+ chevre.factory.role.organizationRole.RoleName.TicketCollector
112
+ ];
113
+ permissions = [
114
+ 'admin.sellers.reservations.read',
115
+ 'admin.sellers.reservations.useActions.read',
116
+ 'admin.sellers.reservations.useActions.create'
117
+ ];
118
+ for (const roleName of roleNames) {
119
+ for (const permission of permissions) {
120
+ const result = await roleRepo.addPermissionIfNotExists({
121
+ roleName: { $eq: roleName },
122
+ permission
123
+ });
124
+ console.log('permission added.', result, roleName);
125
+ }
126
+ }
127
+
128
+ }
129
+
130
+ main()
131
+ .then()
132
+ .catch(console.error);
@@ -0,0 +1,37 @@
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
+ const roleNames = [
13
+ chevre.factory.role.organizationRole.RoleName.Customer,
14
+ chevre.factory.role.organizationRole.RoleName.InventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.POS,
16
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
17
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
18
+ chevre.factory.role.organizationRole.RoleName.TicketClerk,
19
+ chevre.factory.role.organizationRole.RoleName.User
20
+ ];
21
+ const permissions = [
22
+ 'db.primary.read'
23
+ ];
24
+ for (const roleName of roleNames) {
25
+ for (const permission of permissions) {
26
+ const result = await roleRepo.addPermissionIfNotExists({
27
+ roleName: { $eq: roleName },
28
+ permission
29
+ });
30
+ console.log('permission added.', result, roleName);
31
+ }
32
+ }
33
+ }
34
+
35
+ main()
36
+ .then()
37
+ .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,22 @@ 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
- }
101
+ let checkingProjects: string[] = [];
102
+ // 全プロジェクト
103
+ checkingProjects = (await projectRepo.projectFields(
104
+ {
105
+ // id: { $eq: 'xxx' }
106
+ },
107
+ ['id']
108
+ )).map(({ id }) => id);
118
109
 
119
- useMongoAsStockHolderProjects = useMongoAsStockHolderProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
110
+ checkingProjects = checkingProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
120
111
 
121
112
  const results: {
122
113
  project: { id: string };
@@ -127,7 +118,7 @@ async function main() {
127
118
  const now = moment()
128
119
  .add(0, 'days')
129
120
  .toDate();
130
- for (const projectId of useMongoAsStockHolderProjects) {
121
+ for (const projectId of checkingProjects) {
131
122
  const { checkedCount, redisKeyCount } = await countRedisKeyByProject({
132
123
  project: { id: projectId },
133
124
  now
@@ -9,17 +9,20 @@ 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
+ useMongoAsStockHolder: 1,
22
+ useMongoAsStockHolderProjects: 1
23
+ // useMongo4confirmationNumberFrom: 1,
24
+ // useMongo4orderNumberFrom: 1,
25
+ // useMongo4transactionNumberFrom: 1
23
26
  }
24
27
  });
25
28
  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;
@@ -287,17 +287,6 @@ class StockHolderRepo {
287
287
  throw new factory.errors.Argument('startDate', 'must be Date');
288
288
  }
289
289
  let useMongoose = false;
290
- // useMongoAsStockHolder設定有の場合のみmongo利用(2025-04-18~)
291
- // const useMongoAsStockHolderBySettings = await this.useMongoAsStockHolderBySettings({ project: { id: params.project.id } });
292
- // if (useMongoAsStockHolderBySettings) {
293
- // const redisKeyExists = await this.redisKeyExists(params);
294
- // if (redisKeyExists) {
295
- // useMongoose = false;
296
- // } else {
297
- // // redis keyが存在しなければmongo利用
298
- // useMongoose = true;
299
- // }
300
- // }
301
290
  // always use mongo(2025-05-21~)
302
291
  const redisKeyExists = yield this.redisKeyExists(params);
303
292
  if (redisKeyExists) {
@@ -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.7"
117
117
  }