Open vikas21222 opened 1 year ago
or in same table getting javascript error
Can you share your entity's schema and what's the ORM/ODM/AdminJS adapter you're using?
Can you share your entity's schema and what's the ORM/ODM/AdminJS adapter you're using?
ORM -SEQUELIZE
package.json
admin.js file
import * as AdminJSMongoose from '@adminjs/mongoose';
import AdminJS from 'adminjs'; import AdminJSExpress from '@adminjs/express'; import AdminJSSequelize from '@adminjs/sequelize'; import Connect from 'connect-pg-simple'; import adminOptions from './app/routes/admin_models.js'; import cors from 'cors'; import dbConfig from './config/database.cjs'; import dotenv from 'dotenv'; import exceptionHandler from './lib/exceptionHandler.js'; import express from 'express'; import http from 'http'; import mongoose from 'mongoose'; import session from 'express-session';
// Dot ENV config to load *.env files based on profile development/production/test if(process.env.NODE_ENV != 'production'){ dotenv.config(); }
const dbOptions = dbConfig[process.env.NODE_ENV];
const connectionURL = postgres://${dbOptions.username}:${dbOptions.password}@${dbOptions.host}:${dbOptions.port}/${dbOptions.database}
;
const DEFAULT_ADMIN = { email: 'admin@xxx.com', password: 'xxxx', };
const authenticate = async (email, password) => { if (email === DEFAULT_ADMIN.email && password === DEFAULT_ADMIN.password) { return Promise.resolve(DEFAULT_ADMIN); }
return null; };
const app = express();
// mongoose.connect(process.env.DB_MONGO_URL); app.use(cors());
AdminJS.registerAdapter({ Resource: AdminJSSequelize.Resource, Database: AdminJSSequelize.Database, });
// AdminJS.registerAdapter({ // Resource: AdminJSMongoose.Resource, // Database: AdminJSMongoose.Database, // });
// TODO: migrate to sequelize, just using example for now https://docs.adminjs.co/installation/plugins/express const ConnectSession = Connect(session); const sessionStore = new ConnectSession({ conObject: { connectionString: connectionURL, ssl: process.env.NODE_ENV === 'production', }, tableName: 'session', createTableIfMissing: true, });
const admin = new AdminJS(adminOptions);
const adminRouter = AdminJSExpress.buildAuthenticatedRouter( admin, { authenticate, cookieName: 'adminjs', cookiePassword: 'sessionsecret', }, null, { store: sessionStore, resave: true, saveUninitialized: true, secret: 'sessionsecret', cookie: { httpOnly: process.env.NODE_ENV === 'production', secure: process.env.NODE_ENV === 'production', }, name: 'adminjs', } );
app.use(admin.options.rootPath, adminRouter); app.use(exceptionHandler);
const server = http.createServer(app);
export default server;
I was asking about User Banks
entity, I want to figure out why it uses email in your id column.
I was asking about
User Banks
entity, I want to figure out why it uses email in your id column.
user bank model
import { DataTypes, Model } from 'sequelize';
import BankIfscMaster from './bank_ifsc_master.js'; import UserSip from './user_sip.js'; import sequelize from '../../lib/sequelize.js';
class UserBank extends Model { /**
models/index
file will call this method automatically.
*/
static associate(models) {
// define association here
}
}
// TODO: Raise validation error if user bank accs greater than 5 for same ucc
UserBank.init({
id: {
type: DataTypes.BIGINT,
primaryKey: true,
autoIncrement: true
},
user_id: { type: DataTypes.BIGINT },
bank_account_number: { type: DataTypes.STRING },
ifsc_code: DataTypes.STRING,
bank_account_type_bse_code: DataTypes.STRING,
bse_user_id: {
type: DataTypes.BIGINT,
references: {
model: {
tableName: 'bse_users'
},
key: 'id'
}
},
ucc_bank_num: DataTypes.INTEGER
}, {
sequelize,
modelName: 'UserBank',
tableName: 'user_banks',
underscored: true,
hooks: {
beforeCreate: async (userBank, options) => {
const count = await UserBank.count({
where: {
user_id: userBank.user_id,
bse_user_id: userBank.bse_user_id
}});
userBank.ucc_bank_num = count + 1;
}
}
});UserBank.hasOne(BankIfscMaster, { foreignKey: 'ifsc_code', sourceKey: 'ifsc_code' }); UserSip.belongsTo(UserBank, { foreignKey: 'user_bank_id', targetKey: 'id' }); UserBank.hasMany(UserSip, { foreignKey: 'user_bank_id', sourceKey: 'id'});
export default UserBank;