UNPKG

@scefira/dfw-nodejs

Version:
126 lines (96 loc) 4.72 kB
import DFWCore, { DFWScheme } from "."; import SecurityManager from "./scripts/modules/SecurityManager"; import { DFWBoot } from "./scripts/modules/APIManager"; import dfw_access from "./model/dfw_access.model"; import dfw_credential from "./model/dfw_credential.model"; import DatabaseManager from "./scripts/modules/DatabaseManager"; import dfw_file from "./model/dfw_file.model"; //DatabaseManager.createDatabaseAsync("root","","dfw-test"); const DFW = DFWCore.createInstance({ database:{ username:"root", database:"dfw-test", password:"", dialect:"mysql", }, upload:{ tempDir:"./temp/" } }); //DFW.getDatabase().sequelize.sync({alter:true}); DFW.startServer(300); DFW.modules.APIManager.addBootCallback(async (dfw:DFWScheme,boot:DFWBoot<{token:string}>)=>{ boot.token = dfw.session.model.token; }); //////////////////////////////////////////////////////////////////////// //DFW.modules.APIManager.addUploadListener("/upload",{security:{ session:false , uploads:{ limits:{ fileSize: 1024*1024*5 }} }}); DFW.modules.APIManager.addListener("/upload",async (dfw)=>{ let file:dfw_file = await dfw.file.flushUploadAsync(dfw.request.files.file) as any; await dfw.file.validateFileAsync(file); await dfw.modules.uploadManager.assignChildLocalFileAsync(dfw,file.localPath,file,"copy",{copy:true , expiration:null }) return dfw.api.success(file); },{ method:"post" , security:{ uploads:true }}); DFW.modules.APIManager.addListener("/boot",async (dfw)=>{ return { boot: await dfw.api.bootAsync() }; },{security:{}}) DFW.modules.APIManager.addListener("/login",async (dfw)=>{ return { status: await dfw.session.loginAsync({user:"aldodelacomarca@gmail.com", password: "aldodelacomarca"}), boot: await dfw.api.bootAsync() } ; }); DFW.modules.APIManager.addListener("/relations",async (dfw)=>{ var result = await dfw.db.sequelize.transaction((t)=>{ return Promise.all([ dfw.session.model.user!.assignCredentialAsync(["ADMIN","EDITOR"],t) ]) }) return { result } }); DFW.modules.APIManager.addListener("/logout",async (dfw)=>{ return { status : await dfw.session.logoutAsync() , boot: await dfw.api.bootAsync() } }) DFW.modules.APIManager.addListener("/testapi",async (dfw)=>{ if(!await dfw.security.checkRuleAsync(DFWCore.SecurityManager.RULE_BODY_PARAMS_SETTED,["a","b"])){ return dfw.api.error("no está seteado a y b"); } return { body:dfw.request.body } },{method:"post"}); DFW.modules.APIManager.addListener("/make",async (dfw)=>{ var result = { createAdmin: await dfw.db.entityHandler.dfw_user.createAsync("scefira","contact@scefira.com","scefira"), createCustomer: await dfw.db.entityHandler.dfw_user.createAsync("C001","a@test.com","aldo"), AccessEdit: await dfw.db.retriveModel(dfw_access).create({ name: "EDIT_CHANNEL" }), AccessCreate: await dfw.db.retriveModel(dfw_access).create({ name: "CREATE_CHANNEL" }), CredentialAdmin: await dfw.db.retriveModel(dfw_credential).create({ name: "ADMIN"}), CredentialEditor: await dfw.db.retriveModel(dfw_credential).create({ name: "EDITOR"}), } as any result.addCredentialToUser = result.createAdmin.$add("credentials",[result.CredentialAdmin]); result.addCredentialToUser = result.CredentialAdmin.$add("access",[result.AccessCreate]); return { result }; }) DFW.modules.APIManager.addListener("/models",async (dfw)=>{ return { models : Object.keys(dfw.DFWInstance.getDatabase().sequelize.models )} }) DFW.modules.APIManager.addListener("/test",async (dfw)=>{ return dfw.api.success( await dfw.file.getFileRecordAsync(14)); }) DFW.modules.APIManager.addListener("/test2",async (dfw)=>{ if(! await dfw.security.checkRuleAsync(SecurityManager.RULE_LOGGED_SESSION,true)) return dfw.api.error("Acceso denegado"); if(! await dfw.security.checkRuleAsync(SecurityManager.RULE_LOGGED_SESSION,true)) return dfw.api.error("Acceso denegado"); var res:any = {} //res.createUser = await dfw_user.createUserAsync("scefira","scefira@gmail.com","123"); if(dfw.session.isLogged == true && dfw.session.model.user){ res.isLogged = dfw.session.isLogged; res.access = await dfw.session.model.user.checkAccessAsync("CREATE_CHANNEL"); res.credential = await dfw.session.model.user.checkCredentialAsync("ADMIN"); }else{ return dfw.api.error("no legged"); } return res; })