Igor.Shmukler
09/13/2022, 3:09 PMLookupResources
with NodeJS SDK.
The code is below:
const userRef = v1.ObjectReference.create({
objectType: 'user',
objectId: `${userId}`
});
const lookupResourcesRequest = v1.LookupResourcesRequest.create({
resourceObjectType: 'event',
permission: 'read',
subject: v1.SubjectReference.create({
object: userRef
})
});
console.log('lookup request:', lookupResourcesRequest);
// client.lookupResources(
// lookupResourcesRequest,
// function (err, res) {
// if (err) throw err;
// console.log('error:', err);
// console.log('response:', res);
// }
// );
console.log(
'lookupResources:',
spiceDBclient.lookupResources(lookupResourcesRequest)
);
I thought that lookupResources
returns a callback, like client.checkPermission
[which is working fine for me]. However, for me the callback version [commented out above] never returns. If I use it as a synchronous function, it returns:
lookupResources: ClientReadableStreamImpl {
_readableState: ReadableState {
objectMode: true,
highWaterMark: 16,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
...
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
deserialize: [Function (anonymous)],
call: BaseStreamingInterceptingCall {
call: Http2CallStream {
methodName: '/authzed.api.v1.PermissionsService/LookupResources',
channel: [ChannelImplementation],
...
disconnectListener: [Function (anonymous)]
},
methodDefinition: {
path: '/authzed.api.v1.PermissionsService/LookupResources',
...
requestSerialize: [Function (anonymous)],
responseDeserialize: [Function (anonymous)]
}
},
[Symbol(kCapture)]: false
}
What am I doing wrong?