import-schemas.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const Parse = require("parse/node")
  2. Parse.Cloud.useMasterKey();
  3. const EduSchemas = require("../index").EduSchemas
  4. async function importAllSchemas(){
  5. try{
  6. Parse.initialize(global.config['PARSE_APPID'],null,global.config['PARSE_MASTERKEY']);
  7. Parse.serverURL = global.config['PARSE_SERVERURL'];
  8. Parse.Cloud.useMasterKey()
  9. Parse.Cloud.useMasterKey(true)
  10. // Parse.masterKey = global.config['PARSE_MASTERKEY'];
  11. console.log(Parse.applicationId)
  12. console.log(Parse.serverURL)
  13. console.log(Parse.masterKey)
  14. SchemaMap = {}
  15. let SchemaList = await Parse.Schema.all()
  16. SchemaList?.forEach(item=>{
  17. SchemaMap[item?.className] = item
  18. })
  19. for (let index = 0; index < EduSchemas.length; index++) {
  20. let schemaJson = EduSchemas[index];
  21. // EduSchemas.forEach(async schemaJson=>{
  22. console.log(schemaJson?.className,"schema loaded.")
  23. let schema = new Parse.Schema(schemaJson?.className);
  24. schemaJson.fields["isDeleted"] = {
  25. "type": "Boolean",
  26. "required": false
  27. }
  28. schemaJson.fields["company"] = {
  29. "type": "Pointer",
  30. "targetClass":"Company",
  31. "required": false
  32. }
  33. Object.keys(schemaJson?.fields)?.forEach(key=>{
  34. if(key=="objectId"||key=="ACL"||key=="createdAt"||key=="updatedAt") return
  35. let field = schemaJson?.fields[key]
  36. let options = {}
  37. if(field?.targetClass) options.targetClass = field?.targetClass
  38. schema.addField(key,field?.type,options)
  39. })
  40. let clp = new Parse.CLP();
  41. clp.setPublicReadAccess(true);
  42. clp.setPublicWriteAccess(true);
  43. schema.setCLP(clp);
  44. if(SchemaMap[schemaJson?.className]){
  45. await schema.update({useMasterKey:true});
  46. }else{
  47. await schema.save({useMasterKey:true});
  48. }
  49. // })
  50. }
  51. }catch(ierr){
  52. console.error(ierr)
  53. }
  54. return
  55. }
  56. module.exports.importAllSchemas = importAllSchemas