Skip to content

Commit 3509425

Browse files
author
Diwaker Gupta
committed
Fix #22: add custom unmarshal for DeleteResult
1 parent aca6196 commit 3509425

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

dropbox/files/metadata.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,27 @@ func (s *SearchMatch) UnmarshalJSON(b []byte) error {
7373
}
7474
return nil
7575
}
76+
77+
type deleteResult struct {
78+
FileOpsResult
79+
Metadata metadataUnion `json:"metadata"`
80+
}
81+
82+
// UnmarshalJSON deserializes into a SearchMatch instance
83+
func (s *DeleteResult) UnmarshalJSON(b []byte) error {
84+
var m deleteResult
85+
if err := json.Unmarshal(b, &m); err != nil {
86+
return err
87+
}
88+
s.FileOpsResult = m.FileOpsResult
89+
e := m.Metadata
90+
switch e.Tag {
91+
case "file":
92+
s.Metadata = e.File
93+
case "folder":
94+
s.Metadata = e.Folder
95+
case "deleted":
96+
s.Metadata = e.Deleted
97+
}
98+
return nil
99+
}

generator/go_rsrc/files/metadata.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,27 @@ func (s *SearchMatch) UnmarshalJSON(b []byte) error {
7373
}
7474
return nil
7575
}
76+
77+
type deleteResult struct {
78+
FileOpsResult
79+
Metadata metadataUnion `json:"metadata"`
80+
}
81+
82+
// UnmarshalJSON deserializes into a SearchMatch instance
83+
func (s *DeleteResult) UnmarshalJSON(b []byte) error {
84+
var m deleteResult
85+
if err := json.Unmarshal(b, &m); err != nil {
86+
return err
87+
}
88+
s.FileOpsResult = m.FileOpsResult
89+
e := m.Metadata
90+
switch e.Tag {
91+
case "file":
92+
s.Metadata = e.File
93+
case "folder":
94+
s.Metadata = e.Folder
95+
case "deleted":
96+
s.Metadata = e.Deleted
97+
}
98+
return nil
99+
}

0 commit comments

Comments
 (0)