1

So far I have been using the following to execute a request against the Graph API.

import { MSGraphClient } from '@microsoft/sp-http';
const graphClient: MSGraphClient = await context.msGraphClientFactory.getClient();

const uriGetAccessPackageAssignmentRequests = `/identityGovernance/entitlementManagement/accessPackageAssignments/filterByCurrentUser(on='target')?$select=id&$expand=accessPackageAssignmentResourceRoles&$filter=assignmentState ne 'Expired'`;

graphClient.api(uriGetAccessPackageAssignmentRequests).version('beta').get();

This has been working without any problems until I decided to change to @pnp/graph in the newest version (3.4.1).

I can use all the preset calls, but I cannot find a way to execute a generic graph call with a custom endpoint.

In all the tutorials they talk about

import { graph } from "@pnp/graph";

But if I do so, I get the following error -> Module '"@pnp/graph"' has no exported member 'graph'.

As I said, the described way in the documentation of using

import { graphfi, GraphFI, SPFx as graphSPFx } from '@pnp/graph'
export const getGraph = (context?: WebPartContext): GraphFI => {
  if (_graph === null && context != null) {
    //You must add the @pnp/logging package to include the PnPLogging behavior it is no longer a peer dependency
    // The LogLevel set's at what level a message will be written to the console
    _graph = graphfi().using(graphSPFx(context)).using(PnPLogging(LogLevel.Warning))
  }
  return _graph
}

is working fine.

I just cannot find anything on how to do a custom endpoint (like the one above) with pnp v3.

Can anyone help here or do I have to stick to the MSGraphClient for that purpose?

Jools
  • 135
  • 2
  • 9

0 Answers0