Skip to content
Snippets Groups Projects
Commit eb23874b authored by Jonah Husson's avatar Jonah Husson
Browse files

Change how params are passed in to prepare to pass from bindings

parent 1dfbf690
No related branches found
No related tags found
2 merge requests!510Release,!228New bindings for api2.0
......@@ -4,7 +4,6 @@ import (
"encoding/json"
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/catalog"
"gitlab.com/elixxir/client/e2e"
"gitlab.com/elixxir/client/fileTransfer"
ftCrypto "gitlab.com/elixxir/crypto/fileTransfer"
"gitlab.com/xx_network/primitives/id"
......@@ -89,6 +88,8 @@ type FileTransferReceiveProgressCallback interface {
// InitFileTransfer creates a bindings-level File Transfer manager
// Accepts client ID, ReceiveFileCallback and a ReporterFunc
func InitFileTransfer(e2eID int) (*FileTransfer, error) {
paramsJSON := GetDefaultFileTransferParams()
// Get bindings client from singleton
e2eCl, err := e2eTrackerSingleton.get(e2eID)
if err != nil {
......@@ -99,8 +100,13 @@ func InitFileTransfer(e2eID int) (*FileTransfer, error) {
myID := e2eCl.api.GetTransmissionIdentity().ID
rng := e2eCl.api.GetRng()
params, err := parseFileTransferParams(paramsJSON)
if err != nil {
return nil, err
}
// Create file transfer manager
m, err := fileTransfer.NewManager(fileTransfer.DefaultParams(), myID,
m, err := fileTransfer.NewManager(params, myID,
e2eCl.api.GetCmix(), e2eCl.api.GetStorage(), rng)
// Add file transfer processes to client services tracking
......@@ -116,6 +122,7 @@ func InitFileTransfer(e2eID int) (*FileTransfer, error) {
// Send is the bindings-level function for sending a File
func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
period string, callback FileTransferSentProgressCallback) ([]byte, error) {
paramsJSON := GetDefaultE2EParams()
// Unmarshal recipient ID
recipient, err := id.Unmarshal(recipientID)
if err != nil {
......@@ -146,11 +153,7 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
}
sendNew := func(transferInfo []byte) error {
params, err := e2e.GetDefaultParams().MarshalJSON()
if err != nil {
return err
}
resp, err := f.e2eCl.SendE2E(int(catalog.NewFileTransfer), recipientID, transferInfo, params)
resp, err := f.e2eCl.SendE2E(int(catalog.NewFileTransfer), recipientID, transferInfo, paramsJSON)
if err != nil {
return err
}
......
......@@ -11,6 +11,8 @@ package bindings
import (
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/fileTransfer"
"gitlab.com/elixxir/client/single"
"gitlab.com/elixxir/client/xxdk"
)
......@@ -38,6 +40,34 @@ func GetDefaultE2EParams() []byte {
return data
}
func GetDefaultFileTransferParams() []byte {
defaultParams := fileTransfer.DefaultParams()
data, err := defaultParams.MarshalJSON()
if err != nil {
jww.FATAL.Panicf("Unexpected error: %+v", err)
}
return data
}
func GetDefaultSingleUseParams() []byte {
defaultParams := single.GetDefaultRequestParams()
data, err := defaultParams.MarshalJSON()
if err != nil {
jww.FATAL.Panicf("Unexpected error: %+v", err)
}
return data
}
func parseSingleUseParams(data []byte) (single.RequestParams, error) {
p := &single.RequestParams{}
return *p, p.UnmarshalJSON(data)
}
func parseFileTransferParams(data []byte) (fileTransfer.Params, error) {
p := &fileTransfer.Params{}
return *p, p.UnmarshalJSON(data)
}
func parseCMixParams(data []byte) (xxdk.CMIXParams, error) {
p := &xxdk.CMIXParams{}
err := p.Unmarshal(data)
......
......@@ -4,7 +4,6 @@ import (
"encoding/json"
"gitlab.com/elixxir/client/restlike"
"gitlab.com/elixxir/client/restlike/single"
singleuse "gitlab.com/elixxir/client/single"
"gitlab.com/elixxir/crypto/contact"
)
......@@ -21,6 +20,7 @@ type RequestParams struct {
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum and a URI
// Returns json marshalled restlike.Message & error
func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
paramsJSON := GetDefaultSingleUseParams()
c, err := e2eTrackerSingleton.get(e2eID)
if err != nil {
return nil, err
......@@ -39,11 +39,16 @@ func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
return nil, err
}
params, err := parseSingleUseParams(paramsJSON)
if err != nil {
return nil, err
}
resp, err := req.Request(recipientContact, restlike.Method(message.Method), restlike.URI(message.URI),
message.Content, &restlike.Headers{
Headers: message.Headers,
Version: 0,
}, singleuse.GetDefaultRequestParams())
}, params)
if err != nil {
return nil, err
}
......@@ -54,6 +59,7 @@ func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) {
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum, URI, and a RestlikeCallback
// Returns an error, and the RestlikeCallback will be called with the results of json marshalling the response when received
func AsyncRequestRestLike(e2eID int, recipient, request []byte, cb RestlikeCallback) error {
paramsJSON := GetDefaultSingleUseParams()
c, err := e2eTrackerSingleton.get(e2eID)
if err != nil {
return err
......@@ -76,9 +82,14 @@ func AsyncRequestRestLike(e2eID int, recipient, request []byte, cb RestlikeCallb
cb.Callback(json.Marshal(message))
}
params, err := parseSingleUseParams(paramsJSON)
if err != nil {
return err
}
return req.AsyncRequest(recipientContact, restlike.Method(message.Method), restlike.URI(message.URI),
message.Content, &restlike.Headers{
Headers: message.Headers,
Version: 0,
}, rlcb, singleuse.GetDefaultRequestParams())
}, rlcb, params)
}
......@@ -14,6 +14,7 @@ import (
// TransmitSingleUse accepts a marshalled recipient contact object, tag, payload, SingleUseResponse callback func & a
// Client. Transmits payload to recipient via single use
func TransmitSingleUse(e2eID int, recipient []byte, tag string, payload []byte, responseCB SingleUseResponse) ([]byte, error) {
paramsJSON := GetDefaultSingleUseParams()
e2eCl, err := e2eTrackerSingleton.get(e2eID)
if err != nil {
return nil, err
......@@ -26,7 +27,12 @@ func TransmitSingleUse(e2eID int, recipient []byte, tag string, payload []byte,
rcb := &singleUseResponse{response: responseCB}
rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, single.GetDefaultRequestParams(), e2eCl.api.GetCmix(), e2eCl.api.GetRng().GetStream(), e2eCl.api.GetStorage().GetE2EGroup())
params, err := parseSingleUseParams(paramsJSON)
if err != nil {
return nil, err
}
rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, params, e2eCl.api.GetCmix(), e2eCl.api.GetRng().GetStream(), e2eCl.api.GetStorage().GetE2EGroup())
if err != nil {
return nil, err
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment