loeiks
September 20, 2023, 3:09am
1
As from now I will start posting some updates/spoilers about new APIs that Wix is working on.
This update pushed 17h ago. (Hidden in Docs)
What we have currently with members?
and more.
And currently in new v2 APIs we only have Badges and Events category. But with new update we will also have Members category in new v2 APIs.
Here are the new v2 APIs in Members category:
createMember *new
updateMember
deleteMember
queryMembers *new
joinCommunity *new
leaveCommunity *new
deleteMemberAddress
I hope Wix will publish this asap so we can all see new APIs together. When I have more info I will post it here.
Keep in mind that I’m not an official resource just sharing what I find with you
loeiks
September 22, 2023, 10:19pm
2
Hey! Thanks for sharing.
For “import { webMethod, Permissions } from ‘wix-web-module’;” why am I getting “Cannot find module ‘wix-web-module’ or its corresponding type declarations.”
I am trying to use this (updateMember - Velo API Reference - Wix.com ) API to change the status of user from PRIVATE to PUBLIC.
// API Reference: https://www.wix.com/velo/reference/api-overview/introduction
// “Hello, World!” Example: https://learn-code.wix.com/en/article/1-hello-world
import wixData from 'wix-data';
import { Permissions, webMethod } from 'wix-web-module';
import { members } from 'wix-members.v2';
$w('#repeater1').onItemReady(($item, itemData, index) => {
const owner = itemData._owner;
console.log(`Retrieved _owner value for container ${index} from Jobs`);
wixData.query("Members/FullData")
.eq("_id", owner)
.find()
.then(membersResults => {
if (membersResults.items.length > 0) {
const slug = membersResults.items[0].slug;
const nickname = membersResults.items[0].nickname;
const privacyStatus = membersResults.items[0].privacyStatus; // Retrieve privacyStatus
if (privacyStatus === "PRIVATE") {
// Update privacyStatus to "PUBLIC"
const updatedMember = {
privacyStatus: "PUBLIC"
};
// Call updateMember function to update privacyStatus
myUpdateMemberFunction(owner, updatedMember)
.then(() => {
console.log(`Updated privacyStatus to PUBLIC for container ${index}`);
})
.catch(error => {
console.error("Error updating privacyStatus: " + error);
});
}
const formattedUrl = 'https://www.firstcontact.lgbt/profile/' + slug + '/profile';
console.log(`Formatted URL (${formattedUrl}) for container ${index}`);
wixData.query("Jobs")
.eq("_owner", owner)
.find()
.then(jobsResults => {
if (jobsResults.items.length > 0) {
const jobRecord = jobsResults.items[0];
const updatedJobRecord = {
...jobRecord,
title: nickname,
profileUrl: formattedUrl
};
wixData.update("Jobs", updatedJobRecord)
.then(() => {
console.log(`Updated job record for container ${index}`);
})
.catch(error => {
console.error("Error updating job record in Jobs collection: " + error);
});
} else {
console.error("No matching record found in Jobs collection for container " + index);
}
})
.catch(error => {
console.error("Error querying Jobs database: " + error);
});
$item("#title").text = nickname;
} else {
console.error("No matching record found in Members/FullData database for container " + index);
}
})
.catch(error => {
console.error("Error querying Members/FullData database: " + error);
});
});
});
// Function to update member privacyStatus
export const myUpdateMemberFunction = webMethod(
Permissions.Anyone, (id, member) => {
return members.updateMember(id, member)
.then((member) => {
return member;
})
.catch((error) => {
console.error(error);
});
});