@chevre/domain 22.11.0-alpha.11 → 22.11.0-alpha.13

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.
Files changed (78) hide show
  1. package/example/src/chevre/roles/{assignRoles.ts → assignGlobalRoles.ts} +19 -18
  2. package/example/src/chevre/roles/findPermissions.ts +84 -0
  3. package/example/src/chevre/roles/findRoleNames.ts +117 -0
  4. package/example/src/regex.ts +31 -0
  5. package/lib/chevre/eventEmitter/task.d.ts +10 -1
  6. package/lib/chevre/repo/member.d.ts +22 -5
  7. package/lib/chevre/repo/member.js +77 -28
  8. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
  9. package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
  10. package/lib/chevre/repo/role.d.ts +5 -4
  11. package/lib/chevre/repo/role.js +35 -32
  12. package/lib/chevre/repo/task.d.ts +9 -5
  13. package/lib/chevre/repo/task.js +9 -4
  14. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  15. package/lib/chevre/service/iam.d.ts +17 -7
  16. package/lib/chevre/service/iam.js +26 -6
  17. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
  18. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
  19. package/lib/chevre/service/notification.d.ts +2 -1
  20. package/lib/chevre/service/notification.js +3 -1
  21. package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
  22. package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
  23. package/lib/chevre/service/task/aggregateOnSystem.d.ts +1 -1
  24. package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
  25. package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
  26. package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
  27. package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
  28. package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
  29. package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
  30. package/lib/chevre/service/task/checkResource.d.ts +1 -1
  31. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
  32. package/lib/chevre/service/task/confirmPayTransaction.d.ts +1 -1
  33. package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
  34. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  35. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +1 -1
  36. package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
  37. package/lib/chevre/service/task/createEvent.d.ts +1 -1
  38. package/lib/chevre/service/task/deletePerson.d.ts +1 -1
  39. package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
  40. package/lib/chevre/service/task/givePointAward.d.ts +1 -1
  41. package/lib/chevre/service/task/handleNotification.d.ts +1 -1
  42. package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
  43. package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
  44. package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
  45. package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
  46. package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
  47. package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
  48. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
  49. package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
  50. package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
  51. package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
  52. package/lib/chevre/service/task/pay.d.ts +1 -1
  53. package/lib/chevre/service/task/placeOrder.d.ts +1 -1
  54. package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
  55. package/lib/chevre/service/task/refund.d.ts +1 -1
  56. package/lib/chevre/service/task/registerService.d.ts +1 -1
  57. package/lib/chevre/service/task/reserve.d.ts +1 -1
  58. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
  59. package/lib/chevre/service/task/returnOrder.d.ts +1 -1
  60. package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
  61. package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
  62. package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
  63. package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
  64. package/lib/chevre/service/task/sendOrder.d.ts +1 -1
  65. package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
  66. package/lib/chevre/service/task/useReservation.d.ts +1 -1
  67. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
  68. package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
  69. package/lib/chevre/service/task/voidPayment.d.ts +1 -1
  70. package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
  71. package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
  72. package/lib/chevre/service/task.d.ts +1 -23
  73. package/lib/chevre/service/task.js +3 -110
  74. package/lib/chevre/service/taskHandler.d.ts +26 -0
  75. package/lib/chevre/service/taskHandler.js +98 -0
  76. package/lib/chevre/settings/aggregation.d.ts +1 -1
  77. package/package.json +1 -1
  78. package/example/src/chevre/searchPermissions.ts +0 -46
