Skip to content

Commit 5ee45c2

Browse files
feat(grpc): add global config. (#125)
1 parent d6c5ba5 commit 5ee45c2

File tree

20 files changed

+796
-85
lines changed

20 files changed

+796
-85
lines changed

cmd/relay/relay.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
// Relay keeps all concepts such as server, database and manages them.
2121
type Relay struct {
22-
config config.Config
22+
config *config.Config
2323
websocketServer *websocket.Server
2424
grpcServer *grpc.Server
2525
database *database.Database
@@ -68,17 +68,21 @@ func New(cfg *config.Config) (*Relay, error) {
6868
return nil, err
6969
}
7070

71-
h := repository.New(cfg.Handler, db, meili, c)
71+
h := repository.New(&cfg.Handler, db, meili, c)
7272

73-
ws, err := websocket.New(cfg.WebsocketServer, h, m, r, c)
73+
ws, err := websocket.New(&cfg.WebsocketServer, h, m, r, c)
7474
if err != nil {
7575
return nil, err
7676
}
7777

78-
gs := grpc.New(&cfg.GRPCServer, r, db, time.Now())
78+
keeper := grpc.ParametersKeeper{
79+
Handler: &cfg.Handler,
80+
WebsocketServer: &cfg.WebsocketServer,
81+
}
82+
gs := grpc.New(&cfg.GRPCServer, r, db, time.Now(), keeper)
7983

8084
return &Relay{
81-
config: *cfg,
85+
config: cfg,
8286
websocketServer: ws,
8387
database: db,
8488
redis: r,

config/config.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ package config
33
import (
44
"os"
55

6-
"github.com/dezh-tech/immortal/delivery/grpc"
76
"github.com/dezh-tech/immortal/delivery/websocket"
7+
8+
"github.com/dezh-tech/immortal/repository"
9+
10+
"github.com/dezh-tech/immortal/delivery/grpc"
811
"github.com/dezh-tech/immortal/infrastructure/database"
912
grpcclient "github.com/dezh-tech/immortal/infrastructure/grpc_client"
1013
"github.com/dezh-tech/immortal/infrastructure/meilisearch"
1114
"github.com/dezh-tech/immortal/infrastructure/redis"
1215
"github.com/dezh-tech/immortal/pkg/logger"
13-
"github.com/dezh-tech/immortal/repository"
1416
"github.com/joho/godotenv"
1517
"gopkg.in/yaml.v3"
1618
)

config/parameters.go

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,33 @@ import (
44
"github.com/dezh-tech/immortal/delivery/websocket"
55
mpb "github.com/dezh-tech/immortal/infrastructure/grpc_client/gen"
66
"github.com/dezh-tech/immortal/pkg/utils"
7-
"github.com/dezh-tech/immortal/repository"
87
)
98

10-
type Parameters struct {
11-
Handler *repository.Config
12-
WebsocketServer *websocket.Config
13-
}
14-
159
func (c *Config) LoadParameters(params *mpb.GetParametersResponse) error {
1610
url, err := utils.ParseURL(params.Url)
1711
if err != nil {
1812
return err
1913
}
2014

21-
c.WebsocketServer.URL = url
15+
c.WebsocketServer.SetURL(url)
2216

23-
c.WebsocketServer.Limitation = &websocket.Limitation{
24-
MaxMessageLength: params.Limitations.MaxMessageLength,
25-
MaxSubscriptions: params.Limitations.MaxSubscriptions,
26-
MaxSubidLength: params.Limitations.MaxSubidLength,
27-
MinPowDifficulty: params.Limitations.MinPowDifficulty,
28-
AuthRequired: params.Limitations.AuthRequired,
29-
PaymentRequired: params.Limitations.PaymentRequired,
30-
RestrictedWrites: params.Limitations.RestrictedWrites,
31-
MaxEventTags: params.Limitations.MaxEventTags,
32-
MaxContentLength: params.Limitations.MaxContentLength,
33-
CreatedAtLowerLimit: params.Limitations.CreatedAtLowerLimit,
34-
CreatedAtUpperLimit: params.Limitations.CreatedAtUpperLimit,
35-
}
17+
c.WebsocketServer.SetLimitation(
18+
&websocket.Limitation{
19+
MaxMessageLength: params.Limitations.MaxMessageLength,
20+
MaxSubscriptions: params.Limitations.MaxSubscriptions,
21+
MaxSubidLength: params.Limitations.MaxSubidLength,
22+
MinPowDifficulty: params.Limitations.MinPowDifficulty,
23+
AuthRequired: params.Limitations.AuthRequired,
24+
PaymentRequired: params.Limitations.PaymentRequired,
25+
RestrictedWrites: params.Limitations.RestrictedWrites,
26+
MaxEventTags: params.Limitations.MaxEventTags,
27+
MaxContentLength: params.Limitations.MaxContentLength,
28+
CreatedAtLowerLimit: params.Limitations.CreatedAtLowerLimit,
29+
CreatedAtUpperLimit: params.Limitations.CreatedAtUpperLimit,
30+
})
3631

37-
c.Handler = repository.Config{
38-
DefaultQueryLimit: params.Limitations.DefaultQueryLimit,
39-
MaxQueryLimit: params.Limitations.MaxQueryLimit,
40-
}
32+
c.Handler.SetMaxQueryLimit(params.Limitations.MaxQueryLimit)
33+
c.Handler.SetDefaultQueryLimit(params.Limitations.DefaultQueryLimit)
4134

4235
return nil
4336
}

0 commit comments

Comments
 (0)