Skip to content
This repository has been archived by the owner on Apr 11, 2024. It is now read-only.

Commit

Permalink
Add extra fields to sessionParams type
Browse files Browse the repository at this point in the history
We currently allow extra fields to be passed in
  • Loading branch information
lizkenyon committed Apr 1, 2024
1 parent 96a0aab commit 2713366
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
21 changes: 11 additions & 10 deletions packages/shopify-api/lib/session/session.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export class Session {
onlineAccessInfo: {
associated_user: {},
},
} as any;
} as SessionParams;
Object.entries(obj).forEach(([key, value]) => {
switch (key) {
case 'isOnline':
Expand All @@ -81,50 +81,51 @@ export class Session {
sessionData[key] = value ? new Date(Number(value)) : undefined;
break;
case 'onlineAccessInfo':
sessionData.onlineAccessInfo.associated_user.id = Number(value);
sessionData.onlineAccessInfo!.associated_user.id = Number(value);
break;
case 'userId':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.id = Number(value);
sessionData.onlineAccessInfo!.associated_user.id = Number(value);
break;
}
case 'firstName':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.first_name =
sessionData.onlineAccessInfo!.associated_user.first_name =
String(value);
break;
}
case 'lastName':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.last_name =
sessionData.onlineAccessInfo!.associated_user.last_name =
String(value);
break;
}
case 'email':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.email = String(value);
sessionData.onlineAccessInfo!.associated_user.email = String(value);
break;
}
case 'accountOwner':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.account_owner =
sessionData.onlineAccessInfo!.associated_user.account_owner =
Boolean(value);
break;
}
case 'locale':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.locale = String(value);
sessionData.onlineAccessInfo!.associated_user.locale =
String(value);
break;
}
case 'collaborator':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.collaborator =
sessionData.onlineAccessInfo!.associated_user.collaborator =
Boolean(value);
break;
}
case 'emailVerified':
if (returnUserData) {
sessionData.onlineAccessInfo.associated_user.email_verified =
sessionData.onlineAccessInfo!.associated_user.email_verified =
Boolean(value);
break;
}
Expand Down
4 changes: 4 additions & 0 deletions packages/shopify-api/lib/session/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ export interface SessionParams {
* Information on the user for the session. Only present for online sessions.
*/
onlineAccessInfo?: OnlineAccessInfo | StoredOnlineAccessInfo;
/**
* Additional properties of the session allowing for extension
*/
[key: string]: any;
}

type StoredOnlineAccessInfo = Omit<OnlineAccessInfo, 'associated_user'> & {
Expand Down

0 comments on commit 2713366

Please sign in to comment.