Explorar o código

refs 117515: resendQ questionnaire answers in cronjob

Futa Arai %!s(int64=3) %!d(string=hai) anos
pai
achega
d2696bff9c
Modificáronse 1 ficheiros con 19 adicións e 1 borrados
  1. 19 1
      packages/app/src/server/service/questionnaire-cron.ts

+ 19 - 1
packages/app/src/server/service/questionnaire-cron.ts

@@ -6,6 +6,8 @@ import loggerFactory from '~/utils/logger';
 import { getRandomIntInRange } from '~/utils/rand';
 import { sleep } from '~/utils/sleep';
 
+import ProactiveQuestionnaireAnswer from '../models/questionnaire/proactive-questionnaire-answer';
+import QuestionnaireAnswer from '../models/questionnaire/questionnaire-answer';
 import QuestionnaireAnswerStatus from '../models/questionnaire/questionnaire-answer-status';
 import QuestionnaireOrder from '../models/questionnaire/questionnaire-order';
 
@@ -49,8 +51,9 @@ class QuestionnaireCronService {
   }
 
   async executeJob(): Promise<void> {
+    const growiQuestionnaireServerOrigin = this.crowi.configManager?.getConfig('crowi', 'app:growiQuestionnaireServerOrigin');
+
     const fetchQuestionnaireOrders = async(): Promise<IQuestionnaireOrder[]> => {
-      const growiQuestionnaireServerOrigin = this.crowi.configManager?.getConfig('crowi', 'app:growiQuestionnaireServerOrigin');
       const response = await axios.get(`${growiQuestionnaireServerOrigin}/questionnaire-order/index`);
       return response.data.questionnaireOrders;
     };
@@ -68,8 +71,23 @@ class QuestionnaireCronService {
       );
     };
 
+    const resendQuestionnaireAnswers = async() => {
+      const questionnaireAnswers = await QuestionnaireAnswer.find();
+      const proactiveQuestionnaireAnswers = await ProactiveQuestionnaireAnswer.find();
+      axios.post(`${growiQuestionnaireServerOrigin}/questionnaire-answer/batch`, { questionnaireAnswers })
+        .then(() => {
+          QuestionnaireAnswer.deleteMany();
+        });
+      axios.post(`${growiQuestionnaireServerOrigin}/questionnaire-answer/proactive/batch`, { proactiveQuestionnaireAnswers })
+        .then(() => {
+          ProactiveQuestionnaireAnswer.deleteMany();
+        });
+    };
+
     const questionnaireOrders: IQuestionnaireOrder[] = await fetchQuestionnaireOrders();
 
+    resendQuestionnaireAnswers();
+
     // reset QuestionnaireOrder collection and save unfinished ones that exist on questionnaire server
     await QuestionnaireOrder.deleteMany();
     await saveUnfinishedOrders(questionnaireOrders);