Address code review: use transactions for label updates, fix variable naming

Agent-Logs-Url: https://github.com/whyour/qinglong/sessions/1436272f-a03a-45af-b57d-869a48ab537d

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-25 06:52:03 +00:00 committed by GitHub
parent d4930faedd
commit ce1a68871a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 15 deletions

View File

@ -201,25 +201,29 @@ export default class EnvService {
public async addLabels(ids: number[], labels: string[]) {
const docs = await EnvModel.findAll({ where: { id: ids } });
for (const doc of docs) {
const env = doc.get({ plain: true });
await EnvModel.update(
{ labels: Array.from(new Set((env.labels || []).concat(labels))) },
{ where: { id: env.id } },
);
}
await sequelize.transaction(async (t) => {
for (const doc of docs) {
const env = doc.get({ plain: true });
await EnvModel.update(
{ labels: Array.from(new Set((env.labels || []).concat(labels))) },
{ where: { id: env.id }, transaction: t },
);
}
});
return await EnvModel.findAll({ where: { id: ids } });
}
public async removeLabels(ids: number[], labels: string[]) {
const docs = await EnvModel.findAll({ where: { id: ids } });
for (const doc of docs) {
const env = doc.get({ plain: true });
await EnvModel.update(
{ labels: (env.labels || []).filter((label: string) => !labels.includes(label)) },
{ where: { id: env.id } },
);
}
await sequelize.transaction(async (t) => {
for (const doc of docs) {
const env = doc.get({ plain: true });
await EnvModel.update(
{ labels: (env.labels || []).filter((label: string) => !labels.includes(label)) },
{ where: { id: env.id }, transaction: t },
);
}
});
return await EnvModel.findAll({ where: { id: ids } });
}

View File

@ -128,7 +128,7 @@ const Env = () => {
render: (labels: string[], record: any) => {
return (
<Space size={[0, 4]} wrap>
{labels?.filter((l) => l).map((label) => (
{labels?.filter((label) => label).map((label) => (
<Tag key={label} color="blue">
{label}
</Tag>