Files
Automata/packages/cli/src/middlewares/listQuery/workflow.schema.ts
Iván Ovejero dceff675ec perf(core): Add filtering and pagination to GET /workflows (#6845)
* 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`
2023-08-09 12:30:02 +02:00

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());
}
}