Skip to content

Commit

Permalink
Merge branch 'main' into next
Browse files Browse the repository at this point in the history
  • Loading branch information
2013xile committed Feb 5, 2025
2 parents a6f780f + b0c517a commit ad7a65c
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,74 @@ describe('select query', () => {
);
});
});

describe('select query with DB_TABLE_PREFIX', () => {
const model = class extends SQLModel {};
model.init(null, {
modelName: 'users',
tableName: 'd_users',
sequelize: new Sequelize({
dialect: 'postgres',
}),
});
model.sql = 'SELECT * FROM "d_users"';
model.collection = {
fields: new Map(
Object.entries({
id: {},
name: {},
}),
),
} as any;
const queryGenerator = model.queryInterface.queryGenerator as any;

test('plain sql', () => {
const query = queryGenerator.selectQuery('d_users', {}, model);
expect(query).toBe('SELECT * FROM "d_users";');
});

test('attributes', () => {
const query = queryGenerator.selectQuery('d_users', { attributes: ['id', 'name'] }, model);
expect(query).toBe('SELECT "id", "name" FROM (SELECT * FROM "d_users") AS "users";');
});

test('where', () => {
const query = queryGenerator.selectQuery('d_users', { where: { id: 1 } }, model);
expect(query).toBe('SELECT * FROM (SELECT * FROM "d_users") AS "users" WHERE "users"."id" = 1;');
});

test('group', () => {
const query1 = queryGenerator.selectQuery('d_users', { group: 'id' }, model);
expect(query1).toBe('SELECT * FROM (SELECT * FROM "d_users") AS "users" GROUP BY "id";');
const query2 = queryGenerator.selectQuery('d_users', { group: ['id', 'name'] }, model);
expect(query2).toBe('SELECT * FROM (SELECT * FROM "d_users") AS "users" GROUP BY "id", "name";');
});

test('order', () => {
const query = queryGenerator.selectQuery('d_users', { order: ['id'] }, model);
expect(query).toBe('SELECT * FROM (SELECT * FROM "d_users") AS "users" ORDER BY "users"."id";');
});

test('limit, offset', () => {
const query = queryGenerator.selectQuery('d_users', { limit: 1, offset: 0 }, model);
expect(query).toBe('SELECT * FROM (SELECT * FROM "d_users") AS "users" LIMIT 1 OFFSET 0;');
});

test('complex sql', () => {
const query = queryGenerator.selectQuery(
'd_users',
{
attributes: ['id', 'name'],
where: { id: 1 },
group: 'id',
order: ['id'],
limit: 1,
offset: 0,
},
model,
);
expect(query).toBe(
'SELECT "id", "name" FROM (SELECT * FROM "d_users") AS "users" WHERE "users"."id" = 1 GROUP BY "id" ORDER BY "users"."id" LIMIT 1 OFFSET 0;',
);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export function selectQuery(

// Add WHERE to sub or main query
if (Object.prototype.hasOwnProperty.call(options, 'where')) {
options.where = this.getWhereConditions(options.where, tableName, model, options);
options.where = this.getWhereConditions(options.where, model.name, model, options);
if (options.where) {
queryItems.push(` WHERE ${options.where}`);
}
Expand All @@ -48,8 +48,8 @@ export function selectQuery(
// Add GROUP BY to sub or main query
if (options.group) {
options.group = Array.isArray(options.group)
? options.group.map((t) => this.aliasGrouping(t, model, tableName, options)).join(', ')
: this.aliasGrouping(options.group, model, tableName, options);
? options.group.map((t) => this.aliasGrouping(t, model, model.name, options)).join(', ')
: this.aliasGrouping(options.group, model, model.name, options);

if (options.group) {
queryItems.push(` GROUP BY ${options.group}`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"displayName.zh-CN": "通知:电子邮件",
"description": "Used for sending email notifications with built-in SMTP transport.",
"description.zh-CN": "通过电子邮件渠道发送通知,目前只支持 SMTP 传输方式。",
"homepage": "https://docs.nocobase.com/handbook/notification-email",
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-email",
"main": "dist/server/index.js",
"devDependencies": {
"@types/nodemailer": "^6.x",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"displayName.zh-CN": "通知:站内信",
"description": "It supports users in receiving real-time message notifications within the NocoBase application.",
"description.zh-CN": "支持用户在 NocoBase 应用内实时接收消息通知。",
"homepage": "https://docs.nocobase.com/handbook/notification-in-app-message",
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-in-app-message",
"keywords": [
"Notification"
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"displayName.zh-CN": "通知管理",
"description.zh-CN": "提供统一的管理服务,涵盖渠道配置、日志记录等功能,支持多种通知渠道的配置,包括站内信和电子邮件等。",
"version": "1.5.0-beta.34",
"homepage": "https://docs.nocobase.com/handbook/notification-manager",
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/notification-manager",
"main": "dist/server/index.js",
"devDependencies": {
"@ant-design/icons": "5.x",
Expand Down

0 comments on commit ad7a65c

Please sign in to comment.