update backend
All checks were successful
Deploy to Production / deploy (push) Successful in 20s

This commit is contained in:
silverpro89
2026-02-26 15:00:58 +07:00
parent 68308743ff
commit 9af45a7875
8 changed files with 49 additions and 28 deletions

View File

@@ -67,6 +67,7 @@ exports.createVocab = async (req, res) => {
vi,
category,
topic,
grade_number = 0,
image_small,
image_square,
image_normal,
@@ -103,6 +104,7 @@ exports.createVocab = async (req, res) => {
syntax: syntax || null,
semantics: semantics || null,
constraints: constraints || null,
grade_number: grade_number || 0,
is_active: true
});
@@ -166,6 +168,8 @@ exports.getAllVocabs = async (req, res) => {
base_word,
text,
search,
grade_start,
grade_end,
is_active = true
} = req.query;
@@ -202,6 +206,21 @@ exports.getAllVocabs = async (req, res) => {
];
}
// Grade number range filter
if (grade_start !== undefined && grade_end !== undefined) {
const s = parseInt(grade_start);
const e = parseInt(grade_end);
if (s === e) {
where.grade_number = s;
} else if (s < e) {
where.grade_number = { [Op.between]: [s, e] };
}
} else if (grade_start !== undefined) {
where.grade_number = { [Op.gte]: parseInt(grade_start) };
} else if (grade_end !== undefined) {
where.grade_number = { [Op.lte]: parseInt(grade_end) };
}
const { count, rows } = await Vocab.findAndCountAll({
where,
limit: parseInt(limit),
@@ -786,6 +805,8 @@ exports.searchVocabs = async (req, res) => {
form_key,
text,
vi,
grade_start,
grade_end,
v_type,
shuffle_pos,
page = 1,
@@ -825,6 +846,21 @@ exports.searchVocabs = async (req, res) => {
where.vi = { [Op.like]: `%${vi}%` };
}
// Grade number range filter
if (grade_start !== undefined && grade_end !== undefined) {
const s = parseInt(grade_start);
const e = parseInt(grade_end);
if (s === e) {
where.grade_number = s;
} else if (s < e) {
where.grade_number = { [Op.between]: [s, e] };
}
} else if (grade_start !== undefined) {
where.grade_number = { [Op.gte]: parseInt(grade_start) };
} else if (grade_end !== undefined) {
where.grade_number = { [Op.lte]: parseInt(grade_end) };
}
// Handle v_type: find variants of same base_word
if (v_type === true) {
// Nếu có v_type, cần tìm tất cả các từ có cùng base_word