Skip to content

Commit a9f7ce9

Browse files
committed
refactor(server): refactor wire
1 parent caa1105 commit a9f7ce9

File tree

9 files changed

+85
-126
lines changed

9 files changed

+85
-126
lines changed

Diff for: server/internal/di/wire.go

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
//go:build wireinject
2+
// +build wireinject
23

34
package di
45

Diff for: server/internal/di/wire_gen.go

+28-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: server/internal/usecase/todouc/create.go

+10-26
Original file line numberDiff line numberDiff line change
@@ -33,44 +33,28 @@ func (p CreateParam) Validate() error {
3333
}
3434

3535
type Create struct {
36-
assetRepo todo.Repo
37-
projectRepo project.Repo
38-
workspaceRepo workspace.Repo
39-
assetPolicy todo.Policy
40-
storage gateway.Storage
41-
}
42-
43-
func NewCreate(
44-
assetRepo todo.Repo,
45-
projectRepo project.Repo,
46-
workspaceRepo workspace.Repo,
47-
assetPolicy todo.Policy,
48-
storage gateway.Storage,
49-
) *Create {
50-
return &Create{
51-
assetRepo: assetRepo,
52-
projectRepo: projectRepo,
53-
workspaceRepo: workspaceRepo,
54-
assetPolicy: assetPolicy,
55-
storage: storage,
56-
}
36+
TodoRepo todo.Repo
37+
ProjectRepo project.Repo
38+
WorkspaceRepo workspace.Repo
39+
TodoPolicy todo.Policy
40+
Storage gateway.Storage
5741
}
5842