@@ -1,4 +1,4 @@
1
- import type { IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
2
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { IOperationExecute } from '../task';
2
+ import type { IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
1
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,4 +1,4 @@
1
- import type { IOperationExecute } from '../task';
1
+ import type { IOperationExecute } from '../taskHandler';
2
2
  import * as factory from '../../factory';
3
3
  /**
4
4
  * タスク実行関数
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../../factory';
2
- import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../task';
2
+ import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
3
3
  /**
4
4
  * タスク実行関数
5
5
  */
@@ -1,7 +1,6 @@
1
1
  import { SendGridCredentials } from '../credentials/sendGrid';
2
2
  import type { IExecuteSettings as IMinimumExecuteSettings, INextFunction, IReadyTask, IRunningTask } from '../eventEmitter/task';
3
3
  import * as factory from '../factory';
4
- import type { IExecutableTask, IExecutableTaskKeys, TaskRepo } from '../repo/task';
5
4
  import { Settings } from '../settings';
6
5
  import { AggregationSettings } from '../settings/aggregation';
7
6
  interface ICredentialSettings {
@@ -12,14 +11,7 @@ interface IExecuteSettings extends IMinimumExecuteSettings {
12
11
  settings: Settings;
13
12
  aggregationSettings?: AggregationSettings;
14
13
  }
15
- interface IExecuteOptions {
16
- executeById: boolean;
17
- executeByName: boolean;
18
- }
19
14
  type IOperation<T> = (settings: IExecuteSettings) => Promise<T>;
20
- type IOperationExecute<T> = (settings: IExecuteSettings, options: IExecuteOptions) => Promise<T>;
21
- type ICallResult = void | Pick<factory.task.IExecutionResult, 'error'>;
22
- export type ICallableTaskOperation = (task: IExecutableTask<factory.taskName>) => IOperationExecute<ICallResult>;
23
15
  /**
24
16
  * タスク変更イベントを受けて実行する
25
17
  */
@@ -49,18 +41,4 @@ declare function executeOneIfExists(params: {
49
41
  $lt: Date;
50
42
  };
51
43
  }): IOperation<void>;
52
- /**
53
- * タスクを実行する
54
- */
55
- declare function execute(task: IExecutableTask<factory.taskName>, next?: INextFunction): IOperationExecute<void>;
56
- /**
57
- * add(2025-03-13~)
58
- */
59
- declare function notifyAbortedTasksByEmail(params: {
60
- dateAbortedGte: Date;
61
- }): (repos: {
62
- task: TaskRepo;
63
- }, settings: Pick<Settings, "abortedTasksWithoutReport">, credentials: {
64
- sendGrid: SendGridCredentials;
65
- }) => Promise<void>;
66
- export { ICallResult, IExecutableTaskKeys, IOperationExecute, executeById, executeOneIfExists, execute, notifyAbortedTasksByEmail };
44
+ export { executeById, executeOneIfExists };
@@ -11,15 +11,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.executeById = executeById;
13
13
  exports.executeOneIfExists = executeOneIfExists;
14
- exports.execute = execute;
15
- exports.notifyAbortedTasksByEmail = notifyAbortedTasksByEmail;
16
14
  /**
17
15
  * タスクサービス
18
16
  */
19
17
  const createDebug = require("debug");
20
- const moment = require("moment");
21
- const factory = require("../factory");
22
- const factory_1 = require("./notification/factory");
18
+ const taskHandler_1 = require("./taskHandler");
23
19
  const debug = createDebug('chevre-domain:service:task');
24
20
  /**
25
21
  * タスク変更イベントを受けて実行する
@@ -42,7 +38,7 @@ function executeById(params, next) {
42
38
  }
43
39
  // タスクがなければ終了
44
40
  if (task !== null) {
45
- yield execute(task, (typeof next === 'function') ? next : undefined)(settings, {
41
+ yield (0, taskHandler_1.executeTask)(task, (typeof next === 'function') ? next : undefined)(settings, {
46
42
  executeById: true,
47
43
  executeByName: false
48
44
  });
@@ -70,113 +66,10 @@ function executeOneIfExists(params) {
70
66
  }
71
67
  // タスクがなければ終了
72
68
  if (task !== null) {
73
- yield execute(task)(settings, {
69
+ yield (0, taskHandler_1.executeTask)(task)(settings, {
74
70
  executeById: false,
75
71
  executeByName: (typeof ((_a = params.name) === null || _a === void 0 ? void 0 : _a.$eq) === 'string')
76
72
  });
77
73
  }
78
74
  });
79
75
  }
80
- /**
81
- * タスクを実行する
82
- */
83
- function execute(task, next) {
84
- const now = new Date();
85
- debug('executing an executableTask...', task, now);
86
- return (settings, options) => __awaiter(this, void 0, void 0, function* () {
87
- const taskRepo = new (yield Promise.resolve().then(() => require('../repo/task'))).TaskRepo(settings.connection);
88
- try {
89
- // 期限検証(2024-04-23~)
90
- if (task.expires instanceof Date) {
91
- const taskExpired = moment(now)
92
- .isAfter(task.expires);
93
- if (taskExpired) {
94
- throw new factory.errors.Internal(`task expired [expires:${task.expires}]`);
95
- }
96
- }
97
- // タスク名の関数が定義されていなければ、TypeErrorとなる
98
- let callResult;
99
- const { call } = yield Promise.resolve(`${`./task/${task.name}`}`).then(s => require(s));
100
- switch (task.name) {
101
- case factory.taskName.AcceptCOAOffer:
102
- case factory.taskName.AggregateOnSystem:
103
- case factory.taskName.AuthorizePayment:
104
- case factory.taskName.CancelPendingReservation:
105
- case factory.taskName.CheckMovieTicket:
106
- case factory.taskName.DeletePerson:
107
- case factory.taskName.HandleNotification:
108
- case factory.taskName.ImportEventCapacitiesFromCOA:
109
- case factory.taskName.ImportEventsFromCOA:
110
- case factory.taskName.ImportOffersFromCOA:
111
- case factory.taskName.InvalidatePaymentUrl:
112
- case factory.taskName.OnAuthorizationCreated:
113
- case factory.taskName.Pay:
114
- case factory.taskName.PublishPaymentUrl:
115
- case factory.taskName.Refund:
116
- case factory.taskName.VoidPayTransaction:
117
- case factory.taskName.VoidReserveTransaction:
118
- case factory.taskName.ConfirmReserveTransaction:
119
- case factory.taskName.ReturnPayTransaction:
120
- case factory.taskName.ReturnReserveTransaction:
121
- case factory.taskName.SendEmailMessage:
122
- case factory.taskName.TriggerWebhook:
123
- callResult = yield call(task)(settings, options);
124
- break;
125
- default:
126
- yield call(task.data)(settings);
127
- }
128
- const result = {
129
- executedAt: now,
130
- endDate: new Date(),
131
- // enable overwriting task.executionResults.error on Executed(2024-05-29~)
132
- error: ((callResult === null || callResult === void 0 ? void 0 : callResult.error) instanceof Error)
133
- ? Object.assign(Object.assign({}, callResult.error), { message: callResult.error.message }) : ''
134
- };
135
- yield taskRepo.pushExecutionResultById({
136
- id: task.id,
137
- status: factory.taskStatus.Executed
138
- }, result, (typeof next === 'function') ? next : undefined);
139
- }
140
- catch (error) {
141
- debug('service.task.execute throwed an error. task:', task.name, task.id, 'error:', error === null || error === void 0 ? void 0 : error.name, error === null || error === void 0 ? void 0 : error.message);
142
- if (typeof error !== 'object') {
143
- error = { message: String(error) };
144
- }
145
- // 実行結果追加
146
- const result = {
147
- executedAt: now,
148
- endDate: new Date(),
149
- error: Object.assign(Object.assign({}, error), { code: error.code, message: error.message, name: error.name, stack: error.stack })
150
- };
151
- // 失敗してもここではステータスを戻さない(Runningのまま待機)
152
- yield taskRepo.pushExecutionResultById({
153
- id: task.id,
154
- status: task.status
155
- }, result, (typeof next === 'function') ? next : undefined);
156
- }
157
- });
158
- }
159
- let notification;
160
- /**
161
- * add(2025-03-13~)
162
- */
163
- function notifyAbortedTasksByEmail(params) {
164
- return (repos, settings, credentials) => __awaiter(this, void 0, void 0, function* () {
165
- const { abortedTasksWithoutReport } = settings;
166
- const abortedTasks = yield repos.task.projectFields(Object.assign({ status: { $eq: factory.taskStatus.Aborted }, dateAborted: { $gte: params.dateAbortedGte } }, (abortedTasksWithoutReport.length > 0)
167
- ? { name: { $nin: abortedTasksWithoutReport } }
168
- : undefined), []);
169
- if (abortedTasks.length > 0) {
170
- if (notification === undefined) {
171
- notification = yield Promise.resolve().then(() => require('./notification'));
172
- }
173
- // 開発者へ報告
174
- const message = (0, factory_1.tasks2lineNotify)({ tasks: abortedTasks });
175
- const notifyResult = yield notification.notifyByEmail({
176
- subject: message.subject, content: message.content,
177
- logLevel: 'error'
178
- })({}, credentials);
179
- debug('notifyResult:', notifyResult);
180
- }
181
- });
182
- }
@@ -0,0 +1,26 @@
1
+ import { SendGridCredentials } from '../credentials/sendGrid';
2
+ import type { IExecuteSettings as IMinimumExecuteSettings, INextFunction } from '../eventEmitter/task';
3
+ import * as factory from '../factory';
4
+ import type { IExecutableTask, IExecutableTaskKeys } from '../repo/task';
5
+ import { Settings } from '../settings';
6
+ import { AggregationSettings } from '../settings/aggregation';
7
+ interface ICredentialSettings {
8
+ sendGrid: SendGridCredentials;
9
+ }
10
+ interface IExecuteSettings extends IMinimumExecuteSettings {
11
+ credentials: ICredentialSettings;
12
+ settings: Settings;
13
+ aggregationSettings?: AggregationSettings;
14
+ }
15
+ interface IExecuteOptions {
16
+ executeById: boolean;
17
+ executeByName: boolean;
18
+ }
19
+ type IOperationExecute<T> = (settings: IExecuteSettings, options: IExecuteOptions) => Promise<T>;
20
+ type ICallResult = void | Pick<factory.task.IExecutionResult, 'error'>;
21
+ type ICallableTaskOperation = (task: IExecutableTask<factory.taskName>) => IOperationExecute<ICallResult>;
22
+ /**
23
+ * タスクを実行する
24
+ */
25
+ declare function executeTask(task: IExecutableTask<factory.taskName>, next?: INextFunction): IOperationExecute<void>;
26
+ export { ICallableTaskOperation, ICallResult, IExecutableTaskKeys, IOperationExecute, executeTask };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.executeTask = executeTask;
13
+ const createDebug = require("debug");
14
+ const moment = require("moment");
15
+ const factory = require("../factory");
16
+ const debug = createDebug('chevre-domain:service:task');
17
+ /**
18
+ * タスクを実行する
19
+ */
20
+ // tslint:disable-next-line:max-func-body-length
21
+ function executeTask(task, next) {
22
+ const now = new Date();
23
+ debug('executing an executableTask...', task, now);
24
+ return (settings, options) => __awaiter(this, void 0, void 0, function* () {
25
+ const taskRepo = new (yield Promise.resolve().then(() => require('../repo/task'))).TaskRepo(settings.connection);
26
+ try {
27
+ // 期限検証(2024-04-23~)
28
+ if (task.expires instanceof Date) {
29
+ const taskExpired = moment(now)
30
+ .isAfter(task.expires);
31
+ if (taskExpired) {
32
+ throw new factory.errors.Internal(`task expired [expires:${task.expires}]`);
33
+ }
34
+ }
35
+ // タスク名の関数が定義されていなければ、TypeErrorとなる
36
+ let callResult;
37
+ const { call } = yield Promise.resolve(`${`./task/${task.name}`}`).then(s => require(s));
38
+ switch (task.name) {
39
+ case factory.taskName.AcceptCOAOffer:
40
+ case factory.taskName.AggregateOnSystem:
41
+ case factory.taskName.AuthorizePayment:
42
+ case factory.taskName.CancelPendingReservation:
43
+ case factory.taskName.CheckMovieTicket:
44
+ case factory.taskName.DeletePerson:
45
+ case factory.taskName.HandleNotification:
46
+ case factory.taskName.ImportEventCapacitiesFromCOA:
47
+ case factory.taskName.ImportEventsFromCOA:
48
+ case factory.taskName.ImportOffersFromCOA:
49
+ case factory.taskName.InvalidatePaymentUrl:
50
+ case factory.taskName.OnAuthorizationCreated:
51
+ case factory.taskName.Pay:
52
+ case factory.taskName.PublishPaymentUrl:
53
+ case factory.taskName.Refund:
54
+ case factory.taskName.VoidPayTransaction:
55
+ case factory.taskName.VoidReserveTransaction:
56
+ case factory.taskName.ConfirmReserveTransaction:
57
+ case factory.taskName.ReturnPayTransaction:
58
+ case factory.taskName.ReturnReserveTransaction:
59
+ case factory.taskName.SendEmailMessage:
60
+ case factory.taskName.TriggerWebhook:
61
+ callResult = yield call(task)(settings, options);
62
+ break;
63
+ default:
64
+ yield call(task.data)(settings);
65
+ }
66
+ const result = {
67
+ executedAt: now,
68
+ endDate: new Date(),
69
+ // enable overwriting task.executionResults.error on Executed(2024-05-29~)
70
+ error: ((callResult === null || callResult === void 0 ? void 0 : callResult.error) instanceof Error)
71
+ ? Object.assign(Object.assign({}, callResult.error), { message: callResult.error.message }) : ''
72
+ };
73
+ yield taskRepo.pushExecutionResultById({
74
+ id: task.id,
75
+ status: factory.taskStatus.Executed,
76
+ remainingNumberOfTries: task.remainingNumberOfTries
77
+ }, result, (typeof next === 'function') ? next : undefined);
78
+ }
79
+ catch (error) {
80
+ debug('service.task.execute throwed an error. task:', task.name, task.id, 'error:', error === null || error === void 0 ? void 0 : error.name, error === null || error === void 0 ? void 0 : error.message);
81
+ if (typeof error !== 'object') {
82
+ error = { message: String(error) };
83
+ }
84
+ // 実行結果追加
85
+ const result = {
86
+ executedAt: now,
87
+ endDate: new Date(),
88
+ error: Object.assign(Object.assign({}, error), { code: error.code, message: error.message, name: error.name, stack: error.stack })
89
+ };
90
+ // 失敗してもここではステータスを戻さない(Runningのまま待機)
91
+ yield taskRepo.pushExecutionResultById({
92
+ id: task.id,
93
+ status: task.status,
94
+ remainingNumberOfTries: task.remainingNumberOfTries
95
+ }, result, (typeof next === 'function') ? next : undefined);
96
+ }
97
+ });
98
+ }
@@ -1,5 +1,5 @@
1
1
  import * as factory from '../factory';
2
- import type { ICallableTaskOperation, ICallResult, IOperationExecute } from '../service/task';
2
+ import type { ICallableTaskOperation, ICallResult, IOperationExecute } from '../service/taskHandler';
3
3
  interface IOnOrderStatusChanged {
4
4
  informOrder2hub?: factory.project.IInformParams[];
5
5
  }
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": "22.11.0-alpha.11"
118
+ "version": "22.11.0-alpha.13"
119
119
  }
@@ -1,46 +0,0 @@
1
- // tslint:disable:no-console
2
- import * as moment from 'moment';
3
- import * as mongoose from 'mongoose';
4
-
5
- import { chevre } from '../../../lib/index';
6
-
7
- const PROJECT_ID = String(process.env.PROJECT_ID);
8
- const memberId = 'xxx';
9
-
10
- async function main() {
11
- await mongoose.connect(<string>process.env.MONGOLAB_URI);
12
-
13
- const memberRepo = await chevre.repository.Member.createInstance(mongoose.connection);
14
- const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
15
-
16
- let now: Date;
17
-
18
- now = new Date();
19
- const searchPermissionsResult = await (await chevre.service.iam.createService()).searchPermissions({
20
- project: { id: PROJECT_ID },
21
- member: {
22
- id: memberId,
23
- memberOf: {
24
- id: PROJECT_ID,
25
- typeOf: chevre.factory.organizationType.Project
26
- }
27
- }
28
- })({
29
- member: memberRepo,
30
- role: roleRepo
31
- });
32
- console.log('time cost:', moment()
33
- .diff(now));
34
-
35
- console.log(searchPermissionsResult);
36
- console.log(searchPermissionsResult.permissions.length);
37
-
38
- // console.log(aggregateRoleNamesResult);
39
- // console.log(aggregateRoleNamesResult.length);
40
- // console.log(aggregatePermissionsResult);
41
- // console.log(aggregatePermissionsResult.length);
42
- }
43
-
44
- main()
45
- .then(console.log)
46
- .catch(console.error);