Skip to content

Commit b35749e

Browse files
author
Norman Meier
committed
chore: replace ujson with official json
Signed-off-by: Norman Meier <norman@samourai.coop>
1 parent 4dc53b5 commit b35749e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+809
-1814
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module gno.land/p/demo/teritori/dao_core
22

33
require (
4+
gno.land/p/demo/json v0.0.0-latest
45
gno.land/p/demo/teritori/dao_interfaces v0.0.0-latest
56
gno.land/p/demo/teritori/markdown_utils v0.0.0-latest
6-
gno.land/p/demo/teritori/ujson v0.0.0-latest
77
)

examples/gno.land/p/demo/teritori/dao_core/messages.gno

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package core
22

33
import (
4+
"gno.land/p/demo/json"
45
dao_interfaces "gno.land/p/demo/teritori/dao_interfaces"
5-
"gno.land/p/demo/teritori/ujson"
66
)
77

88
// UpdateProposalModules
@@ -12,6 +12,8 @@ type UpdateProposalModulesExecutableMessage struct {
1212
ToDisable []int
1313
}
1414

15+
var _ dao_interfaces.ExecutableMessage = &UpdateProposalModulesExecutableMessage{}
16+
1517
func (msg UpdateProposalModulesExecutableMessage) Type() string {
1618
return "gno.land/p/demo/teritori/dao_core.UpdateProposalModules"
1719
}
@@ -20,18 +22,20 @@ func (msg *UpdateProposalModulesExecutableMessage) String() string {
2022
panic(ErrNotImplemented)
2123
}
2224

