Skip to content

Commit

Permalink
improve errors to show unexpected Type in responses; minor doco tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
gedge committed Jul 17, 2019
1 parent f0fb2bf commit 324718b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
17 changes: 10 additions & 7 deletions deserialize.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"fmt"
)

// DeserializeVertices converts a graphson string to a slice of Vertex
func DeserializeVertices(rawResponse string) ([]Vertex, error) {
// TODO: empty strings for property values will cause invalid json
// make so it can handle that case
Expand All @@ -16,6 +17,7 @@ func DeserializeVertices(rawResponse string) ([]Vertex, error) {
return DeserializeVerticesFromBytes([]byte(rawResponse))
}

// DeserializeVerticesFromBytes returns a slice of Vertex from the graphson rawResponse list of vertex
func DeserializeVerticesFromBytes(rawResponse []byte) ([]Vertex, error) {
// TODO: empty strings for property values will cause invalid json
// make so it can handle that case
Expand All @@ -31,6 +33,7 @@ func DeserializeVerticesFromBytes(rawResponse []byte) ([]Vertex, error) {
return response, nil
}

// DeserializeListOfVerticesFromBytes returns a slice of Vertex from the graphson rawResponse g:List of vertex
func DeserializeListOfVerticesFromBytes(rawResponse []byte) ([]Vertex, error) {
var metaResponse ListVertices
var response []Vertex
Expand All @@ -44,7 +47,7 @@ func DeserializeListOfVerticesFromBytes(rawResponse []byte) ([]Vertex, error) {
}

if metaResponse.Type != "g:List" {
return response, errors.New("DeserializeListOfVerticesFromBytes: Expected `g:List` type")
return response, fmt.Errorf("DeserializeListOfVerticesFromBytes: Expected `g:List` type, but got %q", metaResponse.Type)
}

return metaResponse.Value, nil
Expand All @@ -64,7 +67,7 @@ func DeserializeListOfEdgesFromBytes(rawResponse []byte) (Edges, error) {
}

if metaResponse.Type != "g:List" {
return response, errors.New("DeserializeListOfEdgesFromBytes: Expected `g:List` type")
return response, fmt.Errorf("DeserializeListOfEdgesFromBytes: Expected `g:List` type, but got %q", metaResponse.Type)
}

return metaResponse.Value, nil
Expand All @@ -82,7 +85,7 @@ func DeserializeMapFromBytes(rawResponse []byte) (resMap map[string]interface{},
}

if metaResponse.Type != "g:Map" {
return resMap, errors.New("DeserializeMapFromBytes: Expected `g:Map` type")
return resMap, fmt.Errorf("DeserializeMapFromBytes: Expected `g:Map` type, but got %q", metaResponse.Type)
}

return resMap, nil
Expand All @@ -101,7 +104,7 @@ func DeserializePropertiesFromBytes(rawResponse []byte, resMap map[string][]inte
}

if metaResponse.Type != "g:List" {
return errors.New("DeserializePropertiesFromBytes: Expected `g:List` type")
return fmt.Errorf("DeserializePropertiesFromBytes: Expected `g:List` type, but got %q", metaResponse.Type)
}
var props []VertexProperty
if err = json.Unmarshal(metaResponse.Value, &props); err != nil {
Expand Down Expand Up @@ -133,7 +136,7 @@ func DeserializeStringListFromBytes(rawResponse []byte) (vals []string, err erro
}

if metaResponse.Type != "g:List" {
err = errors.New("DeserializeStringListFromBytes: Expected `g:List` type")
err = fmt.Errorf("DeserializeStringListFromBytes: Expected `g:List` type, but got %q", metaResponse.Type)
return
}

Expand All @@ -157,7 +160,7 @@ func DeserializeSingleFromBytes(rawResponse []byte) (gV GenericValue, err error)
}

if metaResponse.Type != "g:List" {
err = errors.New("DeserializeSingleFromBytes: Expected `g:List` type")
err = fmt.Errorf("DeserializeSingleFromBytes: Expected `g:List` type, but got %q", metaResponse.Type)
return
}

Expand All @@ -182,7 +185,7 @@ func DeserializeNumber(rawResponse []byte) (count int64, err error) {
}

if genVal.Type != "g:Int64" {
err = errors.New("DeserializeNumber: Expected `g:Int64` type")
err = fmt.Errorf("DeserializeNumber: Expected `g:Int64` type, but got %q", genVal.Type)
return
}
count = int64(genVal.Value.(float64))
Expand Down
2 changes: 1 addition & 1 deletion utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ func (v Vertex) GetMultiPropertyInt32(key string) (vals []int32, err error) {
return
}

// getMultiPropertyAs returns the values for the given property `key` as type `wantType`
// GetMultiPropertyAs returns the values for the given property `key` as type `wantType`
// will return an error if the property is not a set of the given `wantType` (string, bool, int64)
func (v Vertex) GetMultiPropertyAs(key, wantType string) (vals []interface{}, err error) {
var valInterface []VertexProperty
Expand Down

0 comments on commit 324718b

Please sign in to comment.