Skip to content

Commit b81cae3

Browse files
committed
Fix activation of group lenses
1 parent 50bd3f6 commit b81cae3

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

src/utils/creator.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { BridgeError, CameraKitClient, DataMessage, ErrorMessage } from "@ptrumpis/snap-camerakit-bridge";
22
import * as dotenv from 'dotenv';
3+
import * as Util from './helper.js';
4+
import * as Web from './web.js';
35

46
dotenv.config();
57

@@ -33,7 +35,7 @@ async function getLensGroup(groupId) {
3335
if (message instanceof ErrorMessage) {
3436
throw BridgeError.fromJSON(message.error);
3537
} else if (message instanceof DataMessage) {
36-
return message.data;
38+
return await fixLensesForActivation(message.data);
3739
}
3840
} catch (e) {
3941
console.error(`[Error] Failed to get lens group: ${e.message}`);
@@ -42,4 +44,24 @@ async function getLensGroup(groupId) {
4244
return [];
4345
}
4446

47+
async function fixLensesForActivation(lenses) {
48+
if (!Array.isArray(lenses)) {
49+
return lenses;
50+
}
51+
52+
return Promise.all(lenses.map(async lens => {
53+
if (!Util.isLensId(lens.unlockable_id) && lens.uuid) {
54+
const webLens = await Web.getLensByHash(lens.uuid);
55+
if (webLens?.unlockable_id) {
56+
lens = Util.mergeLens(lens, webLens);
57+
lens.unlockable_id = webLens.unlockable_id;
58+
lens.lens_id = webLens.unlockable_id;
59+
lens.web_import = 1;
60+
}
61+
}
62+
63+
return lens;
64+
}));
65+
}
66+
4567
export { getLensGroup };

0 commit comments

Comments
 (0)