* Initial setup * Specify max paginated items * Simplify * Add tests * Add more tests * Add migrations * Add top-level property * Add field selection * Cleanup * Rename `total` to `count` * More cleanup * Move query logic into `WorkflowRepository` * Create `AbstractRepository` * Cleanup * Fix name * Remove leftover comments * Replace reference * Add default for `rawSkip` * Remove unneeded typing * Switch to `class-validator` * Simplify * Simplify * Type as optional * Make typing more accurate * Fix lint * Use `getOwnPropertyNames` * Use DSL * Set schema at repo level * Cleanup * Remove comment * Refactor repository methods to middleware * Add middleware tests * Remove old test files * Remove generic experiment * Reuse `reportError` * Remove unused type * Cleanup * Improve wording * Reduce diff * Add missing mw * Use `Container.get` * Adjust lint rule * Reorganize into subdir * Remove unused directive * Remove nodes * Silly mistake * Validate take * refactor(core): Adjust index handling in new migrations DSL (no-changelog) (#6876) * refactor(core): Adjust index handling in new migrations DSL (no-changelog) * Account for custom index name * Also for dropping * Fix `select` issue with `relations` * Tighten validation * Ensure `ownerId` is not added when specifying `select`
41 lines
851 B
TypeScript
41 lines
851 B
TypeScript
import { Schema } from '@/middlewares/listQuery/schema';
|
|
import { validateSync, IsOptional, IsString, IsBoolean, IsDateString } from 'class-validator';
|
|
|
|
export class WorkflowSchema extends Schema {
|
|
constructor(data: unknown = {}) {
|
|
super();
|
|
Object.assign(this, data);
|
|
|
|
// strip out unknown fields
|
|
const result = validateSync(this, { whitelist: true });
|
|
|
|
if (result.length > 0) {
|
|
throw new Error('Parsed filter does not fit the schema');
|
|
}
|
|
}
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
id?: string = undefined;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
name?: string = undefined;
|
|
|
|
@IsOptional()
|
|
@IsBoolean()
|
|
active?: boolean = undefined;
|
|
|
|
@IsOptional()
|
|
@IsDateString()
|
|
createdAt?: Date = undefined;
|
|
|
|
@IsOptional()
|
|
@IsDateString()
|
|
updatedAt?: Date = undefined;
|
|
|
|
static get fieldNames() {
|
|
return Object.getOwnPropertyNames(new WorkflowSchema());
|
|
}
|
|
}
|