| import { |
| ValidationArguments, |
| ValidatorConstraintInterface, |
| ValidatorConstraint, |
| } from 'class-validator'; |
|
|
| @ValidatorConstraint({ name: 'checkValidExtension', async: false }) |
| export class ValidUrlExtension implements ValidatorConstraintInterface { |
| validate(text: string, args: ValidationArguments) { |
| return ( |
| !!text?.split?.('?')?.[0].endsWith('.png') || |
| !!text?.split?.('?')?.[0].endsWith('.jpg') || |
| !!text?.split?.('?')?.[0].endsWith('.jpeg') || |
| !!text?.split?.('?')?.[0].endsWith('.gif') || |
| !!text?.split?.('?')?.[0].endsWith('.webp') || |
| !!text?.split?.('?')?.[0].endsWith('.mp4') |
| ); |
| } |
|
|
| defaultMessage(args: ValidationArguments) { |
| |
| return ( |
| 'File must have a valid extension: .png, .jpg, .jpeg, .gif, .webp, or .mp4' |
| ); |
| } |
| } |
|
|
| @ValidatorConstraint({ name: 'checkValidPath', async: false }) |
| export class ValidUrlPath implements ValidatorConstraintInterface { |
| validate(text: string, args: ValidationArguments) { |
| if (!process.env.RESTRICT_UPLOAD_DOMAINS) { |
| return true; |
| } |
|
|
| return ( |
| (text || 'invalid url').indexOf(process.env.RESTRICT_UPLOAD_DOMAINS) > -1 |
| ); |
| } |
|
|
| defaultMessage(args: ValidationArguments) { |
| |
| return ( |
| 'URL must contain the domain: ' + process.env.RESTRICT_UPLOAD_DOMAINS + ' Make sure you first use the upload API route.' |
| ); |
| } |
| } |
|
|