Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Cannot Reproduce
-
0.9
Description
When passing a map with primitive values (i.e. boolean or integer) via the thrift-npm, I get the following error:
ERROR:Object false has no method 'copy'
The error is from the many copy() calls in thrift-npm: thrift/lib/thrift/transport.js
transport.js calls copy() on primitive thrift function parameters (i.e. int and boolean).
Example IDL:
struct SetTeamPrivilegesParams {
1: optional i32 teamId,
2: optional string platform,
3: optional string title,
4: optional map<string,bool> privileges
}
/**
- Sets the bit offsets in the Key Archive index for the various privileges sent by the client.
**/
SetTeamPrivilegesResponse setTeamPrivileges(1: SetTeamPrivilegesParams params) throws (1: ServiceException ex)
Example Client Code (vars in 'values' are all boolean):
var updateTeamParams = new ttypes.UpdateTeamParams({
teamId: teamId,
platform: platform,
title: title,
values:
});
var argsArray = [updateTeamParams];
try
{ tc.call( 'setTeamPrivileges', argsArray, restResponse ); }catch(err)
{ console.log( "ERROR:" + err.message ) };
ERROR:Object false has no method 'copy'
Please fix transports.js to handle map parameters with primitives.