Hi can someone please explain how to fix the 403 error I’m getting whenever I call the members.updateMember function from the http-function.js code.
The API is doc is at https://www.wix.com/velo/reference/wix-members-backend/members/updatemember
The code below works when I run it directly on a user.jsw file. However I want to expose this as a service to a third party app so the user data can be synced to wix.
**return** members . updateMember ( id , memberData )
. then (( member ) => {
**return** member ;
})
. catch (( error ) => {
console . log ( "[There was an error updating member with data]" , data , error );
**return** error ;
});
//user.jsw code file
export async function updateUserProfile(id, data) {
var memberData = {
contactDetails: {
firstName: data.firstName,
lastName: data.lastName,
phones: [data.phone],
birthdate: data.dateOfBirth,
customFields: {
gender: {
name: "Gender",
value: "Femaile"
},
provider: {
name: "Provider",
value: "App"
},
lastupdatedby: {
name: "LastUpdatedBy",
value: "AdminHBP"
}
}
},
profile:{
profilePhoto : {
url : data.picture
}
}
}
return members.updateMember(id, memberData)
.then((member) => {
return member;
})
.catch((error) => {
console.log("[There was an error updating member with data]", data, error);
return error;
});
}
//http-functions code file
export async function post_updateUser(request) {
console.log("request body", request)
let options = {
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "*"
}
};
console.log("update user called", request);
// query a collection to find matching items
return request.body.json()
.then(async (body) => {
var data = {
firstName: body.firstName,
lastName: body.lastName,
phone: body.phone,
gender: body.gender,
dateOfBirth: body.dateOfBirth,
picture: body.picture,
}
var id = body.id;
console.log("update user sent", data);
console.log("update user id", id);
return updateUserProfile(id, data)
.then((member) => {
return member;
})
.catch((error) => {
console.log("update user error", error);
return error;
});
})
.then((results) => {
options.body = {
"updated": true,
"message": results
};
return ok(options);
})
// something went wrong
.catch((error) => {
options.body = {
"updated": false,
"error": error.message
};
return badRequest(options);
});
}