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

Commit 765dff6

Browse files
authored
Merge pull request #1313 from Shopify/liz/only-return-user-when-online
Only return user when online
2 parents af30ecd + b60c6c9 commit 765dff6

File tree

3 files changed

+36
-20
lines changed

3 files changed

+36
-20
lines changed

.changeset/nasty-trees-sing.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@shopify/shopify-api": patch
3+
---
4+
5+
Fixes bug, that is returning the onlineAccessInfo field on the session, when the session if offline

packages/shopify-api/lib/session/__tests__/session.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,5 +571,20 @@ describe('toPropertyArray and fromPropertyArray', () => {
571571
).toBeUndefined();
572572
}
573573
});
574+
const describe = test.session.isOnline ? 'Does' : 'Does not';
575+
const isOnline = test.session.isOnline ? 'online' : 'offline';
576+
577+
it(`${describe} have online access info when the token is ${isOnline}`, () => {
578+
const session = new Session(test.session);
579+
const sessionCopy = Session.fromPropertyArray(
580+
session.toPropertyArray(test.returnUserData),
581+
test.returnUserData,
582+
);
583+
if (test.session.isOnline) {
584+
expect(sessionCopy.onlineAccessInfo).toBeDefined();
585+
} else {
586+
expect(sessionCopy.onlineAccessInfo).toBeUndefined();
587+
}
588+
});
574589
});
575590
});

packages/shopify-api/lib/session/session.ts

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,10 @@ export class Session {
5858
}),
5959
);
6060

61-
const sessionData = {
62-
onlineAccessInfo: {
63-
associated_user: {},
64-
},
65-
} as SessionParams;
61+
const sessionData = {} as SessionParams;
62+
const onlineAccessInfo = {
63+
associated_user: {},
64+
} as OnlineAccessInfo;
6665
Object.entries(obj).forEach(([key, value]) => {
6766
switch (key) {
6867
case 'isOnline':
@@ -81,59 +80,56 @@ export class Session {
8180
sessionData[key] = value ? new Date(Number(value)) : undefined;
8281
break;
8382
case 'onlineAccessInfo':
84-
sessionData.onlineAccessInfo!.associated_user.id = Number(value);
83+
onlineAccessInfo.associated_user.id = Number(value);
8584
break;
8685
case 'userId':
8786
if (returnUserData) {
88-
sessionData.onlineAccessInfo!.associated_user.id = Number(value);
87+
onlineAccessInfo.associated_user.id = Number(value);
8988
break;
9089
}
9190
case 'firstName':
9291
if (returnUserData) {
93-
sessionData.onlineAccessInfo!.associated_user.first_name =
94-
String(value);
92+
onlineAccessInfo.associated_user.first_name = String(value);
9593
break;
9694
}
9795
case 'lastName':
9896
if (returnUserData) {
99-
sessionData.onlineAccessInfo!.associated_user.last_name =
100-
String(value);
97+
onlineAccessInfo.associated_user.last_name = String(value);
10198
break;
10299
}
103100
case 'email':
104101
if (returnUserData) {
105-
sessionData.onlineAccessInfo!.associated_user.email = String(value);
102+
onlineAccessInfo.associated_user.email = String(value);
106103
break;
107104
}
108105
case 'accountOwner':
109106
if (returnUserData) {
110-
sessionData.onlineAccessInfo!.associated_user.account_owner =
111-
Boolean(value);
107+
onlineAccessInfo.associated_user.account_owner = Boolean(value);
112108
break;
113109
}
114110
case 'locale':
115111
if (returnUserData) {
116-
sessionData.onlineAccessInfo!.associated_user.locale =
117-
String(value);
112+
onlineAccessInfo.associated_user.locale = String(value);
118113
break;
119114
}
120115
case 'collaborator':
121116
if (returnUserData) {
122-
sessionData.onlineAccessInfo!.associated_user.collaborator =
123-
Boolean(value);
117+
onlineAccessInfo.associated_user.collaborator = Boolean(value);
124118
break;
125119
}
126120
case 'emailVerified':
127121
if (returnUserData) {
128-
sessionData.onlineAccessInfo!.associated_user.email_verified =
129-
Boolean(value);
122+
onlineAccessInfo.associated_user.email_verified = Boolean(value);
130123
break;
131124
}
132125
// Return any user keys as passed in
133126
default:
134127
sessionData[key] = value;
135128
}
136129
});
130+
if (sessionData.isOnline) {
131+
sessionData.onlineAccessInfo = onlineAccessInfo;
132+
}
137133
const session = new Session(sessionData);
138134
return session;
139135
}

0 commit comments

Comments
 (0)