Skip to content

Commit d36fec5

Browse files
authored
Update for latest go sdk (#179)
1 parent 30d9c5c commit d36fec5

File tree

13 files changed

+115
-151
lines changed

13 files changed

+115
-151
lines changed

tutorials/tour-of-restate-go/app/cartobject.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, e
99
return true, nil
1010
}
1111

12-
func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
12+
func (CartObject) Checkout(ctx restate.ObjectContext) (bool, error) {
1313
return true, nil
1414
}
1515

16-
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) (restate.Void, error) {
17-
return restate.Void{}, nil
16+
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) error {
17+
return nil
1818
}
1919

2020
// <end_user_session>

tutorials/tour-of-restate-go/app/ticketobject.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import restate "github.com/restatedev/sdk-go"
44

55
type TicketObject struct{}
66

7-
func (TicketObject) Reserve(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
7+
func (TicketObject) Reserve(ctx restate.ObjectContext) (bool, error) {
88
return true, nil
99
}
1010

11-
func (TicketObject) Unreserve(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
12-
return restate.Void{}, nil
11+
func (TicketObject) Unreserve(ctx restate.ObjectContext) error {
12+
return nil
1313
}
1414

15-
func (TicketObject) MarkAsSold(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
16-
return restate.Void{}, nil
15+
func (TicketObject) MarkAsSold(ctx restate.ObjectContext) error {
16+
return nil
1717
}

tutorials/tour-of-restate-go/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ module github.com/restatedev/examples/tutorials/tour-of-restate-go
22

33
go 1.22.5
44

5-
require github.com/restatedev/sdk-go v0.10.0
5+
require github.com/restatedev/sdk-go v0.10.1-0.20240822080656-66e4239b3022
66

77
require (
88
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
99
github.com/google/uuid v1.6.0 // indirect
1010
github.com/mr-tron/base58 v1.2.0 // indirect
1111
golang.org/x/net v0.23.0 // indirect
1212
golang.org/x/text v0.14.0 // indirect
13-
google.golang.org/protobuf v1.33.0 // indirect
13+
google.golang.org/protobuf v1.34.2 // indirect
1414
)

tutorials/tour-of-restate-go/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
1010
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
1111
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1212
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
13-
github.com/restatedev/sdk-go v0.10.0 h1:JkPxHCqxF3jAT59qSu4TrW7eHFumMQOyv3JrvlDoULY=
14-
github.com/restatedev/sdk-go v0.10.0/go.mod h1:6gHoU8pyP7YQfFWxKG2u94u/TSGen0qN7BWowWNDw4Y=
13+
github.com/restatedev/sdk-go v0.10.1-0.20240822080656-66e4239b3022 h1:tCicwLNryIL36E/BIOxHuDXjP21+12NavnaXx5HZbvU=
14+
github.com/restatedev/sdk-go v0.10.1-0.20240822080656-66e4239b3022/go.mod h1:6gHoU8pyP7YQfFWxKG2u94u/TSGen0qN7BWowWNDw4Y=
1515
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
1616
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
1717
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
@@ -22,7 +22,7 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
2222
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
2323
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
2424
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
25-
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
26-
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
25+
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
26+
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
2727
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
2828
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

tutorials/tour-of-restate-go/part1/cartobject.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ type CartObject struct{}
77
// <start_add_ticket>
88
func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, error) {
99
// withClass highlight-line
10-
reservationSuccess, err := restate.CallAs[bool](ctx.Object("TicketObject", ticketId, "Reserve")).Request(restate.Void{})
10+
reservationSuccess, err := restate.Object[bool](ctx, "TicketObject", ticketId, "Reserve").Request(restate.Void{})
1111
if err != nil {
1212
return false, err
1313
}
@@ -18,10 +18,10 @@ func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, e
1818
// <end_add_ticket>
1919

2020
// <start_checkout>
21-
func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
21+
func (CartObject) Checkout(ctx restate.ObjectContext) (bool, error) {
2222
// withClass(1:2) highlight-line
23-
success, err := restate.CallAs[bool](ctx.Service("CheckoutService", "Handle")).
24-
Request(CheckoutRequest{UserId: ctx.Key(), Tickets: []string{"seat2B"}})
23+
success, err := restate.Service[bool](ctx, "CheckoutService", "Handle").
24+
Request(CheckoutRequest{UserId: restate.Key(ctx), Tickets: []string{"seat2B"}})
2525
if err != nil {
2626
return false, err
2727
}
@@ -32,13 +32,11 @@ func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, err
3232
// <end_checkout>
3333

3434
// <start_expire_ticket>
35-
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) (restate.Void, error) {
35+
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) error {
3636
// withClass highlight-line
37-
if err := ctx.Object("TicketObject", ticketId, "Unreserve").Send(restate.Void{}, 0); err != nil {
38-
return restate.Void{}, err
39-
}
37+
restate.ObjectSend(ctx, "TicketObject", ticketId, "Unreserve").Send(restate.Void{})
4038

41-
return restate.Void{}, nil
39+
return nil
4240
}
4341

4442
// <end_expire_ticket>

tutorials/tour-of-restate-go/part1/ticketobject.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import restate "github.com/restatedev/sdk-go"
44

55
type TicketObject struct{}
66

7-
func (TicketObject) Reserve(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
7+
func (TicketObject) Reserve(ctx restate.ObjectContext) (bool, error) {
88
return true, nil
99
}
1010

11-
func (TicketObject) Unreserve(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
12-
return restate.Void{}, nil
11+
func (TicketObject) Unreserve(ctx restate.ObjectContext) error {
12+
return nil
1313
}
1414

15-
func (TicketObject) MarkAsSold(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
16-
return restate.Void{}, nil
15+
func (TicketObject) MarkAsSold(ctx restate.ObjectContext) error {
16+
return nil
1717
}

tutorials/tour-of-restate-go/part2/cartobject.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,14 @@ type CartObject struct{}
1111
// <start_add_ticket>
1212
func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, error) {
1313
// withClass highlight-line
14-
reservationSuccess, err := restate.CallAs[bool](ctx.Object("TicketObject", ticketId, "Reserve")).Request(restate.Void{})
14+
reservationSuccess, err := restate.Object[bool](ctx, "TicketObject", ticketId, "Reserve").Request(restate.Void{})
1515
if err != nil {
1616
return false, err
1717
}
1818

1919
if reservationSuccess {
2020
// withClass highlight-line
21-
if err := ctx.Object("CartObject", ctx.Key(), "ExpireTicket").Send(ticketId, 15*time.Minute); err != nil {
22-
return false, err
23-
}
21+
restate.ObjectSend(ctx, "CartObject", restate.Key(ctx), "ExpireTicket").Send(ticketId, restate.WithDelay(15*time.Minute))
2422
}
2523

2624
return reservationSuccess, nil
@@ -29,10 +27,10 @@ func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, e
2927
// <end_add_ticket>
3028

3129
// <start_checkout>
32-
func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
30+
func (CartObject) Checkout(ctx restate.ObjectContext) (bool, error) {
3331
// withClass(1:2) highlight-line
34-
success, err := restate.CallAs[bool](ctx.Service("CheckoutService", "Handle")).
35-
Request(CheckoutRequest{UserId: ctx.Key(), Tickets: []string{"seat2B"}})
32+
success, err := restate.Service[bool](ctx, "CheckoutService", "Handle").
33+
Request(CheckoutRequest{UserId: restate.Key(ctx), Tickets: []string{"seat2B"}})
3634
if err != nil {
3735
return false, err
3836
}
@@ -43,13 +41,11 @@ func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, err
4341
// <end_checkout>
4442

4543
// <start_expire_ticket>
46-
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) (restate.Void, error) {
44+
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) error {
4745
// withClass highlight-line
48-
if err := ctx.Object("TicketObject", ticketId, "Unreserve").Send(restate.Void{}, 0); err != nil {
49-
return restate.Void{}, err
50-
}
46+
restate.ObjectSend(ctx, "TicketObject", ticketId, "Unreserve").Send(restate.Void{})
5147

52-
return restate.Void{}, nil
48+
return nil
5349
}
5450

5551
// <end_expire_ticket>

tutorials/tour-of-restate-go/part2/ticketobject.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import restate "github.com/restatedev/sdk-go"
44

55
type TicketObject struct{}
66

7-
func (TicketObject) Reserve(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
7+
func (TicketObject) Reserve(ctx restate.ObjectContext) (bool, error) {
88
return true, nil
99
}
1010

11-
func (TicketObject) Unreserve(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
12-
return restate.Void{}, nil
11+
func (TicketObject) Unreserve(ctx restate.ObjectContext) error {
12+
return nil
1313
}
1414

15-
func (TicketObject) MarkAsSold(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
16-
return restate.Void{}, nil
15+
func (TicketObject) MarkAsSold(ctx restate.ObjectContext) error {
16+
return nil
1717
}
Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"errors"
54
"slices"
65
"time"
76

@@ -13,25 +12,21 @@ type CartObject struct{}
1312
// <start_add_ticket>
1413
func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, error) {
1514
// withClass highlight-line
16-
reservationSuccess, err := restate.CallAs[bool](ctx.Object("TicketObject", ticketId, "Reserve")).Request(restate.Void{})
15+
reservationSuccess, err := restate.Object[bool](ctx, "TicketObject", ticketId, "Reserve").Request(restate.Void{})
1716
if err != nil {
1817
return false, err
1918
}
2019

2120
if reservationSuccess {
22-
// withClass(1:8) highlight-line
23-
tickets, err := restate.GetAs[[]string](ctx, "tickets")
24-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
21+
// withClass(1:6) highlight-line
22+
tickets, err := restate.Get[[]string](ctx, "tickets")
23+
if err != nil {
2524
return false, err
2625
}
2726
tickets = append(tickets, ticketId)
28-
if err := ctx.Set("tickets", tickets); err != nil {
29-
return false, err
30-
}
27+
restate.Set(ctx, "tickets", tickets)
3128

32-
if err := ctx.Object("CartObject", ctx.Key(), "ExpireTicket").Send(ticketId, 15*time.Minute); err != nil {
33-
return false, err
34-
}
29+
restate.ObjectSend(ctx, "CartObject", restate.Key(ctx), "ExpireTicket").Send(ticketId, restate.WithDelay(15*time.Minute))
3530
}
3631

3732
return reservationSuccess, nil
@@ -40,25 +35,22 @@ func (CartObject) AddTicket(ctx restate.ObjectContext, ticketId string) (bool, e
4035
// <end_add_ticket>
4136

4237
// <start_checkout>
43-
func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
44-
// withClass(1:7) highlight-line
45-
tickets, err := restate.GetAs[[]string](ctx, "tickets")
46-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
38+
func (CartObject) Checkout(ctx restate.ObjectContext) (bool, error) {
39+
// withClass(1:4) highlight-line
40+
tickets, err := restate.Get[[]string](ctx, "tickets")
41+
if err != nil || len(tickets) == 0 {
4742
return false, err
4843
}
49-
if len(tickets) == 0 {
50-
return false, nil
51-
}
5244

53-
success, err := restate.CallAs[bool](ctx.Service("CheckoutService", "Handle")).
54-
Request(CheckoutRequest{UserId: ctx.Key(), Tickets: []string{"seat2B"}})
45+
success, err := restate.Service[bool](ctx, "CheckoutService", "Handle").
46+
Request(CheckoutRequest{UserId: restate.Key(ctx), Tickets: []string{"seat2B"}})
5547
if err != nil {
5648
return false, err
5749
}
5850

5951
if success {
6052
// withClass highlight-line
61-
ctx.Clear("tickets")
53+
restate.Clear(ctx, "tickets")
6254
}
6355

6456
return success, nil
@@ -67,25 +59,21 @@ func (CartObject) Checkout(ctx restate.ObjectContext, _ restate.Void) (bool, err
6759
// <end_checkout>
6860

6961
// <start_expire_ticket>
70-
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) (restate.Void, error) {
71-
tickets, err := restate.GetAs[[]string](ctx, "tickets")
72-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
73-
return restate.Void{}, err
62+
func (CartObject) ExpireTicket(ctx restate.ObjectContext, ticketId string) error {
63+
tickets, err := restate.Get[[]string](ctx, "tickets")
64+
if err != nil {
65+
return err
7466
}
7567
ticketI := slices.Index(tickets, ticketId)
7668

7769
if ticketI != -1 {
7870
tickets = slices.Delete(tickets, ticketI, ticketI+1)
79-
if err := ctx.Set("tickets", tickets); err != nil {
80-
return restate.Void{}, err
81-
}
71+
restate.Set(ctx, "tickets", tickets)
8272

83-
if err := ctx.Object("TicketObject", ticketId, "Unreserve").Send(restate.Void{}, 0); err != nil {
84-
return restate.Void{}, err
85-
}
73+
restate.ObjectSend(ctx, "TicketObject", ticketId, "Unreserve").Send(restate.Void{})
8674
}
8775

88-
return restate.Void{}, nil
76+
return nil
8977
}
9078

9179
// <end_expire_ticket>
Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
package main
22

33
import (
4-
"errors"
5-
64
"github.com/restatedev/examples/tutorials/tour-of-restate-go/auxiliary"
75
restate "github.com/restatedev/sdk-go"
86
)
97

108
type TicketObject struct{}
119

1210
// <start_reserve>
13-
func (TicketObject) Reserve(ctx restate.ObjectContext, _ restate.Void) (bool, error) {
14-
status, err := restate.GetAs[auxiliary.TicketStatus](ctx, "status")
15-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
11+
func (TicketObject) Reserve(ctx restate.ObjectContext) (bool, error) {
12+
status, err := restate.Get[auxiliary.TicketStatus](ctx, "status")
13+
if err != nil {
1614
return false, err
1715
}
1816

1917
if status == auxiliary.TicketStatusAvailable {
20-
ctx.Set("status", auxiliary.TicketStatusReserved)
18+
restate.Set(ctx, "status", auxiliary.TicketStatusReserved)
2119
return true, nil
2220
} else {
2321
return false, nil
@@ -27,33 +25,33 @@ func (TicketObject) Reserve(ctx restate.ObjectContext, _ restate.Void) (bool, er
2725
// <end_reserve>
2826

2927
// <start_unreserve>
30-
func (TicketObject) Unreserve(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
31-
status, err := restate.GetAs[auxiliary.TicketStatus](ctx, "status")
32-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
33-
return restate.Void{}, err
28+
func (TicketObject) Unreserve(ctx restate.ObjectContext) error {
29+
status, err := restate.Get[auxiliary.TicketStatus](ctx, "status")
30+
if err != nil {
31+
return err
3432
}
3533

3634
if status != auxiliary.TicketStatusSold {
37-
ctx.Clear("status")
35+
restate.Clear(ctx, "status")
3836
}
3937

40-
return restate.Void{}, nil
38+
return nil
4139
}
4240

4341
// <end_unreserve>
4442

4543
// <start_mark_as_sold>
46-
func (TicketObject) MarkAsSold(ctx restate.ObjectContext, _ restate.Void) (restate.Void, error) {
47-
status, err := restate.GetAs[auxiliary.TicketStatus](ctx, "status")
48-
if err != nil && !errors.Is(err, restate.ErrKeyNotFound) {
49-
return restate.Void{}, err
44+
func (TicketObject) MarkAsSold(ctx restate.ObjectContext) error {
45+
status, err := restate.Get[auxiliary.TicketStatus](ctx, "status")
46+
if err != nil {
47+
return err
5048
}
5149

5250
if status == auxiliary.TicketStatusReserved {
53-
ctx.Set("status", auxiliary.TicketStatusSold)
51+
restate.Set(ctx, "status", auxiliary.TicketStatusSold)
5452
}
5553

56-
return restate.Void{}, nil
54+
return nil
5755
}
5856

5957
// <end_mark_as_sold>

0 commit comments

Comments
 (0)