https://authzed.com logo
Title
i

Igor.Shmukler

09/13/2022, 3:09 PM
hello, I am having a problem building
LookupResources
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?