23-
func (msg *UpdateProposalModulesExecutableMessage) ToJSON() string {
25+
func (msg *UpdateProposalModulesExecutableMessage) ToJSON() *json.Node {
2426
panic(ErrNotImplemented)
2527
}
2628

27-
func (msg *UpdateProposalModulesExecutableMessage) FromJSON(ast *ujson.JSONASTNode) {
29+
func (msg *UpdateProposalModulesExecutableMessage) FromJSON(ast *json.Node) {
2830
panic(ErrNotImplemented)
2931
}
3032

3133
type UpdateProposalModulesMessageHandler struct {
3234
dao dao_interfaces.IDAOCore
3335
}
3436

37+
var _ dao_interfaces.MessageHandler = &UpdateProposalModulesMessageHandler{}
38+
3539
func NewUpdateProposalModulesMessageHandler(dao dao_interfaces.IDAOCore) *UpdateProposalModulesMessageHandler {
3640
return &UpdateProposalModulesMessageHandler{dao: dao}
3741
}
@@ -45,8 +49,8 @@ func (handler *UpdateProposalModulesMessageHandler) Execute(message dao_interfac
4549
handler.dao.UpdateProposalModules(msg.ToAdd, msg.ToDisable)
4650
}
4751

48-
func (handler *UpdateProposalModulesMessageHandler) MessageFromJSON(ast *ujson.JSONASTNode) dao_interfaces.ExecutableMessage {
49-
panic(ErrNotSupported)
52+
func (handler *UpdateProposalModulesMessageHandler) Instantiate() dao_interfaces.ExecutableMessage {
53+
return &UpdateProposalModulesExecutableMessage{}
5054
}
5155

5256
// UpdateVotingModule
@@ -55,6 +59,8 @@ type UpdateVotingModuleExecutableMessage struct {
5559
Module dao_interfaces.IVotingModule
5660
}
5761

62+
var _ dao_interfaces.ExecutableMessage = &UpdateVotingModuleExecutableMessage{}
63+
5864
func (msg UpdateVotingModuleExecutableMessage) Type() string {
5965
return "gno.land/p/demo/teritori/dao_core.UpdateVotingModule"
6066
}
@@ -63,18 +69,20 @@ func (msg *UpdateVotingModuleExecutableMessage) String() string {
6369
panic(ErrNotImplemented)
6470
}
6571

66-
func (msg *UpdateVotingModuleExecutableMessage) ToJSON() string {
72+
func (msg *UpdateVotingModuleExecutableMessage) ToJSON() *json.Node {
6773
panic(ErrNotImplemented)
6874
}
6975

70-
func (msg *UpdateVotingModuleExecutableMessage) FromJSON(ast *ujson.JSONASTNode) {
76+
func (msg *UpdateVotingModuleExecutableMessage) FromJSON(ast *json.Node) {
7177
panic(ErrNotImplemented)
7278
}
7379

7480
type UpdateVotingModuleMessageHandler struct {
7581
dao dao_interfaces.IDAOCore
7682
}
7783

84+
var _ dao_interfaces.MessageHandler = &UpdateVotingModuleMessageHandler{}
85+
7886
func NewUpdateVotingModuleMessageHandler(dao dao_interfaces.IDAOCore) *UpdateVotingModuleMessageHandler {
7987
return &UpdateVotingModuleMessageHandler{dao: dao}
8088
}
@@ -88,6 +96,6 @@ func (handler *UpdateVotingModuleMessageHandler) Execute(message dao_interfaces.
8896
handler.dao.UpdateVotingModule(msg.Module)
8997
}
9098

91-
func (handler *UpdateVotingModuleMessageHandler) MessageFromJSON(ast *ujson.JSONASTNode) dao_interfaces.ExecutableMessage {
92-
panic(ErrNotSupported)
99+
func (handler *UpdateVotingModuleMessageHandler) Instantiate() dao_interfaces.ExecutableMessage {
100+
return &UpdateVotingModuleExecutableMessage{}
93101
}

examples/gno.land/p/demo/teritori/dao_interfaces/gno.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ module gno.land/p/demo/teritori/dao_interfaces
22

33
require (
44
gno.land/p/demo/avl v0.0.0-latest
5-
gno.land/p/demo/teritori/ujson v0.0.0-latest
5+
gno.land/p/demo/json v0.0.0-latest
66
)

examples/gno.land/p/demo/teritori/dao_interfaces/messages.gno

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package dao_interfaces
22

33
import (
4-
"gno.land/p/demo/teritori/ujson"
4+
"gno.land/p/demo/json"
55
)
66

77
type ExecutableMessage interface {
8-
ujson.JSONAble
9-
ujson.FromJSONAble
8+
ToJSON() *json.Node
9+
FromJSON(ast *json.Node)
1010

1111
String() string
1212
Type() string
1313
}
1414

1515
type MessageHandler interface {
1616
Execute(message ExecutableMessage)
17-
MessageFromJSON(ast *ujson.JSONASTNode) ExecutableMessage
17+
Instantiate() ExecutableMessage
1818
Type() string
1919
}
2020

examples/gno.land/p/demo/teritori/dao_interfaces/messages_registry.gno

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package dao_interfaces
22

33
import (
44
"gno.land/p/demo/avl"
5-
"gno.land/p/demo/teritori/ujson"
5+
"gno.land/p/demo/json"
66
)
77

88
type MessagesRegistry struct {
@@ -24,21 +24,18 @@ func (r *MessagesRegistry) Remove(t string) {
2424
r.handlers.Remove(t)
2525
}
2626

27-
func (r *MessagesRegistry) MessagesFromJSON(messagesJSON string) []ExecutableMessage {
28-
slice := ujson.ParseSlice(messagesJSON)
29-
msgs := make([]ExecutableMessage, 0, len(slice))
30-
for _, child := range slice {
31-
var messageType string
32-
var payload *ujson.JSONASTNode
33-
child.ParseObject([]*ujson.ParseKV{
34-
{Key: "type", Value: &messageType},
35-
{Key: "payload", Value: &payload},
36-
})
27+
func (r *MessagesRegistry) MessagesFromJSON(slice []*json.Node) []ExecutableMessage {
28+
msgs := make([]ExecutableMessage, len(slice))
29+
for i, elem := range slice {
30+
messageType := json.Must(elem.GetKey("type")).MustString()
31+
payload := json.Must(elem.GetKey("payload"))
3732
h, ok := r.handlers.Get(messageType)
3833
if !ok {
3934
panic("invalid ExecutableMessage: invalid message type")
4035
}
41-
msgs = append(msgs, h.(MessageHandler).MessageFromJSON(payload))
36+
instance := h.(MessageHandler).Instantiate()
37+
instance.FromJSON(payload)
38+
msgs[i] = instance
4239
}
4340
return msgs
4441
}
@@ -61,15 +58,17 @@ type RegisterHandlerExecutableMessage struct {
6158
Handler MessageHandler
6259
}
6360

61+
var _ ExecutableMessage = &RegisterHandlerExecutableMessage{}
62+
6463
func (m RegisterHandlerExecutableMessage) Type() string {
6564
return "gno.land/p/demo/teritori/dao_interfaces.RegisterHandler"
6665
}
6766

68-
func (m *RegisterHandlerExecutableMessage) FromJSON(ast *ujson.JSONASTNode) {
67+
func (m *RegisterHandlerExecutableMessage) FromJSON(ast *json.Node) {
6968
panic("not implemented")
7069
}
7170

72-
func (m *RegisterHandlerExecutableMessage) ToJSON() string {
71+
func (m *RegisterHandlerExecutableMessage) ToJSON() *json.Node {
7372
panic("not implemented")
7473
}
7574

@@ -81,6 +80,8 @@ type RegisterHandlerExecutableMessageHandler struct {
8180
registry *MessagesRegistry
8281
}
8382

83+
var _ MessageHandler = &RegisterHandlerExecutableMessageHandler{}
84+
8485
func NewRegisterHandlerExecutableMessageHandler(registry *MessagesRegistry) *RegisterHandlerExecutableMessageHandler {
8586
return &RegisterHandlerExecutableMessageHandler{registry: registry}
8687
}
@@ -89,8 +90,8 @@ func (h RegisterHandlerExecutableMessageHandler) Type() string {
8990
return RegisterHandlerExecutableMessage{}.Type()
9091
}
9192

92-
func (h *RegisterHandlerExecutableMessageHandler) MessageFromJSON(ast *ujson.JSONASTNode) ExecutableMessage {
93-
panic("not implemented")
93+
func (h *RegisterHandlerExecutableMessageHandler) Instantiate() ExecutableMessage {
94+
return &RegisterHandlerExecutableMessage{}
9495
}
9596

9697
func (h *RegisterHandlerExecutableMessageHandler) Execute(msg ExecutableMessage) {
@@ -101,16 +102,18 @@ type RemoveHandlerExecutableMessage struct {
101102
HandlerType string
102103
}
103104

105+
var _ ExecutableMessage = &RemoveHandlerExecutableMessage{}
106+
104107
func (m RemoveHandlerExecutableMessage) Type() string {
105108
return "gno.land/p/demo/teritori/dao_interfaces.RemoveHandler"
106109
}
107110

108-
func (m *RemoveHandlerExecutableMessage) FromJSON(ast *ujson.JSONASTNode) {
109-
ast.ParseAny(&m.HandlerType)
111+
func (m *RemoveHandlerExecutableMessage) FromJSON(ast *json.Node) {
112+
m.HandlerType = ast.MustString()
110113
}
111114

112-
func (m *RemoveHandlerExecutableMessage) ToJSON() string {
113-
return ujson.FormatAny(m.HandlerType)
115+
func (m *RemoveHandlerExecutableMessage) ToJSON() *json.Node {
116+
return json.StringNode("", m.HandlerType)
114117
}
115118

116119
func (m *RemoveHandlerExecutableMessage) String() string {
@@ -121,6 +124,8 @@ type RemoveHandlerExecutableMessageHandler struct {
121124
registry *MessagesRegistry
122125
}
123126

127+
var _ MessageHandler = &RemoveHandlerExecutableMessageHandler{}
128+
124129
func NewRemoveHandlerExecutableMessageHandler(registry *MessagesRegistry) *RemoveHandlerExecutableMessageHandler {
125130
return &RemoveHandlerExecutableMessageHandler{registry: registry}
126131
}
@@ -129,10 +134,8 @@ func (h RemoveHandlerExecutableMessageHandler) Type() string {
129134
return RemoveHandlerExecutableMessage{}.Type()
130135
}
131136

132-
func (h *RemoveHandlerExecutableMessageHandler) MessageFromJSON(ast *ujson.JSONASTNode) ExecutableMessage {
133-
msg := &RemoveHandlerExecutableMessage{}
134-
ast.ParseAny(msg)
135-
return msg
137+
func (h *RemoveHandlerExecutableMessageHandler) Instantiate() ExecutableMessage {
138+
return &RemoveHandlerExecutableMessage{}
136139
}
137140

138141
func (h *RemoveHandlerExecutableMessageHandler) Execute(msg ExecutableMessage) {

examples/gno.land/p/demo/teritori/dao_interfaces/messages_registry_test.gno

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package dao_interfaces
22

33
import (
44
"testing"
5+
6+
"gno.land/p/demo/json"
57
)
68

79
func TestRegistry(t *testing.T) {
@@ -15,7 +17,7 @@ func TestRegistry(t *testing.T) {
1517
registry.Execute(registerMsg)
1618

1719
// Test messages execution
18-
msgs := registry.MessagesFromJSON(`[{"type":"CopyMessage","payload":"Hello"}]`)
20+
msgs := registry.MessagesFromJSON(json.Must(json.Unmarshal(`[{"type":"CopyMessage","payload":"Hello"}]`)).MustArray())
1921
if len(msgs) != 1 {
2022
t.Errorf("Expected 1 message, got %d", len(msgs))
2123
}

examples/gno.land/p/demo/teritori/dao_interfaces/messages_testing.gno

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dao_interfaces
22

33
import (
4-
"gno.land/p/demo/teritori/ujson"
4+
"gno.land/p/demo/json"
55
)
66

77
type CopyMessage struct {
@@ -16,12 +16,12 @@ func (m *CopyMessage) String() string {
1616
return m.Value
1717
}
1818

19-
func (m *CopyMessage) FromJSON(ast *ujson.JSONASTNode) {
20-
ast.ParseAny(&m.Value)
19+
func (m *CopyMessage) FromJSON(ast *json.Node) {
20+
m.Value = ast.MustString()
2121
}
2222

23-
func (m *CopyMessage) ToJSON() string {
24-
return ujson.FormatString(m.Value)
23+
func (m *CopyMessage) ToJSON() *json.Node {
24+
return json.StringNode("", m.Value)
2525
}
2626

2727
type CopyMessageHandler struct {
@@ -47,8 +47,6 @@ func (h CopyMessageHandler) Type() string {
4747
return "CopyMessage"
4848
}
4949

50-
func (h *CopyMessageHandler) MessageFromJSON(ast *ujson.JSONASTNode) ExecutableMessage {
51-
var msg CopyMessage
52-
ast.ParseAny(&msg)
53-
return &msg
50+
func (h *CopyMessageHandler) Instantiate() ExecutableMessage {
51+
return &CopyMessage{}
5452
}

0 commit comments

Comments
 (0)