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

+ 1 - 1
packages/app/src/server/models/questionnaire/schema/condition.ts

@@ -14,7 +14,7 @@ const conditionSchema = new Schema<ICondition>({
         min: 0,
         validate: [
           function(value) {
-            return !this.user.daysSinceCreation.moreThanOrEqualTo || this.user.daysSinceCreation.moreThanOrEqualTo <= value;
+            return this.user.daysSinceCreation.moreThanOrEqualTo == null || this.user.daysSinceCreation.moreThanOrEqualTo <= value;
           }, 'daysSinceCreation.lessThanOrEqualTo must be greater than moreThanOrEqualTo',
         ],
       },

+ 10 - 4
packages/app/src/server/util/questionnaire/condition.ts

@@ -11,23 +11,29 @@ const checkUserInfo = (condition: ICondition, userInfo: IUserInfo): boolean => {
     return false;
   }
 
-  // Is "time passed since user creation" in between specified range?
+  // Check if "time passed since user creation" is between specified range
   if (userInfo.type !== UserType.guest) {
     const createdAt = userInfo.userCreatedAt;
     const moreThanOrEqualTo = daysSinceCreation?.moreThanOrEqualTo;
     const lessThanOrEqualTo = daysSinceCreation?.lessThanOrEqualTo;
     const currentDate = new Date();
 
-    const leftThresholdBool = !moreThanOrEqualTo || (() => {
+    const isValidLeftThreshold = (() => {
+      if (moreThanOrEqualTo == null) {
+        return true;
+      }
       const leftThreshold = new Date(createdAt.getTime() + 60 * 1000 * 60 * 24 * moreThanOrEqualTo);
       return leftThreshold <= currentDate;
     })();
-    const rightThresholdBool = !lessThanOrEqualTo || (() => {
+    const isValidRightThreshold = (() => {
+      if (lessThanOrEqualTo == null) {
+        return true;
+      }
       const rightThreshold = new Date(createdAt.getTime() + 60 * 1000 * 60 * 24 * lessThanOrEqualTo);
       return currentDate <= rightThreshold;
     })();
 
-    return leftThresholdBool && rightThresholdBool;
+    return isValidLeftThreshold && isValidRightThreshold;
   }
 
   return true;