5943
func (uc *Create) Execute(ctx context.Context, param CreateParam, user *user.User) (*todo.Todo, error) {
6044
if err := param.Validate(); err != nil {
6145
return nil, err
6246
}
6347

64-
_, project, _, err := UsecaseBuilder(ctx, user).
65-
FindProjectByID(param.ProjectID, uc.projectRepo, uc.workspaceRepo).
66-
CanCreateTodo(uc.assetPolicy).
48+
_, project, _, err := build(ctx, user).
49+
FindProjectByID(param.ProjectID, uc.ProjectRepo, uc.WorkspaceRepo).
50+
CanCreateTodo(uc.TodoPolicy).
6751
Result()
6852

6953
if err != nil {
7054
return nil, err
7155
}
7256

73-
if err := uc.storage.Save(ctx, param.Name, param.Data); err != nil {
57+
if err := uc.Storage.Save(ctx, param.Name, param.Data); err != nil {
7458
return nil, err
7559
}
7660

@@ -83,7 +67,7 @@ func (uc *Create) Execute(ctx context.Context, param CreateParam, user *user.Use
8367
return nil, err
8468
}
8569

86-
if err := uc.assetRepo.Save(ctx, asset); err != nil {
70+
if err := uc.TodoRepo.Save(ctx, asset); err != nil {
8771
return nil, err
8872
}
8973

Diff for: server/internal/usecase/todouc/find_by_ids.go

+8-23
Original file line numberDiff line numberDiff line change
@@ -10,44 +10,29 @@ import (
1010
)
1111

1212
type FindByIDs struct {
13-
assetRepo todo.Repo
14-
projectRepo project.Repo
15-
workspaceRepo workspace.Repo
16-
17-
assetPolicy todo.Policy
18-
}
19-
20-
func NewFindByIDs(
21-
assetRepo todo.Repo,
22-
projectRepo project.Repo,
23-
workspaceRepo workspace.Repo,
24-
assetPolicy todo.Policy,
25-
) *FindByIDs {
26-
return &FindByIDs{
27-
assetRepo: assetRepo,
28-
projectRepo: projectRepo,
29-
workspaceRepo: workspaceRepo,
30-
assetPolicy: assetPolicy,
31-
}
13+
TodoRepo todo.Repo
14+
ProjectRepo project.Repo
15+
WorkspaceRepo workspace.Repo
16+
TodoPolicy todo.Policy
3217
}
3318

3419
func (uc *FindByIDs) Execute(ctx context.Context, ids todo.IDList, user *user.User) (todo.List, error) {
35-
assets, err := uc.assetRepo.FindByIDs(ctx, ids)
20+
assets, err := uc.TodoRepo.FindByIDs(ctx, ids)
3621
if err != nil {
3722
return nil, err
3823
}
3924

40-
projects, err := uc.projectRepo.FindByIDs(ctx, assets.ProjectIDs())
25+
projects, err := uc.ProjectRepo.FindByIDs(ctx, assets.ProjectIDs())
4126
if err != nil {
4227
return nil, err
4328
}
4429

45-
workspaces, err := uc.workspaceRepo.FindByIDs(ctx, projects.WorkspaceIDs())
30+
workspaces, err := uc.WorkspaceRepo.FindByIDs(ctx, projects.WorkspaceIDs())
4631
if err != nil {
4732
return nil, err
4833
}
4934

50-
assets, err = uc.assetPolicy.Filter(ctx, user, workspaces, projects, assets)
35+
assets, err = uc.TodoPolicy.Filter(ctx, user, workspaces, projects, assets)
5136
if err != nil {
5237
return nil, err
5338
}

Diff for: server/internal/usecase/todouc/find_by_project.go

+8-22
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,22 @@ import (
1010
)
1111

1212
type FindByProject struct {
13-
assetRepo todo.Repo
14-
projectRepo project.Repo
15-
workspaceRepo workspace.Repo
16-
assetPolicy todo.Policy
17-
}
18-
19-
func NewFindByProject(
20-
assetRepo todo.Repo,
21-
projectRepo project.Repo,
22-
workspaceRepo workspace.Repo,
23-
assetPolicy todo.Policy,
24-
) *FindByProject {
25-
return &FindByProject{
26-
assetRepo: assetRepo,
27-
projectRepo: projectRepo,
28-
workspaceRepo: workspaceRepo,
29-
assetPolicy: assetPolicy,
30-
}
13+
TodoRepo todo.Repo
14+
ProjectRepo project.Repo
15+
WorkspaceRepo workspace.Repo
16+
TodoPolicy todo.Policy
3117
}
3218

3319
func (uc *FindByProject) Execute(ctx context.Context, pid project.ID, user *user.User) (todo.List, error) {
34-
_, project, _, err := UsecaseBuilder(ctx, user).
35-
FindProjectByID(pid, uc.projectRepo, uc.workspaceRepo).
36-
CanListTodo(uc.assetPolicy).
20+
_, project, _, err := build(ctx, user).
21+
FindProjectByID(pid, uc.ProjectRepo, uc.WorkspaceRepo).
22+
CanListTodo(uc.TodoPolicy).
3723
Result()
3824
if err != nil {
3925
return nil, err
4026
}
4127

42-
assets, err := uc.assetRepo.FindByProject(ctx, project.ID())
28+
assets, err := uc.TodoRepo.FindByProject(ctx, project.ID())
4329
if err != nil {
4430
return nil, err
4531
}

Diff for: server/internal/usecase/todouc/update.go

+11-25
Original file line numberDiff line numberDiff line change
@@ -24,47 +24,33 @@ func (p UpdateParam) Validate() error {
2424
}
2525

2626
type Update struct {
27-
assetRepo todo.Repo
28-
projectRepo project.Repo
29-
workspaceRepo workspace.Repo
30-
assetPolicy todo.Policy
31-
}
32-
33-
func NewUpdate(
34-
assetRepo todo.Repo,
35-
projectRepo project.Repo,
36-
workspaceRepo workspace.Repo,
37-
assetPolicy todo.Policy,
38-
) *Update {
39-
return &Update{
40-
assetRepo: assetRepo,
41-
projectRepo: projectRepo,
42-
workspaceRepo: workspaceRepo,
43-
assetPolicy: assetPolicy,
44-
}
27+
TodoRepo todo.Repo
28+
ProjectRepo project.Repo
29+
WorkspaceRepo workspace.Repo
30+
TodoPolicy todo.Policy
4531
}
4632

4733
func (uc *Update) Execute(ctx context.Context, param UpdateParam, user *user.User) (*todo.Todo, error) {
4834
if err := param.Validate(); err != nil {
4935
return nil, err
5036
}
5137

52-
asset, _, _, err := UsecaseBuilder(ctx, user).
53-
FindTodoByID(param.ID, uc.assetRepo).
54-
FindProjectByTodo(uc.projectRepo, uc.workspaceRepo).
55-
CanUpdateTodo(uc.assetPolicy).
38+
todo, _, _, err := build(ctx, user).
39+
FindTodoByID(param.ID, uc.TodoRepo).
40+
FindProjectByTodo(uc.ProjectRepo, uc.WorkspaceRepo).
41+
CanUpdateTodo(uc.TodoPolicy).
5642
Result()
5743
if err != nil {
5844
return nil, err
5945
}
6046

6147
if param.Name != nil {
62-
asset.SetName(*param.Name)
48+
todo.SetName(*param.Name)
6349
}
6450

65-
if err := uc.assetRepo.Save(ctx, asset); err != nil {
51+
if err := uc.TodoRepo.Save(ctx, todo); err != nil {
6652
return nil, err
6753
}
6854

69-
return asset, nil
55+
return todo, nil
7056
}

Diff for: server/internal/usecase/todouc/usecase.go

+16-16
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import (
1212
)
1313

1414
var Wire = wire.NewSet(
15-
NewFindByIDs,
16-
NewFindByProject,
17-
NewCreate,
18-
NewUpdate,
15+
wire.Struct(new(FindByIDs), "*"),
16+
wire.Struct(new(FindByProject), "*"),
17+
wire.Struct(new(Create), "*"),
18+
wire.Struct(new(Update), "*"),
1919
wire.Struct(new(Usecase), "*"),
2020
)
2121

@@ -26,7 +26,7 @@ type Usecase struct {
2626
Update *Update
2727
}
2828

29-
type Builder struct {
29+
type builder struct {
3030
ctx context.Context
3131
err error
3232
user *user.User
@@ -35,26 +35,26 @@ type Builder struct {
3535
workspace *workspace.Workspace
3636
}
3737

38-
func UsecaseBuilder(ctx context.Context, user *user.User) *Builder {
39-
return &Builder{ctx: ctx, user: user}
38+
func build(ctx context.Context, user *user.User) *builder {
39+
return &builder{ctx: ctx, user: user}
4040
}
4141

42-
func (b *Builder) Result() (*todo.Todo, *project.Project, *workspace.Workspace, error) {
42+
func (b *builder) Result() (*todo.Todo, *project.Project, *workspace.Workspace, error) {
4343
if b.err != nil {
4444
return nil, nil, nil, b.err
4545
}
4646
return b.todo, b.project, b.workspace, b.err
4747
}
4848

49-
func (b *Builder) FindTodoByID(id todo.ID, assetRepo todo.Repo) *Builder {
49+
func (b *builder) FindTodoByID(id todo.ID, assetRepo todo.Repo) *builder {
5050
if b.err != nil {
5151
return b
5252
}
5353
b.todo, b.err = assetRepo.FindByID(b.ctx, id)
5454
return b
5555
}
5656

57-
func (b *Builder) FindProjectByID(id project.ID, projectRepo project.Repo, workspaceRepo workspace.Repo) *Builder {
57+
func (b *builder) FindProjectByID(id project.ID, projectRepo project.Repo, workspaceRepo workspace.Repo) *builder {
5858
if b.err != nil {
5959
return b
6060
}
@@ -65,7 +65,7 @@ func (b *Builder) FindProjectByID(id project.ID, projectRepo project.Repo, works
6565
return b
6666
}
6767

68-
func (b *Builder) FindProjectByTodo(projectRepo project.Repo, workspaceRepo workspace.Repo) *Builder {
68+
func (b *builder) FindProjectByTodo(projectRepo project.Repo, workspaceRepo workspace.Repo) *builder {
6969
if b.err != nil {
7070
return b
7171
}
@@ -80,39 +80,39 @@ func (b *Builder) FindProjectByTodo(projectRepo project.Repo, workspaceRepo work
8080
return b
8181
}
8282

83-
func (b *Builder) CanReadTodo(assetPolicy todo.Policy) *Builder {
83+
func (b *builder) CanReadTodo(assetPolicy todo.Policy) *builder {
8484
if b.err != nil {
8585
return b
8686
}
8787
b.err = assetPolicy.CanRead(b.ctx, b.user, b.workspace, b.project, b.todo)
8888
return b
8989
}
9090

91-
func (b *Builder) CanListTodo(assetPolicy todo.Policy) *Builder {
91+
func (b *builder) CanListTodo(assetPolicy todo.Policy) *builder {
9292
if b.err != nil {
9393
return b
9494
}
9595
b.err = assetPolicy.CanList(b.ctx, b.user, b.workspace, b.project)
9696
return b
9797
}
9898

99-
func (b *Builder) CanCreateTodo(assetPolicy todo.Policy) *Builder {
99+
func (b *builder) CanCreateTodo(assetPolicy todo.Policy) *builder {
100100
if b.err != nil {
101101
return b
102102
}
103103
b.err = assetPolicy.CanCreate(b.ctx, b.user, b.workspace, b.project)
104104
return b
105105
}
106106

107-
func (b *Builder) CanUpdateTodo(assetPolicy todo.Policy) *Builder {
107+
func (b *builder) CanUpdateTodo(assetPolicy todo.Policy) *builder {
108108
if b.err != nil {
109109
return b
110110
}
111111
b.err = assetPolicy.CanUpdate(b.ctx, b.user, b.workspace, b.project, b.todo)
112112
return b
113113
}
114114

115-
func (b *Builder) CanDeleteTodo(assetPolicy todo.Policy) *Builder {
115+
func (b *builder) CanDeleteTodo(assetPolicy todo.Policy) *builder {
116116
if b.err != nil {
117117
return b
118118
}

0 commit comments

Comments
 (0)