1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- const Parse = require("parse/node")
- Parse.Cloud.useMasterKey();
- const EduSchemas = require("../index").EduSchemas
- async function importAllSchemas(){
- try{
- Parse.initialize(global.config['PARSE_APPID'],null,global.config['PARSE_MASTERKEY']);
- Parse.serverURL = global.config['PARSE_SERVERURL'];
- Parse.Cloud.useMasterKey()
- Parse.Cloud.useMasterKey(true)
- // Parse.masterKey = global.config['PARSE_MASTERKEY'];
- console.log(Parse.applicationId)
- console.log(Parse.serverURL)
- console.log(Parse.masterKey)
- SchemaMap = {}
- let SchemaList = await Parse.Schema.all()
- SchemaList?.forEach(item=>{
- SchemaMap[item?.className] = item
- })
-
- for (let index = 0; index < EduSchemas.length; index++) {
- let schemaJson = EduSchemas[index];
- // EduSchemas.forEach(async schemaJson=>{
- console.log(schemaJson?.className,"schema loaded.")
- let schema = new Parse.Schema(schemaJson?.className);
-
- schemaJson.fields["isDeleted"] = {
- "type": "Boolean",
- "required": false
- }
- schemaJson.fields["company"] = {
- "type": "Pointer",
- "targetClass":"Company",
- "required": false
- }
- Object.keys(schemaJson?.fields)?.forEach(key=>{
- if(key=="objectId"||key=="ACL"||key=="createdAt"||key=="updatedAt") return
- let field = schemaJson?.fields[key]
- let options = {}
- if(field?.targetClass) options.targetClass = field?.targetClass
- schema.addField(key,field?.type,options)
- })
- let clp = new Parse.CLP();
- clp.setPublicReadAccess(true);
- clp.setPublicWriteAccess(true);
- schema.setCLP(clp);
- if(SchemaMap[schemaJson?.className]){
- await schema.update({useMasterKey:true});
- }else{
- await schema.save({useMasterKey:true});
- }
- // })
- }
- }catch(ierr){
- console.error(ierr)
- }
-
- return
- }
- module.exports.importAllSchemas = importAllSchemas
-
|