29 lines
		
	
	
		
			768 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			768 B
		
	
	
	
		
			TypeScript
		
	
	
import { verifyAccessToken } from '~/utils/jwt-utils';
 | 
						|
import { MOCK_MENU_LIST } from '~/utils/mock-data';
 | 
						|
import { unAuthorizedResponse } from '~/utils/response';
 | 
						|
 | 
						|
const namesMap: Record<string, any> = {};
 | 
						|
 | 
						|
function getNames(menus: any[]) {
 | 
						|
  menus.forEach((menu) => {
 | 
						|
    namesMap[menu.name] = String(menu.id);
 | 
						|
    if (menu.children) {
 | 
						|
      getNames(menu.children);
 | 
						|
    }
 | 
						|
  });
 | 
						|
}
 | 
						|
getNames(MOCK_MENU_LIST);
 | 
						|
 | 
						|
export default eventHandler(async (event) => {
 | 
						|
  const userinfo = verifyAccessToken(event);
 | 
						|
  if (!userinfo) {
 | 
						|
    return unAuthorizedResponse(event);
 | 
						|
  }
 | 
						|
  const { id, name } = getQuery(event);
 | 
						|
 | 
						|
  return (name as string) in namesMap &&
 | 
						|
    (!id || namesMap[name as string] !== String(id))
 | 
						|
    ? useResponseSuccess(true)
 | 
						|
    : useResponseSuccess(false);
 | 
						|
});
 |