Hello Bubble Community,
I am currently working on a feature that requires computing a unique identifier based on user IDs, and I’m struggling to accomplish the following steps in Bubble using JavaScript. This approach is based on the steps outlined in the TalkJS documentation.
- Take two ids of users and put them in an array
- Sort them lexicographically
- JSON encode them
- Hash the result using SHA1, return the first 20 characters
In pseudocode, the function looks like this:
var sorted = [me.id, other.id].sort()
var encoded = JSON.encode(sorted)
var hash = sha1(encoded) // as lowercase hex
return truncate(hash, 20)
How can I do this in Bubble?
This is the code I want to run:
function computeConversationId(user1Id, user2Id) {
// Step 1: Put the user IDs in an array
const userIds = [user1Id, user2Id];
// Step 2: Sort them lexicographically
userIds.sort();
// Step 3: JSON encode them
const userIdsJson = JSON.stringify(userIds);
// Step 4: Hash the result using SHA1 and return the first 20 characters
const sha1Hash = crypto.createHash('sha1').update(userIdsJson).digest('hex');
const conversationId = sha1Hash.slice(0, 20);
return conversationId;
}
// Example usage
const user1Id = 'a';
const user2Id = 'b';
const conversationId = computeConversationId(user1Id, user2Id);
console.log(`Conversation ID: ${conversationId}`);
Thank you in advance!