Skip to content

Commit

Permalink
Merge pull request #306 from FactomProject/FD-167
Browse files Browse the repository at this point in the history
Fd 167
  • Loading branch information
PaulSnow committed Aug 8, 2017
2 parents 9cbaa46 + ff03b8f commit 8fcdbf3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 7 deletions.
10 changes: 10 additions & 0 deletions wsapi/wsapiStructs.go
Expand Up @@ -96,6 +96,16 @@ type EntryBlockResponse struct {
EntryList []EntryAddr `json:"entrylist"`
}

type EntryCreditBlockResponse struct {
ECBlock struct {
Header interfaces.IECBlockHeader
Body interfaces.IECBlockBody
HeaderHash interfaces.IHash `json:"headerhash"`
FullHash interfaces.IHash `json:"fullhash"`
} `json:"ecblock"`
RawData string `json:"rawdata"`
}

type EntryResponse struct {
ChainID string `json:"chainid"`
Content string `json:"content"`
Expand Down
25 changes: 18 additions & 7 deletions wsapi/wsapiV2.go
Expand Up @@ -181,6 +181,7 @@ func HandleV2Request(state interfaces.IState, j *primitives.JSON2Request) (*prim
jsonResp := primitives.NewJSON2Response()
jsonResp.ID = j.ID
jsonResp.Result = resp

return jsonResp, nil
}

Expand Down Expand Up @@ -247,7 +248,7 @@ func HandleV2EntryCreditBlock(state interfaces.IState, params interface{}) (inte
return nil, NewBlockNotFoundError()
}

return ecBlockToResp(block)
return ECBlockToResp(block)
}

func HandleV2ECBlockByHeight(state interfaces.IState, params interface{}) (interface{}, *primitives.JSONError) {
Expand All @@ -271,23 +272,33 @@ func HandleV2ECBlockByHeight(state interfaces.IState, params interface{}) (inter
return nil, NewBlockNotFoundError()
}

return ecBlockToResp(block)
return ECBlockToResp(block)
}

func ecBlockToResp(block interfaces.IEntryCreditBlock) (interface{}, *primitives.JSONError) {
func ECBlockToResp(block interfaces.IEntryCreditBlock) (interface{}, *primitives.JSONError) {
raw, err := block.MarshalBinary()
if err != nil {
return nil, NewInternalError()
}

resp := new(BlockHeightResponse)
b, err := ObjectToJStruct(block)
resp := new(EntryCreditBlockResponse)

if err != nil {
return nil, NewInternalError()
}
resp.ECBlock = b
resp.ECBlock.Body = block.GetBody()
resp.ECBlock.Header = block.GetHeader()
resp.RawData = hex.EncodeToString(raw)

tmpHash, err := block.GetFullHash()
if err != nil {
return nil, NewInternalError()
}
resp.ECBlock.FullHash = tmpHash
tmpHash, err = block.HeaderHash()
if err != nil {
return nil, NewInternalError()
}
resp.ECBlock.HeaderHash = tmpHash
return resp, nil
}

Expand Down
28 changes: 28 additions & 0 deletions wsapi/wsapiV2_test.go
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/json"
"io/ioutil"
"net/http"
"reflect"
"strings"
"testing"

Expand Down Expand Up @@ -442,3 +443,30 @@ func TestJSONString(t *testing.T) {
}
}
}

func Test_ecBlockToResp(t *testing.T) {
type args struct {
block interfaces.IEntryCreditBlock
}
tests := []struct {
name string
args args
want interface{}
want1 *primitives.JSONError
}{

// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

got, got1 := ECBlockToResp(tt.args.block)
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("ecBlockToResp() got = %v, want %v", got, tt.want)
}
if !reflect.DeepEqual(got1, tt.want1) {
t.Errorf("ecBlockToResp() got1 = %v, want %v", got1, tt.want1)
}
})
}
}

0 comments on commit 8fcdbf3

Please sign in to comment.