Skip to content

Commit bc93803

Browse files
authored
fix(server): Investigating bugs invalid IDs (#103)
1 parent 8ed80dc commit bc93803

1 file changed

Lines changed: 28 additions & 11 deletions

File tree

server/internal/adapter/gql/gqlmodel/scalar_id.go

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

33
import (
4-
"errors"
4+
"fmt"
55
"io"
66
"strconv"
77

@@ -22,7 +22,7 @@ func UnmarshalPropertyFieldID(v interface{}) (id.PropertyFieldID, error) {
2222
if tmpStr, ok := v.(string); ok {
2323
return id.PropertyFieldID(tmpStr), nil
2424
}
25-
return id.PropertyFieldID(""), errors.New("invalid ID")
25+
return id.PropertyFieldID(""), fmt.Errorf("invalid propertyField ID: %v", v)
2626
}
2727

2828
func MarshalDatasetFieldID(t id.DatasetFieldID) graphql.Marshaler {
@@ -33,9 +33,13 @@ func MarshalDatasetFieldID(t id.DatasetFieldID) graphql.Marshaler {
3333

3434
func UnmarshalDatasetFieldID(v interface{}) (id.DatasetFieldID, error) {
3535
if tmpStr, ok := v.(string); ok {
36-
return id.DatasetFieldIDFrom(tmpStr)
36+
res, err := id.DatasetFieldIDFrom(tmpStr)
37+
if err != nil {
38+
return res, fmt.Errorf("invalid datasetField ID: %s", tmpStr)
39+
}
40+
return res, nil
3741
}
38-
return id.NewDatasetFieldID(), errors.New("invalid ID")
42+
return id.NewDatasetFieldID(), fmt.Errorf("invalid datasetField ID: %v", v)
3943
}
4044

4145
func MarshalPluginID(t id.PluginID) graphql.Marshaler {
@@ -46,9 +50,13 @@ func MarshalPluginID(t id.PluginID) graphql.Marshaler {
4650

4751
func UnmarshalPluginID(v interface{}) (id.PluginID, error) {
4852
if tmpStr, ok := v.(string); ok {
49-
return id.PluginIDFrom(tmpStr)
53+
res, err := id.PluginIDFrom(tmpStr)
54+
if err != nil {
55+
return res, fmt.Errorf("invalid plugin ID: %s", tmpStr)
56+
}
57+
return res, nil
5058
}
51-
return id.PluginID{}, errors.New("invalid ID")
59+
return id.PluginID{}, fmt.Errorf("invalid plugin ID: %v", v)
5260
}
5361

5462
func MarshalPluginExtensionID(t id.PluginExtensionID) graphql.Marshaler {
@@ -61,7 +69,7 @@ func UnmarshalPluginExtensionID(v interface{}) (id.PluginExtensionID, error) {
6169
if tmpStr, ok := v.(string); ok {
6270
return id.PluginExtensionID(tmpStr), nil
6371
}
64-
return id.PluginExtensionID(""), errors.New("invalid ID")
72+
return id.PluginExtensionID(""), fmt.Errorf("invalid pluginExtension ID: %v", v)
6573
}
6674

6775
func MarshalPropertySchemaID(t id.PropertySchemaID) graphql.Marshaler {
@@ -72,9 +80,13 @@ func MarshalPropertySchemaID(t id.PropertySchemaID) graphql.Marshaler {
7280

7381
func UnmarshalPropertySchemaID(v interface{}) (id.PropertySchemaID, error) {
7482
if tmpStr, ok := v.(string); ok {
75-
return id.PropertySchemaIDFrom(tmpStr)
83+
res, err := id.PropertySchemaIDFrom(tmpStr)
84+
if err != nil {
85+
return res, fmt.Errorf("invalid propertySchema ID: %s", tmpStr)
86+
}
87+
return res, nil
7688
}
77-
return id.PropertySchemaID{}, errors.New("invalid ID")
89+
return id.PropertySchemaID{}, fmt.Errorf("invalid propertySchema ID: %v", v)
7890
}
7991

8092
func MarshalPropertySchemaGroupID(t id.PropertySchemaGroupID) graphql.Marshaler {
@@ -87,7 +99,7 @@ func UnmarshalPropertySchemaGroupID(v interface{}) (id.PropertySchemaGroupID, er
8799
if tmpStr, ok := v.(string); ok {
88100
return id.PropertySchemaGroupID(tmpStr), nil
89101
}
90-
return id.PropertySchemaGroupID(""), errors.New("invalid ID")
102+
return id.PropertySchemaGroupID(""), fmt.Errorf("invalid propertySchemaGroup ID: %v", v)
91103
}
92104

93105
func IDFrom[T idx.Type](i idx.ID[T]) ID {
@@ -134,7 +146,12 @@ func IDFromPropertySchemaIDRef(i *id.PropertySchemaID) *ID {
134146
}
135147

136148
func ToID[A idx.Type](a ID) (idx.ID[A], error) {
137-
return idx.From[A](string(a))
149+
res, err := idx.From[A](string(a))
150+
if err != nil {
151+
var t A
152+
return res, fmt.Errorf("invalid %s ID: %s", t.Type(), string(a))
153+
}
154+
return res, nil
138155
}
139156

140157
func ToIDs[A idx.Type](a []ID) (*[]idx.ID[A], error) {

0 commit comments

Comments
 (0)