Просмотр исходного кода

refs 112131: use _id instead of orderId

Futa Arai 3 лет назад
Родитель
Сommit
3eb3105077

+ 1 - 0
packages/app/.env.development

@@ -18,6 +18,7 @@ HACKMD_URI="http://localhost:3010"
 HACKMD_URI_FOR_SERVER="http://hackmd:3000"
 OGP_URI="http://ogp:8088"
 GROWI_QUESTIONNAIRE_URI="http://host.docker.internal:3003"
+QUESTIONNAIRE_CRON_SCHEDULE="* * * * *"
 # DRAWIO_URI="http://localhost:8080/?offline=1&https=0"
 # S2SMSG_PUBSUB_SERVER_TYPE=nchan
 # PUBLISH_OPEN_API=true

+ 0 - 1
packages/app/src/interfaces/questionnaire/questionnaire-order.ts

@@ -2,7 +2,6 @@ import { ICondition } from './condition';
 import { IQuestion } from './question';
 
 export interface IQuestionnaireOrder {
-  orderId: string // growi-questionnaire での mongoDB の id
   showFrom: Date
   showUntil: Date
   questions: IQuestion[]

+ 0 - 1
packages/app/src/server/models/questionnaire/questionnaire-order.ts

@@ -11,7 +11,6 @@ export interface QuestionnaireOrderDocument extends IQuestionnaireOrder, Documen
 export type QuestionnaireOrderModel = Model<QuestionnaireOrderDocument>
 
 const questionnaireOrderSchema = new Schema<QuestionnaireOrderDocument>({
-  orderId: { type: String, required: true },
   showFrom: { type: Date, required: true },
   showUntil: {
     type: Date,

+ 6 - 11
packages/app/src/server/service/questionnaire-cron.ts

@@ -1,7 +1,7 @@
 import { IQuestionnaireOrder } from '~/interfaces/questionnaire/questionnaire-order';
 import axios from '~/utils/axios';
 
-import QuestionnaireOrder from '../models/questionnaire/questionnaire-order';
+import QuestionnaireOrder, { QuestionnaireOrderDocument } from '../models/questionnaire/questionnaire-order';
 
 const nodeCron = require('node-cron');
 
@@ -35,11 +35,11 @@ class QuestionnaireCronService {
   }
 
   questionnaireOrderGetCron(cronSchedule: string, maxSecondsUntilRequest: number): void {
-    const saveOrders = async(questionnaireOrders: IQuestionnaireOrder[]) => {
-      const savedOrders = await QuestionnaireOrder.find();
-      const savedOrderIds = savedOrders.map(order => order.orderId);
+    const saveOrders = async(questionnaireOrders: QuestionnaireOrderDocument[]) => {
+      const savedOrders: QuestionnaireOrderDocument[] = await QuestionnaireOrder.find();
+      const savedOrderIds = savedOrders.map(order => order._id.toString());
       // 渡されたアンケートのうち未保存のものを保存する
-      const nonSavedOrders = questionnaireOrders.filter(order => !savedOrderIds.includes(order.orderId));
+      const nonSavedOrders = questionnaireOrders.filter(order => !savedOrderIds.includes(order._id));
       QuestionnaireOrder.insertMany(nonSavedOrders);
     };
 
@@ -59,12 +59,7 @@ class QuestionnaireCronService {
 
       try {
         const response = await axios.get(`${this.growiQuestionnaireUri}/questionnaire-order/index`);
-        const questionnaireOrdersJson = JSON.parse(JSON.stringify(response.data)).questionnaireQrders;
-        const questionnaireOrders: IQuestionnaireOrder[] = questionnaireOrdersJson.map((questionnaireOrder) => {
-          questionnaireOrder.orderId = questionnaireOrder._id;
-          delete questionnaireOrder._id;
-          return questionnaireOrder;
-        });
+        const questionnaireOrders: QuestionnaireOrderDocument[] = JSON.parse(JSON.stringify(response.data)).questionnaireQrders;
 
         await saveOrders(questionnaireOrders);
         deleteFinishedOrders();