Skip to content

Commit e5f304c

Browse files
committed
wrapper h2c handler
1 parent c558de1 commit e5f304c

File tree

14 files changed

+170
-70
lines changed

14 files changed

+170
-70
lines changed

server/e2e/proto_project_test.go

Lines changed: 55 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"google.golang.org/grpc/metadata"
1515

1616
pb "github.com/reearth/reearth/server/internal/adapter/internalapi/schemas/internalapi/v1"
17+
"github.com/reearth/reearth/server/internal/usecase/repo"
18+
"github.com/reearth/reearth/server/pkg/id"
1719
)
1820

1921
func SafeClose(c io.Closer) {
@@ -22,12 +24,15 @@ func SafeClose(c io.Closer) {
2224
}
2325
}
2426

27+
// export REEARTH_DB=mongodb://localhost
28+
// go test -v -run TestInternalAPI_public ./e2e/...
29+
2530
func TestInternalAPI_private(t *testing.T) {
26-
GRPCServer(t, baseSeeder)
31+
_, r, _ := GRPCServer(t, baseSeeder)
2732

2833
runTestWithUser(t, uID.String(), func(client pb.ReEarthVisualizerClient, ctx context.Context) {
2934

30-
// -------- default Project
35+
// -------- create default Project
3136
res, err := client.CreateProject(ctx, &pb.CreateProjectRequest{
3237
TeamId: wID.String(),
3338
Visualizer: pb.Visualizer_VISUALIZER_CESIUM,
@@ -37,59 +42,63 @@ func TestInternalAPI_private(t *testing.T) {
3742
// Visibility: lo.ToPtr("private"),
3843
})
3944
assert.Nil(t, err)
45+
checProject(t, ctx, r, res)
4046

41-
// -------- private
47+
// get -> private
4248
res2, err := client.GetProject(ctx, &pb.GetProjectRequest{
4349
ProjectId: res.Project.Id,
4450
})
4551
assert.Nil(t, err)
4652
assert.Equal(t, "private", res2.Project.Visibility)
4753

48-
// -------- private Project
49-
res, err = client.CreateProject(ctx, &pb.CreateProjectRequest{
54+
// -------- create private Project
55+
_, err = client.CreateProject(ctx, &pb.CreateProjectRequest{
5056
TeamId: wID.String(),
5157
Visualizer: pb.Visualizer_VISUALIZER_CESIUM,
52-
Name: lo.ToPtr("Test Project1"),
53-
Description: lo.ToPtr("Test Description1"),
58+
Name: lo.ToPtr("Test Project2"),
59+
Description: lo.ToPtr("Test Description2"),
5460
CoreSupport: lo.ToPtr(true),
5561
Visibility: lo.ToPtr("private"),
5662
})
5763
assert.Nil(t, err)
64+
checProject(t, ctx, r, res)
5865

59-
// -------- private
66+
// get -> private
6067
res2, err = client.GetProject(ctx, &pb.GetProjectRequest{
6168
ProjectId: res.Project.Id,
6269
})
6370
assert.Nil(t, err)
6471
assert.Equal(t, "private", res2.Project.Visibility)
6572

66-
// -------- public list size 3
6773
// 0: creante seeder => null
6874
// 1: creante default => private
6975
// 2: creante private => private
76+
77+
// -------- Authenticated: true => get list size 3
7078
res3, err := client.GetProjectList(ctx, &pb.GetProjectListRequest{
71-
TeamId: wID.String(),
79+
TeamId: wID.String(),
80+
Authenticated: true,
7281
})
7382
assert.Nil(t, err)
7483
assert.Equal(t, 3, len(res3.Projects))
7584
assert.Equal(t, "", res3.Projects[0].Visibility)
7685
assert.Equal(t, "private", res3.Projects[1].Visibility)
7786
assert.Equal(t, "private", res3.Projects[2].Visibility)
78-
})
7987

80-
// User2 test
81-
runTestWithUser(t, uID2.String(), func(client pb.ReEarthVisualizerClient, ctx context.Context) {
82-
// -------- public list size 0 (Not authenticated)
83-
res3, err := client.GetProjectList(ctx, &pb.GetProjectListRequest{
84-
TeamId: wID.String(),
88+
// -------- Authenticated: false => get list size 0
89+
res3, err = client.GetProjectList(ctx, &pb.GetProjectListRequest{
90+
TeamId: wID.String(),
91+
Authenticated: false,
8592
})
8693
assert.Nil(t, err)
8794
assert.Equal(t, 0, len(res3.Projects))
95+
8896
})
97+
8998
}
9099

91100
func TestInternalAPI_public(t *testing.T) {
92-
GRPCServer(t, baseSeeder)
101+
_, r, _ := GRPCServer(t, baseSeeder)
93102

94103
runTestWithUser(t, uID.String(), func(client pb.ReEarthVisualizerClient, ctx context.Context) {
95104
// -------- public Project
@@ -102,8 +111,9 @@ func TestInternalAPI_public(t *testing.T) {
102111
Visibility: lo.ToPtr("public"),
103112
})
104113
assert.Nil(t, err)
114+
checProject(t, ctx, r, res)
105115

106-
// -------- public
116+
// get -> public
107117
res2, err := client.GetProject(ctx, &pb.GetProjectRequest{
108118
ProjectId: res.Project.Id,
109119
})
@@ -114,43 +124,46 @@ func TestInternalAPI_public(t *testing.T) {
114124
res, err = client.CreateProject(ctx, &pb.CreateProjectRequest{
115125
TeamId: wID.String(),
116126
Visualizer: pb.Visualizer_VISUALIZER_CESIUM,
117-
Name: lo.ToPtr("Test Project1"),
118-
Description: lo.ToPtr("Test Description1"),
127+
Name: lo.ToPtr("Test Project2"),
128+
Description: lo.ToPtr("Test Description2"),
119129
CoreSupport: lo.ToPtr(true),
120130
Visibility: lo.ToPtr("private"),
121131
})
122132
assert.Nil(t, err)
133+
checProject(t, ctx, r, res)
123134

124-
// -------- private
135+
// get -> private
125136
res2, err = client.GetProject(ctx, &pb.GetProjectRequest{
126137
ProjectId: res.Project.Id,
127138
})
128139
assert.Nil(t, err)
129140
assert.Equal(t, "private", res2.Project.Visibility)
130141

131-
// -------- list size 3
132142
// 0: creante seeder => null
133143
// 1: creante public => public
134144
// 2: creante private => private
145+
146+
// -------- Authenticated: true => get list size 3
135147
res3, err := client.GetProjectList(ctx, &pb.GetProjectListRequest{
136-
TeamId: wID.String(),
148+
TeamId: wID.String(),
149+
Authenticated: true,
137150
})
138151
assert.Nil(t, err)
139152
assert.Equal(t, 3, len(res3.Projects))
140153
assert.Equal(t, "", res3.Projects[0].Visibility)
141154
assert.Equal(t, "public", res3.Projects[1].Visibility)
142155
assert.Equal(t, "private", res3.Projects[2].Visibility)
143-
})
144156

145-
// User2 test
146-
runTestWithUser(t, uID2.String(), func(client pb.ReEarthVisualizerClient, ctx context.Context) {
147-
// -------- public list size 1 (Not authenticated)
148-
res3, err := client.GetProjectList(ctx, &pb.GetProjectListRequest{
149-
TeamId: wID.String(),
157+
// -------- Authenticated: true => get list size 1
158+
res3, err = client.GetProjectList(ctx, &pb.GetProjectListRequest{
159+
TeamId: wID.String(),
160+
Authenticated: false,
150161
})
151162
assert.Nil(t, err)
152163
assert.Equal(t, 1, len(res3.Projects))
164+
153165
})
166+
154167
}
155168

156169
func runTestWithUser(t *testing.T, userID string, testFunc func(client pb.ReEarthVisualizerClient, ctx context.Context)) {
@@ -171,3 +184,16 @@ func runTestWithUser(t *testing.T, userID string, testFunc func(client pb.ReEart
171184
client := pb.NewReEarthVisualizerClient(conn)
172185
testFunc(client, ctx)
173186
}
187+
188+
func checProject(t *testing.T, ctx context.Context, r *repo.Container, res *pb.CreateProjectResponse) {
189+
pid, err := id.ProjectIDFrom(res.GetProject().Id)
190+
assert.Nil(t, err)
191+
prj, err := r.Project.FindByID(ctx, pid)
192+
assert.Nil(t, err)
193+
c, err := r.Scene.FindByProject(ctx, prj.ID())
194+
assert.Nil(t, err)
195+
assert.NotNil(t, c)
196+
s, err := r.Storytelling.FindByScene(ctx, c.ID())
197+
assert.Nil(t, err)
198+
assert.Equal(t, 1, len(*s))
199+
}

server/internal/adapter/gql/loader_project.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,13 @@ func (c *ProjectLoader) FindDeletedByWorkspace(ctx context.Context, wsID gqlmode
125125
}, nil
126126
}
127127

128-
func (c *ProjectLoader) VisibilityByWorkspace(ctx context.Context, wsID gqlmodel.ID) (*gqlmodel.ProjectConnection, error) {
128+
func (c *ProjectLoader) VisibilityByWorkspace(ctx context.Context, wsID gqlmodel.ID, authenticated bool) (*gqlmodel.ProjectConnection, error) {
129129
tid, err := gqlmodel.ToID[accountdomain.Workspace](wsID)
130130
if err != nil {
131131
return nil, err
132132
}
133133

134-
res, err := c.usecase.FindVisibilityByWorkspace(ctx, tid, getOperator(ctx))
134+
res, err := c.usecase.FindVisibilityByWorkspace(ctx, tid, authenticated, getOperator(ctx))
135135
if err != nil {
136136
return nil, err
137137
}

server/internal/adapter/gql/resolver_mutation_storytelling.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package gql
22

33
import (
44
"context"
5+
"encoding/json"
56
"errors"
7+
"fmt"
68

79
"github.com/reearth/reearth/server/internal/adapter/gql/gqlmodel"
810
"github.com/reearth/reearth/server/internal/usecase/interfaces"
@@ -21,7 +23,13 @@ func (r *mutationResolver) CreateStory(ctx context.Context, input gqlmodel.Creat
2123
Title: input.Title,
2224
Index: input.Index,
2325
}
26+
fmt.Println("===================")
27+
b, err := json.MarshalIndent(inp, "", " ")
28+
if err != nil {
29+
fmt.Println("JSON Marshal error:", err)
2430

31+
}
32+
fmt.Println(string(b))
2533
res, err := usecases(ctx).StoryTelling.Create(ctx, inp, getOperator(ctx))
2634
if err != nil {
2735
return nil, err
@@ -150,6 +158,16 @@ func (r *mutationResolver) CreateStoryPage(ctx context.Context, input gqlmodel.C
150158
return nil, err
151159
}
152160

161+
// type CreatePageParam struct {
162+
// SceneID id.SceneID
163+
// StoryID id.StoryID
164+
// Title *string
165+
// Swipeable *bool
166+
// Layers *[]id.NLSLayerID
167+
// SwipeableLayers *[]id.NLSLayerID
168+
// Index *int
169+
// }
170+
153171
inp := interfaces.CreatePageParam{
154172
SceneID: sceneId,
155173
StoryID: storyId,

server/internal/adapter/gql/resolver_query.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,6 @@ func (r *queryResolver) DeletedProjects(ctx context.Context, teamId gqlmodel.ID)
187187
return loaders(ctx).Project.FindDeletedByWorkspace(ctx, teamId)
188188
}
189189

190-
func (r *queryResolver) VisibilityProjects(ctx context.Context, teamId gqlmodel.ID) (*gqlmodel.ProjectConnection, error) {
191-
return loaders(ctx).Project.VisibilityByWorkspace(ctx, teamId)
190+
func (r *queryResolver) VisibilityProjects(ctx context.Context, teamId gqlmodel.ID, authenticated bool) (*gqlmodel.ProjectConnection, error) {
191+
return loaders(ctx).Project.VisibilityByWorkspace(ctx, teamId, authenticated)
192192
}

server/internal/adapter/internalapi/schemas/internalapi/v1/schema.pb.go

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/internal/adapter/internalapi/server.go

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package internalapi
22

33
import (
44
"context"
5+
"fmt"
56

67
"github.com/reearth/reearth/server/internal/adapter"
78
"github.com/reearth/reearth/server/internal/adapter/internalapi/internalapimodel"
@@ -29,7 +30,7 @@ func (s server) GetProjectList(ctx context.Context, req *pb.GetProjectListReques
2930
return nil, err
3031
}
3132

32-
res, err := uc.Project.FindVisibilityByWorkspace(ctx, wId, op)
33+
res, err := uc.Project.FindVisibilityByWorkspace(ctx, wId, req.Authenticated, op)
3334

3435
if err != nil {
3536
return nil, err
@@ -71,7 +72,6 @@ func (s server) CreateProject(ctx context.Context, req *pb.CreateProjectRequest)
7172
op, uc := adapter.Operator(ctx), adapter.Usecases(ctx)
7273

7374
wId, err := accountdomain.WorkspaceIDFrom(req.TeamId)
74-
7575
if err != nil {
7676
return nil, err
7777
}
@@ -84,8 +84,40 @@ func (s server) CreateProject(ctx context.Context, req *pb.CreateProjectRequest)
8484
CoreSupport: req.CoreSupport,
8585
Visibility: req.Visibility,
8686
}, op)
87+
if err != nil {
88+
return nil, err
89+
}
90+
91+
c, err := uc.Scene.Create(ctx, p.ID(), true, op)
92+
if err != nil {
93+
return nil, err
94+
}
8795

96+
index := 0
97+
storyInput := interfaces.CreateStoryInput{
98+
SceneID: c.ID(),
99+
Title: "Default",
100+
Index: &index,
101+
}
102+
st, err := uc.StoryTelling.Create(ctx, storyInput, op)
103+
if err != nil {
104+
return nil, err
105+
}
106+
107+
title := "Page"
108+
swipeable := false
109+
pageParam := interfaces.CreatePageParam{
110+
SceneID: c.ID(),
111+
StoryID: st.Id(),
112+
Title: &title,
113+
Swipeable: &swipeable,
114+
Layers: &[]id.NLSLayerID{},
115+
SwipeableLayers: &[]id.NLSLayerID{},
116+
Index: &index,
117+
}
118+
_, _, err = uc.StoryTelling.CreatePage(ctx, pageParam, op)
88119
if err != nil {
120+
fmt.Println("=================== Error uc.StoryTelling.CreatePage(")
89121
return nil, err
90122
}
91123

0 commit comments

Comments
 (0)