Naoki427 6 месяцев назад
Родитель
Сommit
3254a32192

+ 2 - 3
apps/app/src/features/audit-log-bulk-export/server/routes/apiv3/audit-log-bulk-export.ts

@@ -52,7 +52,7 @@ module.exports = (crowi: Crowi): Router => {
     accessTokenParser([SCOPE.WRITE.ADMIN.AUDIT_LOG]),
     loginRequiredStrictly,
     validators.auditLogBulkExport,
-    async(req: AuthorizedRequest, res: ApiV3Response) => {
+    async (req: AuthorizedRequest, res: ApiV3Response) => {
       const errors = validationResult(req);
       if (!errors.isEmpty()) {
         return res.status(400).json({ errors: errors.array() });
@@ -81,8 +81,7 @@ module.exports = (crowi: Crowi): Router => {
           restartJob,
         );
         return res.apiv3({}, 204);
-      }
-      catch (err) {
+      } catch (err) {
         logger.error(err);
 
         if (err instanceof DuplicateAuditLogBulkExportJobError) {

+ 18 - 24
apps/app/src/features/audit-log-bulk-export/server/service/audit-log-bulk-export.ts

@@ -1,14 +1,13 @@
-import { createHash } from 'crypto';
-
 import type { IUserHasId } from '@growi/core';
+import { createHash } from 'node:crypto';
 
 import type {
-  IAuditLogBulkExportFilters,
   AuditLogBulkExportFormat,
+  IAuditLogBulkExportFilters,
 } from '../../interfaces/audit-log-bulk-export';
 import {
-  AuditLogBulkExportJobStatus,
   AuditLogBulkExportJobInProgressJobStatus,
+  AuditLogBulkExportJobStatus,
 } from '../../interfaces/audit-log-bulk-export';
 import type { AuditLogBulkExportJobDocument } from '../models/audit-log-bulk-export-job';
 import AuditLogBulkExportJob from '../models/audit-log-bulk-export-job';
@@ -20,9 +19,7 @@ export interface IAuditLogBulkExportService {
     currentUser: IUserHasId,
     restartJob?: boolean,
   ) => Promise<void>;
-  resetExportJob: (
-    job: AuditLogBulkExportJobDocument,
-  )=> Promise<void>;
+  resetExportJob: (job: AuditLogBulkExportJobDocument) => Promise<void>;
 }
 
 /** ============================== utils ============================== */
@@ -61,37 +58,37 @@ function sha256(input: string): string {
 /** ============================== error ============================== */
 
 export class DuplicateAuditLogBulkExportJobError extends Error {
-
   duplicateJob: AuditLogBulkExportJobDocument;
 
   constructor(duplicateJob: AuditLogBulkExportJobDocument) {
     super('Duplicate audit-log bulk export job is in progress');
     this.duplicateJob = duplicateJob;
   }
-
 }
 
 /** ============================== service ============================== */
 
 class AuditLogBulkExportService implements IAuditLogBulkExportService {
-
   /**
    * Create a new audit-log bulk export job or reset the existing one
    */
   async createOrResetExportJob(
-      filters: IAuditLogBulkExportFilters,
-      format: AuditLogBulkExportFormat,
-      currentUser: IUserHasId,
-      restartJob?: boolean,
-  ) : Promise<void> {
+    filters: IAuditLogBulkExportFilters,
+    format: AuditLogBulkExportFormat,
+    currentUser: IUserHasId,
+    restartJob?: boolean,
+  ): Promise<void> {
     const normalizedFilters = canonicalizeFilters(filters);
     const filterHash = sha256(JSON.stringify(normalizedFilters));
 
-    const duplicateInProgress: AuditLogBulkExportJobDocument | null = await AuditLogBulkExportJob.findOne({
-      user: { $eq: currentUser },
-      filterHash,
-      $or: Object.values(AuditLogBulkExportJobInProgressJobStatus).map(status => ({ status })),
-    });
+    const duplicateInProgress: AuditLogBulkExportJobDocument | null =
+      await AuditLogBulkExportJob.findOne({
+        user: { $eq: currentUser },
+        filterHash,
+        $or: Object.values(AuditLogBulkExportJobInProgressJobStatus).map(
+          (status) => ({ status }),
+        ),
+      });
 
     if (duplicateInProgress != null) {
       if (restartJob) {
@@ -114,13 +111,10 @@ class AuditLogBulkExportService implements IAuditLogBulkExportService {
   /**
    * Reset audit-log export job in progress
    */
-  async resetExportJob(
-      job: AuditLogBulkExportJobDocument,
-  ): Promise<void> {
+  async resetExportJob(job: AuditLogBulkExportJobDocument): Promise<void> {
     job.restartFlag = true;
     await job.save();
   }
-
 }
 
 export const auditLogBulkExportService = new AuditLogBulkExportService(); // singleton