Skip to content

Commit a310200

Browse files
committed
Add: Support authorization config without service token
1 parent d27ed00 commit a310200

File tree

5 files changed

+50
-26
lines changed

5 files changed

+50
-26
lines changed

client.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ func NewServer(ctx context.Context, cfg *Config) *Server {
3434
})
3535
return NewSession(ctx, sess)
3636
}
37+
38+
func NewServerAutoConfig(ctx context.Context, projectID string) *Server {
39+
return NewSessionAutoConfig(ctx, projectID)
40+
}

example/main.go

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,41 @@ package main
33
import (
44
"context"
55
"fmt"
6-
"os"
76

8-
"github.com/joho/godotenv"
97
pubsubrouter "github.com/sofyan48/pubsub-router"
108
"github.com/sofyan48/pubsub-router/example/router"
119
)
1210

1311
func main() {
14-
err := godotenv.Load()
15-
if err != nil {
16-
fmt.Println("error: ", err)
17-
}
18-
cfg := &pubsubrouter.Config{
19-
Type: "service_account",
20-
ProjectID: os.Getenv("GOOGLE_PROJECT_ID"),
21-
PrivateKeyID: os.Getenv("GOOGLE_PRIVATE_KEY_ID"),
22-
PrivateKey: os.Getenv("GOOGLE_PRIVATE_KEY"),
23-
ClientEmail: os.Getenv("GOOGLE_CLIENT_EMAIL"),
24-
ClientID: os.Getenv("GOOGLE_CLIENT_ID"),
25-
AuthURI: os.Getenv("GOOGLE_AUTH_URI"),
26-
TokenURI: os.Getenv("GOOGLE_TOKEN_URI"),
27-
AuthProviderX509CertURL: os.Getenv("GOOGLE_AUTH_PROVIDER"),
28-
ClientX509CertURL: os.Getenv("GOOGLE_CLIENT_CERT_URL"),
29-
}
30-
sv := pubsubrouter.NewServer(context.Background(), cfg)
31-
32-
// // publish data
33-
// result, err := sv.Publish(os.Getenv("EVENT_BROKER_SERIAL"), "/test", "Message send test")
12+
// err := godotenv.Load()
3413
// if err != nil {
3514
// fmt.Println("error: ", err)
36-
// panic(err)
3715
// }
38-
// fmt.Println("result Publish:> ", result)
16+
// cfg := &pubsubrouter.Config{
17+
// Type: "service_account",
18+
// ProjectID: os.Getenv("GOOGLE_PROJECT_ID"),
19+
// PrivateKeyID: os.Getenv("GOOGLE_PRIVATE_KEY_ID"),
20+
// PrivateKey: os.Getenv("GOOGLE_PRIVATE_KEY"),
21+
// ClientEmail: os.Getenv("GOOGLE_CLIENT_EMAIL"),
22+
// ClientID: os.Getenv("GOOGLE_CLIENT_ID"),
23+
// AuthURI: os.Getenv("GOOGLE_AUTH_URI"),
24+
// TokenURI: os.Getenv("GOOGLE_TOKEN_URI"),
25+
// AuthProviderX509CertURL: os.Getenv("GOOGLE_AUTH_PROVIDER"),
26+
// ClientX509CertURL: os.Getenv("GOOGLE_CLIENT_CERT_URL"),
27+
// }
28+
// sv := pubsubrouter.NewServer(context.Background(), cfg)
29+
sv := pubsubrouter.NewServerAutoConfig(context.Background(), "kirimin-aja")
30+
31+
// publish data
32+
result, err := sv.Publish("cekaja", "/test", "Message send test")
33+
if err != nil {
34+
fmt.Println("error: ", err)
35+
panic(err)
36+
}
37+
fmt.Println("result Publish:> ", result)
3938
// // subscribe data
4039
rtr := router.NewRouter()
4140

42-
sv.Subscribe(os.Getenv("EVENT_BROKER_SERIAL"), rtr.Route()).Start()
41+
sv.Subscribe("cekaja", rtr.Route()).Start()
4342

4443
}

example/router/router.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ func (r *Router) handle(svc controller.UseCase) pubsubrouter.HandlerFunc {
2121

2222
func (r *Router) Route() *pubsubrouter.Router {
2323

24-
r.rtr.Handle("/event", r.handle(controller.NewEvent()))
2524
r.rtr.Handle("/test", r.handle(controller.Newtest()))
2625

2726
return r.rtr

pkg/client/pubsub.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ func NewClient(credential session.Contract) (*clientPubsub, error) {
2727
}, nil
2828
}
2929

30+
func NewClientAutoConfig(ctx context.Context, projectID string) (*clientPubsub, error) {
31+
sess, err := pubsub.NewClient(ctx, projectID)
32+
if err != nil {
33+
return nil, err
34+
}
35+
return &clientPubsub{
36+
ctx: ctx,
37+
sessPubsub: sess,
38+
}, nil
39+
}
40+
3041
func (c *clientPubsub) Client() *pubsub.Client {
3142
return c.sessPubsub
3243
}

server.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ func NewSession(ctx context.Context, sess session.Contract) *Server {
3030
}
3131
}
3232

33+
func NewSessionAutoConfig(ctx context.Context, projectID string) *Server {
34+
cl, err := client.NewClientAutoConfig(ctx, projectID)
35+
if err != nil {
36+
defer cl.Client().Close()
37+
}
38+
return &Server{
39+
clients: cl.Client(),
40+
ctx: ctx,
41+
}
42+
}
43+
3344
func (s *Server) Subscribe(topic string, r *Router) *Server {
3445
s.subClient = s.clients.Subscription(topic)
3546
s.router = r

0 commit comments

Comments
 (0)