Skip to content

Commit

Permalink
fix: hasura mapping for user orgs
Browse files Browse the repository at this point in the history
  • Loading branch information
peterphanouvong committed Aug 26, 2024
1 parent b99a01d commit a9588cb
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 41 deletions.
39 changes: 0 additions & 39 deletions src/session/getUserOrganizations.js

This file was deleted.

45 changes: 45 additions & 0 deletions src/session/getUserOrganizations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import {sessionManager} from './sessionManager';
import {kindeClient} from './kindeServerClient';
import {config} from '../config/index';
import {NextApiRequest, NextApiResponse} from 'next';
import {KindeOrganizations} from '../../types';

export const getUserOrganizationsFactory =
(req?: NextApiRequest, res?: NextApiResponse) =>
async (): Promise<KindeOrganizations | null> => {
try {
const userOrgs = await kindeClient.getUserOrganizations(
sessionManager(req, res)
);
const orgNames = (await kindeClient.getClaimValue(
sessionManager(req, res),
'organizations',
'id_token'
)) as {id: string; name: string}[];

const hasuraOrgCodes = (await kindeClient.getClaimValue(
sessionManager(req, res),
'x-hasura-org-codes',
'id_token'
)) as string[];

const hasuraOrganizations = (await kindeClient.getClaimValue(
sessionManager(req, res),
'x-hasura-organizations',
'id_token'
)) as {id: string; name: string}[];

return {
orgCodes: [...userOrgs.orgCodes, ...hasuraOrgCodes],
orgs: [...orgNames, ...hasuraOrganizations].map((org) => ({
code: org?.id,
name: org?.name
}))
};
} catch (error) {
if (config.isDebugMode) {
console.debug('getUser', error);
}
return null;
}
};
7 changes: 5 additions & 2 deletions src/session/kindeServerClient.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import {createKindeServerClient} from '@kinde-oss/kinde-typescript-sdk';
import {
createKindeServerClient,
GrantType
} from '@kinde-oss/kinde-typescript-sdk';
import {config} from '../config/index';

export const kindeClient = createKindeServerClient(
config.grantType,
GrantType.AUTHORIZATION_CODE,
config.clientOptions
);

0 comments on commit a9588cb

Please sign in to comment.