Skip to content

Commit 965a679

Browse files
committed
refactor(tools): granulariza geradores de entidades e casos de uso
1 parent a6a3122 commit 965a679

25 files changed

+292
-15
lines changed

tools/plugin/dx-dev/generators.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
"factory": "./src/generators/entity/generator",
55
"schema": "./src/generators/entity/schema.json",
66
"description": "Entity generator"
7+
},
8+
"use-cases": {
9+
"factory": "./src/generators/use-cases/generator",
10+
"schema": "./src/generators/use-cases/schema.json",
11+
"description": "Use Cases"
712
}
813
}
914
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/client';
2+
import { <%= className %>Service } from '../services';
3+
import {
4+
UseCase,
5+
<%= className %>,
6+
Editable<%= className %>,
7+
} from '@devmx/shared-api-interfaces';
8+
9+
export class Create<%= className %>UseCase
10+
implements UseCase<Editable<%= className %>, <%= className %>>
11+
{
12+
constructor(private <%= propertyName %>Service: <%= className %>Service) {}
13+
14+
execute(data: Editable<%= className %>) {
15+
return this.<%= propertyName %>Service.create(data);
16+
}
17+
}
18+
19+
export function provideCreate<%= className %>UseCase() {
20+
return createUseCaseProvider(Create<%= className %>UseCase, [<%= className %>Service]);
21+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/client';
2+
import { <%= className %>, UseCase } from '@devmx/shared-api-interfaces';
3+
import { <%= className %>Service } from '../services';
4+
5+
export class Delete<%= className %>UseCase implements UseCase<string, <%= className %> | null> {
6+
constructor(private <%= propertyName %>Service: <%= className %>Service) {}
7+
8+
execute(id: string) {
9+
return this.<%= propertyName %>Service.delete(id);
10+
}
11+
}
12+
13+
export function provideDelete<%= className %>UseCase() {
14+
return createUseCaseProvider(Delete<%= className %>UseCase, [<%= className %>Service]);
15+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/client';
2+
import { <%= className %>Service } from '../services';
3+
import {
4+
Page,
5+
UseCase,
6+
<%= className %>,
7+
QueryParams,
8+
} from '@devmx/shared-api-interfaces';
9+
10+
export class Find<%= classNamePlural %>UseCase
11+
implements UseCase<QueryParams<<%= className %>>, Page<<%= className %>>>
12+
{
13+
constructor(private <%= propertyName %>Service: <%= className %>Service) {}
14+
15+
execute(params: QueryParams<<%= className %>>) {
16+
return this.<%= propertyName %>Service.find(params);
17+
}
18+
}
19+
20+
export function provideFind<%= classNamePlural %>UseCase() {
21+
return createUseCaseProvider(Find<%= classNamePlural %>UseCase, [<%= className %>Service]);
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/client';
2+
import { <%= className %>, UseCase } from '@devmx/shared-api-interfaces';
3+
import { <%= className %>Service } from '../services';
4+
5+
export class Find<%= className %>ByIDUseCase
6+
implements UseCase<string, <%= className %> | null>
7+
{
8+
constructor(private <%= propertyName %>Service: <%= className %>Service) {}
9+
10+
execute(id: string) {
11+
return this.<%= propertyName %>Service.findOne(id);
12+
}
13+
}
14+
15+
export function provideFind<%= className %>ByIDUseCase() {
16+
return createUseCaseProvider(Find<%= className %>ByIDUseCase, [<%= className %>Service]);
17+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { UseCase, <%= className %>, Editable<%= className %> } from '@devmx/shared-api-interfaces';
2+
import { createUseCaseProvider } from '@devmx/shared-util-data/client';
3+
import { <%= className %>Service } from '../services';
4+
5+
export class Update<%= className %>UseCase implements UseCase<Editable<%= className %>, <%= className %>> {
6+
constructor(private <%= propertyName %>Service: <%= className %>Service) {}
7+
8+
execute(data: Editable<%= className %>) {
9+
return this.<%= propertyName %>Service.update(data.id, data);
10+
}
11+
}
12+
13+
export function provideUpdate<%= className %>UseCase() {
14+
return createUseCaseProvider(Update<%= className %>UseCase, [<%= className %>Service]);
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/server';
2+
import { UseCase, <%= className %>, Editable<%= className %> } from '@devmx/shared-api-interfaces';
3+
import { <%= classNamePlural %>Service } from '../services';
4+
5+
export class Create<%= className %>UseCase implements UseCase<Editable<%= className %>, <%= className %>> {
6+
constructor(private <%= propertyNamePlural %>Service: <%= classNamePlural %>Service) {}
7+
8+
execute(data: Editable<%= className %>) {
9+
return this.<%= propertyNamePlural %>Service.create(data);
10+
}
11+
}
12+
13+
export function provideCreate<%= className %>UseCase() {
14+
return createUseCaseProvider(Create<%= className %>UseCase, [<%= classNamePlural %>Service]);
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/server';
2+
import { <%= className %>, UseCase } from '@devmx/shared-api-interfaces';
3+
import { <%= classNamePlural %>Service } from '../services';
4+
5+
export class Delete<%= className %>UseCase implements UseCase<string, <%= className %>> {
6+
constructor(private <%= propertyNamePlural %>Service: <%= classNamePlural %>Service) {}
7+
8+
async execute(id: string) {
9+
return this.<%= propertyNamePlural %>Service.delete(id);
10+
}
11+
}
12+
13+
export function provideDelete<%= className %>UseCase() {
14+
return createUseCaseProvider(Delete<%= className %>UseCase, [<%= classNamePlural %>Service])
15+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/server';
2+
import { <%= classNamePlural %>Service } from '../services';
3+
import {
4+
Page,
5+
UseCase,
6+
<%= className %>,
7+
QueryParams,
8+
} from '@devmx/shared-api-interfaces';
9+
10+
export class Find<%= classNamePlural %>UseCase
11+
implements UseCase<QueryParams<<%= className %>>, Page<<%= className %>>>
12+
{
13+
constructor(private <%= propertyNamePlural %>Service: <%= classNamePlural %>Service) {}
14+
15+
async execute(params: QueryParams<<%= className %>>) {
16+
return this.<%= propertyNamePlural %>Service.find(params);
17+
}
18+
}
19+
20+
export function provideFind<%= classNamePlural %>UseCase() {
21+
return createUseCaseProvider(Find<%= classNamePlural %>UseCase, [<%= classNamePlural %>Service])
22+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { createUseCaseProvider } from '@devmx/shared-util-data/server';
2+
import { <%= className %>, UseCase } from '@devmx/shared-api-interfaces';
3+
import { <%= classNamePlural %>Service } from '../services';
4+
5+
export class Find<%= className %>ByIDUseCase implements UseCase<string, <%= className %> | null> {
6+
constructor(private <%= propertyNamePlural %>Service: <%= classNamePlural %>Service) {}
7+
8+
async execute(id: string) {
9+
return this.<%= propertyNamePlural %>Service.findOne(id);
10+
}
11+
}
12+
13+
export function provideFind<%= className %>ByIDUseCase() {
14+
return createUseCaseProvider(Find<%= className %>ByIDUseCase, [<%= classNamePlural %>Service])
15+
}

0 commit comments

Comments
 (0)