name-exists.ts 768 B

12345678910111213141516171819202122232425262728
  1. import { verifyAccessToken } from '~/utils/jwt-utils';
  2. import { MOCK_MENU_LIST } from '~/utils/mock-data';
  3. import { unAuthorizedResponse } from '~/utils/response';
  4. const namesMap: Record<string, any> = {};
  5. function getNames(menus: any[]) {
  6. menus.forEach((menu) => {
  7. namesMap[menu.name] = String(menu.id);
  8. if (menu.children) {
  9. getNames(menu.children);
  10. }
  11. });
  12. }
  13. getNames(MOCK_MENU_LIST);
  14. export default eventHandler(async (event) => {
  15. const userinfo = verifyAccessToken(event);
  16. if (!userinfo) {
  17. return unAuthorizedResponse(event);
  18. }
  19. const { id, name } = getQuery(event);
  20. return (name as string) in namesMap &&
  21. (!id || namesMap[name as string] !== String(id))
  22. ? useResponseSuccess(true)
  23. : useResponseSuccess(false);
  24. });