Skip to content

Commit 7ca47e2

Browse files
committed
fix accessKey support for block projects
1 parent bbd7a40 commit 7ca47e2

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

src/lib/storage.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class Storage extends ScratchStorage {
1313
constructor () {
1414
super();
1515
this.cacheDefaultProject();
16+
this.accessKey = null;
1617
}
1718
addOfficialScratchWebStores () {
1819
this.addWebStore(
@@ -84,7 +85,8 @@ class Storage extends ScratchStorage {
8485
window.removeEventListener('message', handleMessage);
8586
resolve({
8687
token: event.data.token,
87-
username: event.data.username || ''
88+
username: event.data.username || '',
89+
accessKey: event.data.accessKey || null
8890
});
8991
}
9092
}
@@ -94,6 +96,7 @@ class Storage extends ScratchStorage {
9496

9597
this.projectToken = creds.token;
9698
this.username = creds.username;
99+
this.accessKey = creds.accessKey;
97100
// eslint-disable-next-line require-atomic-updates
98101
window.CollaborationUsername = creds?.username;
99102
return creds;
@@ -105,9 +108,21 @@ class Storage extends ScratchStorage {
105108
return this.projectToken;
106109
}
107110
getProjectGetConfig (projectAsset) {
108-
const path = `${this.projectHost}/${projectAsset.assetId}`;
111+
let path = `${this.projectHost}/${projectAsset.assetId}`;
112+
const params = [];
113+
114+
// Scratch tokens
109115
if (this.scratchProjectToken) {
110-
return `${path}?token=${this.scratchProjectToken}`;
116+
params.push(`token=${this.scratchProjectToken}`);
117+
}
118+
119+
// CodeTorch Access Keys (Unlisted projects)
120+
if (this.accessKey) {
121+
params.push(`access_key=${this.accessKey}`);
122+
}
123+
124+
if (params.length > 0) {
125+
path += `?${params.join('&')}`;
111126
}
112127
return path;
113128
}

src/lib/tw-project-meta-fetcher-hoc.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ let activeFetchMetadataPromise = null;
2020

2121
export const fetchProjectMeta = async (projectId, isScratch) => {
2222
const authToken = await storage.getProjectToken();
23+
const accessKey = storage.accessKey;
2324
let urls = [
2425
`${API_HOST}/v1/projects/blocks/${projectId}/meta`,
2526
`${API_HOST}/v1/projects/blocks/${projectId}/meta`
@@ -29,6 +30,8 @@ export const fetchProjectMeta = async (projectId, isScratch) => {
2930
`${ASSET_HOST}/scratch_project_meta/${projectId}`,
3031
`${ASSET_HOST}/scratch_project_meta/${projectId}`
3132
];
33+
} else if (accessKey) {
34+
urls = urls.map(url => `${url}?access_key=${accessKey}`);
3235
}
3336
let firstError;
3437
for (const url of urls) {

0 commit comments

Comments
 (0)