trigger-user-save.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. export function defineUserAfterSave(){
  2. Parse.Cloud.afterSave("_User", async (request) => {
  3. console.log("save _User",request?.object?.id)
  4. let query = new Parse.Query("Profile");
  5. query.equalTo("user",request?.object?.id)
  6. let profile = await query.first();
  7. syncUserProfileToAuthing(request?.object,profile)
  8. });
  9. Parse.Cloud.afterSave("Profile", async (request) => {
  10. console.log("save Profile",request?.object?.id)
  11. let query = new Parse.Query("Profile");
  12. query.include("user");
  13. profile = await query.get(require?.object?.id);
  14. syncUserProfileToAuthing(profile.get("user"),profile)
  15. });
  16. }
  17. function syncUserProfileToAuthing(){
  18. let userInfo = user.toJSON();
  19. userInfo = fixJsonFileds(userInfo)
  20. if(profile){
  21. let pjson = profile.toJSON();
  22. delete pjson.objectId;
  23. pjson= fixJsonFileds(pjson)
  24. Object.keys(pjson).forEach(key=>{
  25. userInfo[key] = pjson[key]
  26. })
  27. }
  28. // 映射对应字段
  29. userInfo.company = userInfo.companyName
  30. delete userInfo.companyName
  31. userInfo.userType = userInfo.identity
  32. delete userInfo.identity
  33. console.log(userInfo)
  34. }
  35. function fixJsonFileds(json){
  36. delete json.ACL
  37. delete json.className
  38. delete json.sessionToken
  39. delete json.company
  40. return json
  41. }