Fixed 267U.pre2

This commit is contained in:
2026-07-26 18:25:37 +09:00
parent 50bfaeafdf
commit 317d00a284
1286 changed files with 80222 additions and 1 deletions
@@ -0,0 +1,73 @@
import define from "../../define.js";
import { Brackets } from "typeorm";
import { makePaginationQuery } from "../../common/make-pagination-query.js";
import { Channels } from "../../../../models/index.js";
import { sqlLikeEscape } from "../../../../misc/sql-like-escape.js";
export const meta = {
tags: [
"channels"
],
requireCredential: true,
res: {
type: "array",
optional: false,
nullable: false,
items: {
type: "object",
optional: false,
nullable: false,
ref: "Channel"
}
}
};
export const paramDef = {
type: "object",
properties: {
query: {
type: "string"
},
type: {
type: "string",
enum: [
"nameAndDescription",
"nameOnly"
],
default: "nameAndDescription"
},
sinceId: {
type: "string",
format: "misskey:id"
},
untilId: {
type: "string",
format: "misskey:id"
},
limit: {
type: "integer",
minimum: 1,
maximum: 100,
default: 5
}
},
required: [
"query"
]
};
export default define(meta, paramDef, async (ps, me)=>{
const query = makePaginationQuery(Channels.createQueryBuilder("channel"), ps.sinceId, ps.untilId);
if (ps.type === "nameAndDescription") {
query.andWhere(new Brackets((qb)=>{
qb.where("channel.name ILIKE :q", {
q: `%${sqlLikeEscape(ps.query)}%`
}).orWhere("channel.description ILIKE :q", {
q: `%${sqlLikeEscape(ps.query)}%`
});
}));
} else {
query.andWhere("channel.name ILIKE :q", {
q: `%${sqlLikeEscape(ps.query)}%`
});
}
const channels = await query.take(ps.limit).getMany();
return await Promise.all(channels.map((x)=>Channels.pack(x, me)));
});