diff --git a/bindings/fileTransfer.go b/bindings/fileTransfer.go index 95e475e431eeab6db99ed353aae0ef1dc145bb7d..ee1d612640e9a2770919c270df03cce83922ebdd 100644 --- a/bindings/fileTransfer.go +++ b/bindings/fileTransfer.go @@ -34,29 +34,29 @@ type FileTransfer struct { // // Example JSON: // { -// "TransferID":"B4Z9cwU18beRoGbk5xBjbcd5Ryi9ZUFA2UBvi8FOHWo=", -// "SenderID":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD", -// "Preview":"aXQncyBtZSBhIHByZXZpZXc=", -// "Name":"testfile.txt", -// "Type":"text file", -// "Size":2048 +// "TransferID": "0U+QY1nMOUzQGxGpqZyxDw8Cd6+qm8t870CzLtVoUM8=", +// "SenderID": "UL3+S8XdJHAfUtCUm7iZMxW8orR8Nd5JM9Ky7/5jds8D", +// "Preview": "aXQNcyBtZSBhIHByZXZpZXc=", +// "Name": "testfile.txt", +// "Type": "text file", +// "Size": 2048 // } type ReceivedFile struct { - TransferID []byte // ID of the file transfer - SenderID []byte // ID of the file sender - Preview []byte // A preview of the file - Name string // Name of the file - Type string // String that indicates type of file - Size int // The size of the file, in bytes + TransferID *ftCrypto.TransferID // ID of the file transfer + SenderID *id.ID // ID of the file sender + Preview []byte // A preview of the file + Name string // Name of the file + Type string // String that indicates type of file + Size int // The size of the file, in bytes } // FileSend is a public struct that contains the file contents and its name, // type, and preview. // { -// "Name":"testfile.txt", -// "Type":"text file", -// "Preview":"aXQncyBtZSBhIHByZXZpZXc=", -// "Contents":"VGhpcyBpcyB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgZmlsZSBpbiBieXRlcw==" +// "Name": "testfile.txt", +// "Type": "text file", +// "Preview": "aXQnCyBtZSBhIHByZXZpZXc=", +// "Contents": "VGhpCyBpCyB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgZm6lsZSBPbiBieXRl2w==" // } type FileSend struct { Name string // Name of the file @@ -70,16 +70,16 @@ type FileSend struct { // // Example JSON: // { -// "Completed":false, -// "Transmitted":128, -// "Total":2048, -// "Err":null +// "TransferID": "RyJcMqtI3IIM1+YMxRwCcFiOX6AGuIzS+vQaPnqXVT8=", +// "Completed": false, +// "Transmitted": 128, +// "Total": 2048 // } type Progress struct { - Completed bool // Status of transfer (true if done) - Transmitted int // Number of file parts sent/received - Total int // Total number of file parts - Err error // Error status (if any) + TransferID *ftCrypto.TransferID // Transfer ID + Completed bool // Status of transfer (true if done) + Transmitted int // Number of file parts sent/received + Total int // Total number of file parts } // ReceiveFileCallback is a bindings-layer interface that contains a callback @@ -130,7 +130,7 @@ type FileTransferReceiveProgressCallback interface { func InitFileTransfer(e2eID int, receiveFileCallback ReceiveFileCallback, e2eFileTransferParamsJson, fileTransferParamsJson []byte) (*FileTransfer, error) { jww.INFO.Printf("[FT] Calling InitFileTransfer(e2eID:%d params:%s)", - fileTransferParamsJson) + e2eID, fileTransferParamsJson) // Get user from singleton user, err := e2eTrackerSingleton.get(e2eID) if err != nil { @@ -153,8 +153,8 @@ func InitFileTransfer(e2eID int, receiveFileCallback ReceiveFileCallback, rcb := func(tid *ftCrypto.TransferID, fileName, fileType string, sender *id.ID, size uint32, preview []byte) { receiveFileCallback.Callback(json.Marshal(ReceivedFile{ - TransferID: tid.Bytes(), - SenderID: sender.Marshal(), + TransferID: tid, + SenderID: sender, Preview: preview, Name: fileName, Type: fileType, @@ -206,13 +206,13 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32, // Wrap transfer progress callback to be passed to fileTransfer layer cb := func(completed bool, arrived, total uint16, st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) { - prog := &Progress{ + progress := &Progress{ + TransferID: st.TransferID(), Completed: completed, Transmitted: int(arrived), Total: int(total), - Err: err, } - pm, err := json.Marshal(prog) + pm, err := json.Marshal(progress) callback.Callback(pm, &FilePartTracker{t}, err) } @@ -282,13 +282,13 @@ func (f *FileTransfer) RegisterSentProgressCallback(tidBytes []byte, callback FileTransferSentProgressCallback, period int) error { cb := func(completed bool, arrived, total uint16, st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) { - prog := &Progress{ + progress := &Progress{ + TransferID: st.TransferID(), Completed: completed, Transmitted: int(arrived), Total: int(total), - Err: err, } - pm, err := json.Marshal(prog) + pm, err := json.Marshal(progress) callback.Callback(pm, &FilePartTracker{t}, err) } p := time.Millisecond * time.Duration(period) @@ -312,13 +312,13 @@ func (f *FileTransfer) RegisterReceivedProgressCallback(tidBytes []byte, callback FileTransferReceiveProgressCallback, period int) error { cb := func(completed bool, received, total uint16, rt fileTransfer.ReceivedTransfer, t fileTransfer.FilePartTracker, err error) { - prog := &Progress{ + progress := &Progress{ + TransferID: rt.TransferID(), Completed: completed, Transmitted: int(received), Total: int(total), - Err: err, } - pm, err := json.Marshal(prog) + pm, err := json.Marshal(progress) callback.Callback(pm, &FilePartTracker{t}, err) } p := time.Millisecond * time.Duration(period) diff --git a/bindings/fileTransfer_test.go b/bindings/fileTransfer_test.go index 81a0679e0a9737e4db9465e23d8d3519d70b9b9b..42d22a77ca6a23da4c67e3bbe1a324f77646bc1e 100644 --- a/bindings/fileTransfer_test.go +++ b/bindings/fileTransfer_test.go @@ -9,6 +9,7 @@ package bindings import ( "encoding/json" + "fmt" "testing" "gitlab.com/elixxir/crypto/fileTransfer" @@ -23,36 +24,33 @@ func TestFileTransfer_inputs(t *testing.T) { Preview: []byte("it's me a preview"), Contents: []byte("This is the full contents of the file in bytes"), } - fsm, _ := json.Marshal(fs) - t.Log("FileSend example json:") - t.Log(string(fsm)) - t.Log("\n") + fsm, _ := json.MarshalIndent(fs, "", " ") + t.Log("FileSend example JSON:") + fmt.Printf("%s\n\n", fsm) tid, _ := fileTransfer.NewTransferID(csprng.NewSystemRNG()) - sid := id.NewIdFromString("zezima", id.User, t) + sid, _ := id.NewRandomID(csprng.NewSystemRNG(), id.User) rf := &ReceivedFile{ - TransferID: tid.Bytes(), - SenderID: sid.Marshal(), + TransferID: &tid, + SenderID: sid, Preview: []byte("it's me a preview"), Name: "testfile.txt", Type: "text file", Size: 2048, } - rfm, _ := json.Marshal(rf) - t.Log("ReceivedFile example json:") - t.Log(string(rfm)) - t.Log("\n") + rfm, _ := json.MarshalIndent(rf, "", " ") + t.Log("ReceivedFile example JSON:") + fmt.Printf("%s\n\n", rfm) p := &Progress{ + TransferID: &tid, Completed: false, Transmitted: 128, Total: 2048, - Err: nil, } - pm, _ := json.Marshal(p) - t.Log("Progress example json:") - t.Log(string(pm)) - t.Log("\n") + pm, _ := json.MarshalIndent(p, "", " ") + t.Log("Progress example JSON:") + fmt.Printf("%s\n\n", pm) er := &EventReport{ Priority: 1, @@ -60,8 +58,7 @@ func TestFileTransfer_inputs(t *testing.T) { EventType: "Ping", Details: "This is an example of an event report", } - erm, _ := json.Marshal(er) - t.Log("EventReport example json:") - t.Log(string(erm)) - t.Log("\n") + erm, _ := json.MarshalIndent(er, "", " ") + t.Log("EventReport example JSON:") + fmt.Printf("%s\n\n", erm) }