feat(api): Functional API endpoints for filters
This commit is contained in:
parent
2259e3229a
commit
e58d7343b1
@ -33,8 +33,8 @@ export const post = async (request: Request, response: Response) => {
|
||||
guild_id: guildId,
|
||||
value: value,
|
||||
matching_algorithm: matching_algorithm,
|
||||
is_insensitive: is_insensitive,
|
||||
is_whitelist: is_whitelist
|
||||
is_insensitive: is_insensitive === "on",
|
||||
is_whitelist: is_whitelist === "on"
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -49,10 +49,38 @@ export const post = async (request: Request, response: Response) => {
|
||||
response.status(201).json(filter);
|
||||
};
|
||||
|
||||
export const patch = async () => {} // TODO ...
|
||||
export const patch = async (request: Request, response: Response) => {
|
||||
const guildId = request.params.guildId;
|
||||
const { id, name, value, matching_algorithm, is_insensitive, is_whitelist } = request.body;
|
||||
|
||||
let filter;
|
||||
|
||||
try {
|
||||
filter = await prisma.filter.update({
|
||||
where: { id: Number(id) },
|
||||
data: {
|
||||
name: name,
|
||||
guild_id: guildId,
|
||||
value: value,
|
||||
matching_algorithm: matching_algorithm,
|
||||
is_insensitive: is_insensitive === "on",
|
||||
is_whitelist: is_whitelist === "on"
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
if (error instanceof Prisma.PrismaClientKnownRequestError) {
|
||||
response.status(500).json({ error: error.message });
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
response.status(201).json(filter);
|
||||
};
|
||||
|
||||
export const del = async (request: Request, response: Response) => {
|
||||
const { ids } = request.body;
|
||||
let { ids } = request.body;
|
||||
const guildId = request.params.guildId;
|
||||
|
||||
if (!ids || !Array.isArray(ids)) {
|
||||
@ -60,6 +88,8 @@ export const del = async (request: Request, response: Response) => {
|
||||
return;
|
||||
}
|
||||
|
||||
ids = ids.map(id => Number(id));
|
||||
|
||||
try {
|
||||
await prisma.filter.deleteMany({ where: {
|
||||
id: { in: ids },
|
||||
@ -82,7 +112,9 @@ export const datatable = async (request: Request, response: Response) => {
|
||||
request,
|
||||
response,
|
||||
prisma.filter,
|
||||
{ id: "asc" }
|
||||
[{ updated_at: "desc" }, { id: "asc" }],
|
||||
{},
|
||||
{ guild_id: request.params.guildId }
|
||||
);
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user