@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.
- package/example/src/chevre/roles/{assignRoles.ts → assignGlobalRoles.ts} +19 -18
- package/example/src/chevre/roles/findPermissions.ts +84 -0
- package/example/src/chevre/roles/findRoleNames.ts +117 -0
- package/example/src/regex.ts +31 -0
- package/lib/chevre/eventEmitter/task.d.ts +10 -1
- package/lib/chevre/repo/member.d.ts +22 -5
- package/lib/chevre/repo/member.js +77 -28
- package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
- package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
- package/lib/chevre/repo/role.d.ts +5 -4
- package/lib/chevre/repo/role.js +35 -32
- package/lib/chevre/repo/task.d.ts +9 -5
- package/lib/chevre/repo/task.js +9 -4
- package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
- package/lib/chevre/service/iam.d.ts +17 -7
- package/lib/chevre/service/iam.js +26 -6
- package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
- package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
- package/lib/chevre/service/notification.d.ts +2 -1
- package/lib/chevre/service/notification.js +3 -1
- package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
- package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
- package/lib/chevre/service/task/aggregateOnSystem.d.ts +1 -1
- package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
- package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
- package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
- package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
- package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
- package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
- package/lib/chevre/service/task/checkResource.d.ts +1 -1
- package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
- package/lib/chevre/service/task/confirmPayTransaction.d.ts +1 -1
- package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
- package/lib/chevre/service/task/confirmReserveTransaction.d.ts +1 -1
- package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
- package/lib/chevre/service/task/createEvent.d.ts +1 -1
- package/lib/chevre/service/task/deletePerson.d.ts +1 -1
- package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
- package/lib/chevre/service/task/givePointAward.d.ts +1 -1
- package/lib/chevre/service/task/handleNotification.d.ts +1 -1
- package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
- package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
- package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
- package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
- package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
- package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
- package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
- package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
- package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
- package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
- package/lib/chevre/service/task/pay.d.ts +1 -1
- package/lib/chevre/service/task/placeOrder.d.ts +1 -1
- package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
- package/lib/chevre/service/task/refund.d.ts +1 -1
- package/lib/chevre/service/task/registerService.d.ts +1 -1
- package/lib/chevre/service/task/reserve.d.ts +1 -1
- package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
- package/lib/chevre/service/task/returnOrder.d.ts +1 -1
- package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
- package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
- package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
- package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
- package/lib/chevre/service/task/sendOrder.d.ts +1 -1
- package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
- package/lib/chevre/service/task/useReservation.d.ts +1 -1
- package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
- package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
- package/lib/chevre/service/task/voidPayment.d.ts +1 -1
- package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
- package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
- package/lib/chevre/service/task.d.ts +1 -23
- package/lib/chevre/service/task.js +3 -110
- package/lib/chevre/service/taskHandler.d.ts +26 -0
- package/lib/chevre/service/taskHandler.js +98 -0
- package/lib/chevre/settings/aggregation.d.ts +1 -1
- package/package.json +1 -1
- package/example/src/chevre/searchPermissions.ts +0 -46
package/lib/chevre/repo/role.js
CHANGED
|
@@ -77,39 +77,42 @@ class RoleRepo {
|
|
|
77
77
|
.exec();
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
// migrate to findDistinctPermissionsByRoleName(2025-07-21~)
|
|
81
|
+
// public async aggregatePermissions(params: {
|
|
82
|
+
// roleName: { $in: string[] };
|
|
83
|
+
// }): Promise<{ _id: string }[]> {
|
|
84
|
+
// const matchStages: IMatchStage[] = [
|
|
85
|
+
// { $match: { roleName: { $in: params.roleName.$in } } }
|
|
86
|
+
// ];
|
|
87
|
+
// const aggregate = this.roleModel.aggregate([
|
|
88
|
+
// ...matchStages,
|
|
89
|
+
// {
|
|
90
|
+
// $unwind: {
|
|
91
|
+
// path: '$permissions'
|
|
92
|
+
// }
|
|
93
|
+
// },
|
|
94
|
+
// {
|
|
95
|
+
// $project: {
|
|
96
|
+
// _id: 0,
|
|
97
|
+
// permission: '$permissions'
|
|
98
|
+
// }
|
|
99
|
+
// },
|
|
100
|
+
// {
|
|
101
|
+
// $group: {
|
|
102
|
+
// _id: '$permission'
|
|
103
|
+
// }
|
|
104
|
+
// }
|
|
105
|
+
// ]);
|
|
106
|
+
// return aggregate.option({ maxTimeMS: MONGO_MAX_TIME_MS })
|
|
107
|
+
// .exec();
|
|
108
|
+
// }
|
|
109
|
+
/**
|
|
110
|
+
* distinctコマンドを使用して、ロールから権限を検索する
|
|
111
|
+
*/
|
|
112
|
+
findUniquePermissionsByRoleName(params) {
|
|
81
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
];
|
|
85
|
-
const aggregate = this.roleModel.aggregate([
|
|
86
|
-
// ...(typeof params.sort?.productID === 'number')
|
|
87
|
-
// ? [{ $sort: { productID: params.sort.productID } }]
|
|
88
|
-
// : [],
|
|
89
|
-
...matchStages,
|
|
90
|
-
{
|
|
91
|
-
$unwind: {
|
|
92
|
-
path: '$permissions'
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
$project: {
|
|
97
|
-
_id: 0,
|
|
98
|
-
permission: '$permissions'
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
$group: {
|
|
103
|
-
_id: '$permission'
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
]);
|
|
107
|
-
// if (typeof params.limit === 'number' && params.limit > 0) {
|
|
108
|
-
// const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
|
|
109
|
-
// aggregate.limit(params.limit * page)
|
|
110
|
-
// .skip(params.limit * (page - 1));
|
|
111
|
-
// }
|
|
112
|
-
return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
114
|
+
return this.roleModel.distinct('permissions', { roleName: { $in: params.roleName.$in } })
|
|
115
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
113
116
|
.exec();
|
|
114
117
|
});
|
|
115
118
|
}
|
|
@@ -106,6 +106,9 @@ export declare class TaskRepo {
|
|
|
106
106
|
}): Promise<{
|
|
107
107
|
count: number;
|
|
108
108
|
}>;
|
|
109
|
+
/**
|
|
110
|
+
* 実行日時を一定期間過ぎたReadyタスクについて、Runningスタータスに変更した上で、Runningイベントを発生させる
|
|
111
|
+
*/
|
|
109
112
|
emitRunningIfExists(params: {
|
|
110
113
|
name?: {
|
|
111
114
|
$eq?: factory.taskName;
|
|
@@ -121,7 +124,7 @@ export declare class TaskRepo {
|
|
|
121
124
|
numberOfTried?: factory.sortType;
|
|
122
125
|
runsAt: factory.sortType;
|
|
123
126
|
};
|
|
124
|
-
}): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
|
|
127
|
+
}, next: INextFunction): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
|
|
125
128
|
findExecutableOne(params: {
|
|
126
129
|
name?: {
|
|
127
130
|
$eq?: factory.taskName;
|
|
@@ -169,6 +172,7 @@ export declare class TaskRepo {
|
|
|
169
172
|
*/
|
|
170
173
|
id: string;
|
|
171
174
|
status: factory.taskStatus;
|
|
175
|
+
remainingNumberOfTries: number;
|
|
172
176
|
}, executionResult: factory.task.IExecutionResult, next?: INextFunction): Promise<void>;
|
|
173
177
|
/**
|
|
174
178
|
* 特定タスク検索
|
|
@@ -213,6 +217,7 @@ export declare class TaskRepo {
|
|
|
213
217
|
count: number;
|
|
214
218
|
}>;
|
|
215
219
|
getCursor(conditions: FilterQuery<factory.task.ITask<factory.taskName>>, projection: ProjectionType<factory.task.ITask<factory.taskName>>): import("mongoose").Cursor<import("mongoose").Document<unknown, {}, {
|
|
220
|
+
remainingNumberOfTries: number;
|
|
216
221
|
alternateName?: string | undefined;
|
|
217
222
|
identifier?: string | undefined;
|
|
218
223
|
description?: string | undefined;
|
|
@@ -220,7 +225,6 @@ export declare class TaskRepo {
|
|
|
220
225
|
name: factory.taskName;
|
|
221
226
|
status: factory.taskStatus;
|
|
222
227
|
runsAt: Date;
|
|
223
|
-
remainingNumberOfTries: number;
|
|
224
228
|
lastTriedAt?: Date | undefined;
|
|
225
229
|
numberOfTried: number;
|
|
226
230
|
executionResults: import("@chevre/factory/lib/task").IExecutionResult[];
|
|
@@ -229,6 +233,7 @@ export declare class TaskRepo {
|
|
|
229
233
|
dateAborted?: Date | undefined;
|
|
230
234
|
expires?: Date | undefined;
|
|
231
235
|
}> & {
|
|
236
|
+
remainingNumberOfTries: number;
|
|
232
237
|
alternateName?: string | undefined;
|
|
233
238
|
identifier?: string | undefined;
|
|
234
239
|
description?: string | undefined;
|
|
@@ -236,7 +241,6 @@ export declare class TaskRepo {
|
|
|
236
241
|
name: factory.taskName;
|
|
237
242
|
status: factory.taskStatus;
|
|
238
243
|
runsAt: Date;
|
|
239
|
-
remainingNumberOfTries: number;
|
|
240
244
|
lastTriedAt?: Date | undefined;
|
|
241
245
|
numberOfTried: number;
|
|
242
246
|
executionResults: import("@chevre/factory/lib/task").IExecutionResult[];
|
|
@@ -247,6 +251,7 @@ export declare class TaskRepo {
|
|
|
247
251
|
} & {
|
|
248
252
|
_id: import("mongoose").Types.ObjectId;
|
|
249
253
|
}, import("mongoose").QueryOptions<import("mongoose").Document<unknown, {}, {
|
|
254
|
+
remainingNumberOfTries: number;
|
|
250
255
|
alternateName?: string | undefined;
|
|
251
256
|
identifier?: string | undefined;
|
|
252
257
|
description?: string | undefined;
|
|
@@ -254,7 +259,6 @@ export declare class TaskRepo {
|
|
|
254
259
|
name: factory.taskName;
|
|
255
260
|
status: factory.taskStatus;
|
|
256
261
|
runsAt: Date;
|
|
257
|
-
remainingNumberOfTries: number;
|
|
258
262
|
lastTriedAt?: Date | undefined;
|
|
259
263
|
numberOfTried: number;
|
|
260
264
|
executionResults: import("@chevre/factory/lib/task").IExecutionResult[];
|
|
@@ -263,6 +267,7 @@ export declare class TaskRepo {
|
|
|
263
267
|
dateAborted?: Date | undefined;
|
|
264
268
|
expires?: Date | undefined;
|
|
265
269
|
}> & {
|
|
270
|
+
remainingNumberOfTries: number;
|
|
266
271
|
alternateName?: string | undefined;
|
|
267
272
|
identifier?: string | undefined;
|
|
268
273
|
description?: string | undefined;
|
|
@@ -270,7 +275,6 @@ export declare class TaskRepo {
|
|
|
270
275
|
name: factory.taskName;
|
|
271
276
|
status: factory.taskStatus;
|
|
272
277
|
runsAt: Date;
|
|
273
|
-
remainingNumberOfTries: number;
|
|
274
278
|
lastTriedAt?: Date | undefined;
|
|
275
279
|
numberOfTried: number;
|
|
276
280
|
executionResults: import("@chevre/factory/lib/task").IExecutionResult[];
|
package/lib/chevre/repo/task.js
CHANGED
|
@@ -552,7 +552,11 @@ class TaskRepo {
|
|
|
552
552
|
return { count };
|
|
553
553
|
});
|
|
554
554
|
}
|
|
555
|
-
|
|
555
|
+
/**
|
|
556
|
+
* 実行日時を一定期間過ぎたReadyタスクについて、Runningスタータスに変更した上で、Runningイベントを発生させる
|
|
557
|
+
*/
|
|
558
|
+
emitRunningIfExists(params, next // support next function(2025-08-02~)
|
|
559
|
+
) {
|
|
556
560
|
return __awaiter(this, void 0, void 0, function* () {
|
|
557
561
|
var _a, _b;
|
|
558
562
|
if (!(params.runsAt.$lt instanceof Date)) {
|
|
@@ -591,7 +595,7 @@ class TaskRepo {
|
|
|
591
595
|
task_1.taskEventEmitter.emitTaskStatusChanged({
|
|
592
596
|
id: doc.id,
|
|
593
597
|
status: factory.taskStatus.Running
|
|
594
|
-
});
|
|
598
|
+
}, next);
|
|
595
599
|
return doc;
|
|
596
600
|
});
|
|
597
601
|
}
|
|
@@ -800,7 +804,7 @@ class TaskRepo {
|
|
|
800
804
|
// support customr function(2025-05-25~)
|
|
801
805
|
next) {
|
|
802
806
|
return __awaiter(this, void 0, void 0, function* () {
|
|
803
|
-
const { id, status } = params;
|
|
807
|
+
const { id, status, remainingNumberOfTries } = params;
|
|
804
808
|
yield this.taskModel.updateOne({ _id: { $eq: id } }, {
|
|
805
809
|
$set: { status },
|
|
806
810
|
$push: { executionResults: executionResult }
|
|
@@ -808,7 +812,8 @@ class TaskRepo {
|
|
|
808
812
|
.exec();
|
|
809
813
|
// emit event(2025-05-26~)
|
|
810
814
|
if (typeof next === 'function') {
|
|
811
|
-
|
|
815
|
+
const changedTask = { id, status, remainingNumberOfTries, executionResult };
|
|
816
|
+
task_1.taskEventEmitter.emitTaskStatusChanged(changedTask, next);
|
|
812
817
|
}
|
|
813
818
|
});
|
|
814
819
|
}
|
|
@@ -18,7 +18,7 @@ export declare function validateStartParams(params: IStartParams): (repos: {
|
|
|
18
18
|
assetTransaction: AssetTransactionRepo;
|
|
19
19
|
}) => Promise<{
|
|
20
20
|
reserveTransaction: import("@chevre/factory/lib/assetTransaction/reserve").ITransaction | undefined;
|
|
21
|
-
reservations: (Pick<import("@chevre/factory/lib/reservation/event").IReservation, "id" | "typeOf" | "
|
|
21
|
+
reservations: (Pick<import("@chevre/factory/lib/reservation/event").IReservation, "id" | "typeOf" | "issuedThrough" | "reservationNumber"> & {
|
|
22
22
|
reservationFor: Pick<factory.reservation.IReservationFor<factory.reservationType.EventReservation>, "id" | "typeOf">;
|
|
23
23
|
})[] | undefined;
|
|
24
24
|
}>;
|
|
@@ -8,7 +8,7 @@ export type IPermission = string;
|
|
|
8
8
|
/**
|
|
9
9
|
* プロジェクトメンバーの権限を検索する
|
|
10
10
|
*/
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function findProjectPermissionsByMember(params: {
|
|
12
12
|
project: {
|
|
13
13
|
id: string;
|
|
14
14
|
};
|
|
@@ -23,10 +23,20 @@ export declare function searchPermissions(params: {
|
|
|
23
23
|
member: MemberRepo;
|
|
24
24
|
role: RoleRepo;
|
|
25
25
|
}) => Promise<{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
roleNames: string[];
|
|
27
|
+
permissions: string[];
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* グローバル権限を検索する
|
|
31
|
+
*/
|
|
32
|
+
export declare function findGloablPermissionsByMember(params: {
|
|
33
|
+
member: {
|
|
34
|
+
id: string;
|
|
35
|
+
};
|
|
36
|
+
}): (repos: {
|
|
37
|
+
member: MemberRepo;
|
|
38
|
+
role: RoleRepo;
|
|
39
|
+
}) => Promise<{
|
|
40
|
+
roleNames: string[];
|
|
41
|
+
permissions: string[];
|
|
32
42
|
}>;
|
|
@@ -9,14 +9,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.findProjectPermissionsByMember = findProjectPermissionsByMember;
|
|
13
|
+
exports.findGloablPermissionsByMember = findGloablPermissionsByMember;
|
|
13
14
|
/**
|
|
14
15
|
* プロジェクトメンバーの権限を検索する
|
|
15
16
|
*/
|
|
16
|
-
function
|
|
17
|
+
function findProjectPermissionsByMember(params) {
|
|
17
18
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
18
19
|
let permissions = [];
|
|
19
|
-
const hasRole =
|
|
20
|
+
// const hasRole = await repos.member.aggregateRoleNames({
|
|
21
|
+
const roleNames = yield repos.member.findRoleNamesByMember({
|
|
20
22
|
project: { id: { $eq: params.project.id } },
|
|
21
23
|
member: {
|
|
22
24
|
id: { $eq: params.member.id },
|
|
@@ -26,9 +28,27 @@ function searchPermissions(params) {
|
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
});
|
|
29
|
-
if (
|
|
30
|
-
permissions =
|
|
31
|
+
if (roleNames.length > 0) {
|
|
32
|
+
// permissions = await repos.role.aggregatePermissions({ roleName: { $in: hasRole.map((r) => r.roleName) } });
|
|
33
|
+
permissions = yield repos.role.findUniquePermissionsByRoleName({ roleName: { $in: roleNames } });
|
|
31
34
|
}
|
|
32
|
-
return {
|
|
35
|
+
return { roleNames, permissions };
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* グローバル権限を検索する
|
|
40
|
+
*/
|
|
41
|
+
function findGloablPermissionsByMember(params) {
|
|
42
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
let permissions = [];
|
|
44
|
+
const roleNames = yield repos.member.findGlobalRoleNamesByMember({
|
|
45
|
+
member: {
|
|
46
|
+
id: { $eq: params.member.id }
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
if (roleNames.length > 0) {
|
|
50
|
+
permissions = yield repos.role.findUniquePermissionsByRoleName({ roleName: { $in: roleNames } });
|
|
51
|
+
}
|
|
52
|
+
return { roleNames, permissions };
|
|
33
53
|
});
|
|
34
54
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SendGridCredentials } from '../../credentials/sendGrid';
|
|
2
|
+
import type { TaskRepo } from '../../repo/task';
|
|
3
|
+
import { Settings } from '../../settings';
|
|
4
|
+
/**
|
|
5
|
+
* 中止されたタスクリストをEメールで通知する
|
|
6
|
+
* add(2025-03-13~)
|
|
7
|
+
*/
|
|
8
|
+
declare function notifyAbortedTasksByEmail(params: {
|
|
9
|
+
dateAbortedGte: Date;
|
|
10
|
+
}): (repos: {
|
|
11
|
+
task: TaskRepo;
|
|
12
|
+
}, settings: Pick<Settings, "abortedTasksWithoutReport">, credentials: {
|
|
13
|
+
sendGrid: SendGridCredentials;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
export { notifyAbortedTasksByEmail };
|
|
@@ -0,0 +1,38 @@
|
|
|
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.notifyAbortedTasksByEmail = notifyAbortedTasksByEmail;
|
|
13
|
+
const createDebug = require("debug");
|
|
14
|
+
const factory = require("../../factory");
|
|
15
|
+
const factory_1 = require("./factory");
|
|
16
|
+
const notifyByEmail_1 = require("./notifyByEmail");
|
|
17
|
+
const debug = createDebug('chevre-domain:service:notification');
|
|
18
|
+
/**
|
|
19
|
+
* 中止されたタスクリストをEメールで通知する
|
|
20
|
+
* add(2025-03-13~)
|
|
21
|
+
*/
|
|
22
|
+
function notifyAbortedTasksByEmail(params) {
|
|
23
|
+
return (repos, settings, credentials) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const { abortedTasksWithoutReport } = settings;
|
|
25
|
+
const abortedTasks = yield repos.task.projectFields(Object.assign({ status: { $eq: factory.taskStatus.Aborted }, dateAborted: { $gte: params.dateAbortedGte } }, (abortedTasksWithoutReport.length > 0)
|
|
26
|
+
? { name: { $nin: abortedTasksWithoutReport } }
|
|
27
|
+
: undefined), []);
|
|
28
|
+
if (abortedTasks.length > 0) {
|
|
29
|
+
// 開発者へ報告
|
|
30
|
+
const message = (0, factory_1.tasks2lineNotify)({ tasks: abortedTasks });
|
|
31
|
+
const notifyResult = yield (0, notifyByEmail_1.notifyByEmail)({
|
|
32
|
+
subject: message.subject, content: message.content,
|
|
33
|
+
logLevel: 'error'
|
|
34
|
+
})({}, credentials);
|
|
35
|
+
debug('notifyResult:', notifyResult);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { notifyAbortedTasksByEmail } from './notification/notifyAbortedTasksByEmail';
|
|
1
2
|
import { notifyByEmail } from './notification/notifyByEmail';
|
|
2
3
|
import { sendEmailMessage } from './notification/sendEmailMessage';
|
|
3
4
|
import { triggerWebhook } from './notification/triggerWebhook';
|
|
4
|
-
export { notifyByEmail, sendEmailMessage, triggerWebhook };
|
|
5
|
+
export { notifyAbortedTasksByEmail, notifyByEmail, sendEmailMessage, triggerWebhook };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.triggerWebhook = exports.sendEmailMessage = exports.notifyByEmail = void 0;
|
|
3
|
+
exports.triggerWebhook = exports.sendEmailMessage = exports.notifyByEmail = exports.notifyAbortedTasksByEmail = void 0;
|
|
4
|
+
const notifyAbortedTasksByEmail_1 = require("./notification/notifyAbortedTasksByEmail");
|
|
5
|
+
Object.defineProperty(exports, "notifyAbortedTasksByEmail", { enumerable: true, get: function () { return notifyAbortedTasksByEmail_1.notifyAbortedTasksByEmail; } });
|
|
4
6
|
const notifyByEmail_1 = require("./notification/notifyByEmail");
|
|
5
7
|
Object.defineProperty(exports, "notifyByEmail", { enumerable: true, get: function () { return notifyByEmail_1.notifyByEmail; } });
|
|
6
8
|
const sendEmailMessage_1 = require("./notification/sendEmailMessage");
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
|
-
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../
|
|
2
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
3
3
|
export declare function call(params: Pick<factory.task.aggregateOnSystem.ITask, IExecutableTaskKeys>): IOperationExecute<ICallResult>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IOperationExecute } from '../
|
|
1
|
+
import type { IOperationExecute } from '../taskHandler';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
import { ActionRepo } from '../../repo/action';
|
|
4
4
|
import { AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as COA from '@motionpicture/coa-service';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
import { Settings } from '../../settings';
|
|
4
|
-
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../
|
|
4
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
5
5
|
import { AcceptedOfferRepo } from '../../repo/acceptedOffer';
|
|
6
6
|
import { ActionRepo } from '../../repo/action';
|
|
7
7
|
import { AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
|
-
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../
|
|
2
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
3
3
|
export declare function call(params: Pick<factory.task.handleNotification.ITask, IExecutableTaskKeys>): IOperationExecute<ICallResult>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { IExecutableTaskKeys, IOperationExecute } from '../
|
|
1
|
+
import type { IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
export declare function call(params: Pick<factory.task.invalidatePaymentUrl.ITask, IExecutableTaskKeys>): IOperationExecute<void>;
|