@chevre/domain 22.11.0-alpha.9 → 22.11.0
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/aggregation/aggregateOrderOfCustomer.ts +21 -10
- package/example/src/chevre/aggregation/aggregateTasks.ts +41 -0
- package/example/src/chevre/checkCustomerAttributesLength.ts +109 -0
- package/example/src/chevre/notifyAbortedTasksByEmail.ts +1 -1
- package/example/src/chevre/reIndex.ts +1 -1
- package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
- package/example/src/chevre/roles/{addAdminInventoryManagerRole.ts → addProjectCreatorRole.ts} +6 -8
- package/example/src/chevre/roles/assignGlobalRoles.ts +72 -0
- package/example/src/chevre/roles/findPermissions.ts +84 -0
- package/example/src/chevre/roles/findRoleNames.ts +117 -0
- package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
- package/example/src/chevre/searchEventSeats.ts +1 -1
- package/example/src/chevre/searchProducts.ts +28 -0
- package/example/src/chevre/settings/addSettings.ts +31 -17
- package/example/src/chevre/task/countPotentiallyRunning.ts +41 -0
- package/example/src/chevre/task/countTasks.ts +51 -0
- package/example/src/chevre/{deleteRunsAtPassedCertainPeriod.ts → task/deleteRunsAtPassedCertainPeriod.ts} +4 -3
- package/example/src/chevre/task/deleteUnexpectedTasks.ts +23 -0
- package/example/src/chevre/task/emitRunning.ts +89 -0
- package/example/src/idaas/auth0/adminApplications.ts +183 -0
- package/example/src/idaas/auth0/getToken.ts +55 -0
- package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +84 -0
- package/example/src/regex.ts +31 -0
- package/lib/chevre/eventEmitter/task.d.ts +29 -6
- package/lib/chevre/index.d.ts +0 -2
- package/lib/chevre/index.js +0 -10
- package/lib/chevre/repo/member.d.ts +22 -4
- package/lib/chevre/repo/member.js +81 -27
- 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/mongoose/schemas/product.js +9 -0
- package/lib/chevre/repo/mongoose/schemas/setting.d.ts +15 -0
- package/lib/chevre/repo/mongoose/schemas/setting.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/task.js +9 -0
- package/lib/chevre/repo/order.d.ts +17 -2
- package/lib/chevre/repo/order.js +47 -8
- package/lib/chevre/repo/pendingReservation.js +1 -0
- package/lib/chevre/repo/product.js +12 -17
- package/lib/chevre/repo/role.d.ts +5 -4
- package/lib/chevre/repo/role.js +35 -32
- package/lib/chevre/repo/setting.d.ts +1 -10
- package/lib/chevre/repo/setting.js +2 -11
- package/lib/chevre/repo/stockHolder.d.ts +4 -27
- package/lib/chevre/repo/stockHolder.js +163 -175
- package/lib/chevre/repo/task.d.ts +58 -38
- package/lib/chevre/repo/task.js +126 -296
- package/lib/chevre/repo/transaction.js +10 -10
- package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/registerService.js +4 -0
- package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +19 -16
- package/lib/chevre/service/code.d.ts +5 -28
- package/lib/chevre/service/code.js +3 -79
- 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/offer/product.js +4 -0
- package/lib/chevre/service/order/confirmPayTransaction.d.ts +6 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +3 -3
- 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/aggregateOffers.js +1 -1
- package/lib/chevre/service/task/aggregateOnSystem.d.ts +4 -2
- package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
- package/lib/chevre/service/task/aggregateScreeningEvent.js +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/cancelPendingReservation.js +1 -1
- package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
- package/lib/chevre/service/task/cancelReservation.js +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/checkResource.js +1 -1
- package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
- package/lib/chevre/service/task/confirmPayTransaction.d.ts +2 -2
- package/lib/chevre/service/task/confirmPayTransaction.js +3 -2
- 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 +6 -2
- package/lib/chevre/service/task/confirmReserveTransaction.js +3 -3
- 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 +4 -2
- 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/voidReserveTransaction.js +1 -1
- package/lib/chevre/service/task.d.ts +7 -29
- package/lib/chevre/service/task.js +9 -114
- package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.d.ts +11 -0
- package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +105 -0
- package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +17 -0
- package/lib/chevre/service/taskHandler/onOperationFailed.js +70 -0
- package/lib/chevre/service/taskHandler.d.ts +26 -0
- package/lib/chevre/service/taskHandler.js +97 -0
- package/lib/chevre/service/validation/validateEvent.d.ts +2 -2
- package/lib/chevre/service/validation/validateEvent.js +16 -10
- package/lib/chevre/service.d.ts +0 -4
- package/lib/chevre/service.js +10 -14
- package/lib/chevre/settings/aggregation.d.ts +6 -1
- package/lib/chevre/settings/aggregation.js +2 -1
- package/package.json +6 -4
- package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
- package/example/src/chevre/executeOneTask.ts +0 -41
- package/example/src/chevre/executeTaskIfExists.ts +0 -80
- package/example/src/chevre/findExecutableTask.ts +0 -50
- package/example/src/chevre/findSetting.ts +0 -79
- package/example/src/chevre/searchPermissions.ts +0 -46
- package/example/src/chevre/searchProductOffers.ts +0 -29
- package/example/src/chevre/stockHolder/checkIfConflicted.ts +0 -76
- package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +0 -186
- package/example/src/chevre/stockHolder/migratePendingReservations.ts +0 -96
- package/example/src/chevre/stockHolder/playAroundStockHolder.ts +0 -256
- package/example/src/chevre/upsertProductsByProductId.ts +0 -100
- package/lib/chevre/adminAuth.d.ts +0 -2
- package/lib/chevre/adminAuth.js +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IOperationExecute } from '../
|
|
1
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
2
2
|
import * as factory from '../../factory';
|
|
3
3
|
/**
|
|
4
4
|
* タスク実行関数
|
|
5
5
|
*/
|
|
6
|
-
export declare function call(
|
|
6
|
+
export declare function call(params: Pick<factory.task.ITask<factory.taskName.ConfirmPayTransaction>, IExecutableTaskKeys>): IOperationExecute<ICallResult>;
|
|
@@ -23,9 +23,10 @@ const confirmPayTransaction_1 = require("../order/confirmPayTransaction");
|
|
|
23
23
|
/**
|
|
24
24
|
* タスク実行関数
|
|
25
25
|
*/
|
|
26
|
-
function call(
|
|
26
|
+
function call(params) {
|
|
27
|
+
// export function call(data: factory.task.IData<factory.taskName.ConfirmPayTransaction>): IOperationExecute<void> {
|
|
27
28
|
return (_a) => __awaiter(this, [_a], void 0, function* ({ connection }) {
|
|
28
|
-
yield (0, confirmPayTransaction_1.confirmPayTransaction)(data, {})({
|
|
29
|
+
yield (0, confirmPayTransaction_1.confirmPayTransaction)(Object.assign(Object.assign({}, params.data), { project: params.project }), {})({
|
|
29
30
|
acceptedOffer: new acceptedOffer_1.AcceptedOfferRepo(connection),
|
|
30
31
|
action: new action_1.ActionRepo(connection),
|
|
31
32
|
assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
|
|
@@ -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';
|
|
@@ -17,10 +17,14 @@ export declare function call(params: Pick<factory.task.ITask<factory.taskName.Co
|
|
|
17
17
|
/**
|
|
18
18
|
* 予約を確定する
|
|
19
19
|
*/
|
|
20
|
-
export declare function confirmReserveTransaction(params: factory.task.IData<factory.taskName.ConfirmReserveTransaction> & {
|
|
20
|
+
export declare function confirmReserveTransaction(params: Omit<factory.task.IData<factory.taskName.ConfirmReserveTransaction>, 'agent' | 'project'> & {
|
|
21
21
|
sameAs?: {
|
|
22
22
|
id: string;
|
|
23
23
|
};
|
|
24
|
+
project: {
|
|
25
|
+
id: string;
|
|
26
|
+
typeOf: factory.organizationType.Project;
|
|
27
|
+
};
|
|
24
28
|
}, options: {
|
|
25
29
|
sendOrder: boolean;
|
|
26
30
|
useOnOrderStatusChanged: boolean;
|
|
@@ -52,7 +52,7 @@ function call(params) {
|
|
|
52
52
|
endpoint: coaAuthClient.options.endpoint, // same as authClient(2024-07-17~)
|
|
53
53
|
auth: coaAuthClient
|
|
54
54
|
}, { timeout: settings.coa.timeout });
|
|
55
|
-
yield confirmReserveTransaction(Object.assign(Object.assign({}, params.data), { sameAs: { id: params.id } }), {
|
|
55
|
+
yield confirmReserveTransaction(Object.assign(Object.assign({}, params.data), { project: params.project, sameAs: { id: params.id } }), {
|
|
56
56
|
sendOrder: true,
|
|
57
57
|
useOnOrderStatusChanged: true
|
|
58
58
|
})({
|
|
@@ -179,8 +179,8 @@ function confirmReserveTransaction(params, options) {
|
|
|
179
179
|
default:
|
|
180
180
|
confirmActionObject = params.object;
|
|
181
181
|
}
|
|
182
|
-
const {
|
|
183
|
-
const confirmActionAttributes = Object.assign({ agent, project, purpose, typeOf, object: confirmActionObject }, (typeof (sameAs === null || sameAs === void 0 ? void 0 : sameAs.id) === 'string') ? { sameAs: { id: sameAs.id, typeOf: 'Task' } } : undefined // link sameAs(2024-06-10~)
|
|
182
|
+
const { project, purpose, typeOf, sameAs } = params;
|
|
183
|
+
const confirmActionAttributes = Object.assign({ agent: project, project, purpose, typeOf, object: confirmActionObject }, (typeof (sameAs === null || sameAs === void 0 ? void 0 : sameAs.id) === 'string') ? { sameAs: { id: sameAs.id, typeOf: 'Task' } } : undefined // link sameAs(2024-06-10~)
|
|
184
184
|
);
|
|
185
185
|
const action = yield repos.action.start(confirmActionAttributes, Object.assign({}, (recipe !== undefined) ? { recipe } : undefined // add recipe(2024-06-11~)
|
|
186
186
|
));
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
|
-
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../
|
|
3
|
-
export declare function call(params: Pick<factory.task.handleNotification.ITask, IExecutableTaskKeys>
|
|
2
|
+
import type { ICallResult, IExecutableTaskKeys, IOperationExecute } from '../taskHandler';
|
|
3
|
+
export declare function call(params: Pick<factory.task.handleNotification.ITask, IExecutableTaskKeys> & {
|
|
4
|
+
status: factory.taskStatus.Running;
|
|
5
|
+
}): 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>;
|
|
@@ -64,7 +64,7 @@ function call(params) {
|
|
|
64
64
|
yield (0, voidTransaction_1.voidTransaction)(Object.assign(Object.assign({}, params.data), { project: { id: params.project.id }, sameAs: { id: params.id } }))({
|
|
65
65
|
action: new action_1.ActionRepo(connection),
|
|
66
66
|
assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
|
|
67
|
-
stockHolder: new stockHolder_1.StockHolderRepo(
|
|
67
|
+
stockHolder: new stockHolder_1.StockHolderRepo({ connection }),
|
|
68
68
|
offerRateLimit: new offer_1.OfferRateLimitRepo(redisClient),
|
|
69
69
|
orderInTransaction: new orderInTransaction_1.OrderInTransactionRepo(connection),
|
|
70
70
|
reservation: new reservation_1.ReservationRepo(connection),
|
|
@@ -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
|
*/
|
|
@@ -31,13 +23,9 @@ declare function executeById(params: (IReadyTask | IRunningTask) & {
|
|
|
31
23
|
name: string;
|
|
32
24
|
};
|
|
33
25
|
}, next?: INextFunction): IOperation<void>;
|
|
34
|
-
/**
|
|
35
|
-
* support no name(2025-03-04~)
|
|
36
|
-
*/
|
|
37
26
|
declare function executeOneIfExists(params: {
|
|
38
|
-
name
|
|
39
|
-
$eq
|
|
40
|
-
$nin?: factory.taskName[];
|
|
27
|
+
name: {
|
|
28
|
+
$eq: factory.taskName;
|
|
41
29
|
};
|
|
42
30
|
executor: {
|
|
43
31
|
/**
|
|
@@ -48,19 +36,9 @@ declare function executeOneIfExists(params: {
|
|
|
48
36
|
runsAt: {
|
|
49
37
|
$lt: Date;
|
|
50
38
|
};
|
|
39
|
+
sort: {
|
|
40
|
+
numberOfTried?: factory.sortType;
|
|
41
|
+
runsAt?: factory.sortType;
|
|
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
|
|
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,16 +38,13 @@ function executeById(params, next) {
|
|
|
42
38
|
}
|
|
43
39
|
// タスクがなければ終了
|
|
44
40
|
if (task !== null) {
|
|
45
|
-
yield
|
|
41
|
+
yield (0, taskHandler_1.executeTask)(task, (typeof next === 'function') ? next : undefined)(settings, {
|
|
46
42
|
executeById: true,
|
|
47
43
|
executeByName: false
|
|
48
44
|
});
|
|
49
45
|
}
|
|
50
46
|
});
|
|
51
47
|
}
|
|
52
|
-
/**
|
|
53
|
-
* support no name(2025-03-04~)
|
|
54
|
-
*/
|
|
55
48
|
function executeOneIfExists(params) {
|
|
56
49
|
return (settings) => __awaiter(this, void 0, void 0, function* () {
|
|
57
50
|
var _a;
|
|
@@ -60,7 +53,12 @@ function executeOneIfExists(params) {
|
|
|
60
53
|
// tslint:disable-next-line:no-null-keyword
|
|
61
54
|
let task = null;
|
|
62
55
|
try {
|
|
63
|
-
task = yield taskRepo.executeOneIfExists(
|
|
56
|
+
task = yield taskRepo.executeOneIfExists({
|
|
57
|
+
executor: { name: params.executor.name },
|
|
58
|
+
runsAt: { $lt: params.runsAt.$lt },
|
|
59
|
+
name: params.name,
|
|
60
|
+
sort: params.sort
|
|
61
|
+
});
|
|
64
62
|
debug('executable task found.', task, params.runsAt.$lt);
|
|
65
63
|
}
|
|
66
64
|
catch (error) {
|
|
@@ -70,113 +68,10 @@ function executeOneIfExists(params) {
|
|
|
70
68
|
}
|
|
71
69
|
// タスクがなければ終了
|
|
72
70
|
if (task !== null) {
|
|
73
|
-
yield
|
|
71
|
+
yield (0, taskHandler_1.executeTask)(task)(settings, {
|
|
74
72
|
executeById: false,
|
|
75
73
|
executeByName: (typeof ((_a = params.name) === null || _a === void 0 ? void 0 : _a.$eq) === 'string')
|
|
76
74
|
});
|
|
77
75
|
}
|
|
78
76
|
});
|
|
79
77
|
}
|
|
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,11 @@
|
|
|
1
|
+
import * as factory from '../../../factory';
|
|
2
|
+
import type { SettingRepo } from '../../../repo/setting';
|
|
3
|
+
import type { IExecutableTask, TaskRepo } from '../../../repo/task';
|
|
4
|
+
declare function informTaskIfNeeded(params: {
|
|
5
|
+
task: IExecutableTask<factory.taskName>;
|
|
6
|
+
executionEndDate: Date;
|
|
7
|
+
}): (repos: {
|
|
8
|
+
setting: SettingRepo;
|
|
9
|
+
task: TaskRepo;
|
|
10
|
+
}) => Promise<void>;
|
|
11
|
+
export { informTaskIfNeeded };
|