wranglebot
Version:
open source media asset management
28 lines (24 loc) • 811 B
text/typescript
import LogBot from "logbotjs";
import type { WrangleBot } from "../../../core/WrangleBot.js";
import { SocketServer } from "../../SocketServer.js";
import RouteResult from "../../RouteResult.js";
/**
* @description Retrieves all users in the database
*/
export default {
method: "get",
url: "/users",
handler: async (req, res, bot: WrangleBot, socketServer: SocketServer) => {
if (req.$user.hasRole(["admin", "maintainer"])) {
const users = bot.query.users.many().fetch();
const map = users.map((user) => {
return user.toJSON();
});
return new RouteResult(200, map);
}
if (req.$user.hasRole(["contributor", "curator"])) {
return new RouteResult(200, [req.$user.toJSON()]);
}
return new RouteResult(404, LogBot.resolveErrorCode(403));
},
};