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,
|
guild_id: guildId,
|
||||||
value: value,
|
value: value,
|
||||||
matching_algorithm: matching_algorithm,
|
matching_algorithm: matching_algorithm,
|
||||||
is_insensitive: is_insensitive,
|
is_insensitive: is_insensitive === "on",
|
||||||
is_whitelist: is_whitelist
|
is_whitelist: is_whitelist === "on"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -49,10 +49,38 @@ export const post = async (request: Request, response: Response) => {
|
|||||||
response.status(201).json(filter);
|
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) => {
|
export const del = async (request: Request, response: Response) => {
|
||||||
const { ids } = request.body;
|
let { ids } = request.body;
|
||||||
const guildId = request.params.guildId;
|
const guildId = request.params.guildId;
|
||||||
|
|
||||||
if (!ids || !Array.isArray(ids)) {
|
if (!ids || !Array.isArray(ids)) {
|
||||||
@ -60,6 +88,8 @@ export const del = async (request: Request, response: Response) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ids = ids.map(id => Number(id));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await prisma.filter.deleteMany({ where: {
|
await prisma.filter.deleteMany({ where: {
|
||||||
id: { in: ids },
|
id: { in: ids },
|
||||||
@ -82,7 +112,9 @@ export const datatable = async (request: Request, response: Response) => {
|
|||||||
request,
|
request,
|
||||||
response,
|
response,
|
||||||
prisma.filter,
|
prisma.filter,
|
||||||
{ id: "asc" }
|
[{ updated_at: "desc" }, { id: "asc" }],
|
||||||
|
{},
|
||||||
|
{ guild_id: request.params.guildId }
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user