import { PagedAndSortedResultRequestDto, PagedResultDto } from '@/proxy/abp' import { MenuDto } from '@/proxy/menus/models' import apiService, { Config } from '@/services/api.service' export class MenuService { apiName = 'Default' update = (id: string, input: MenuDto) => apiService.fetchData( { method: 'PUT', url: `/api/app/menu/${id}`, data: input, }, { apiName: this.apiName }, ) create = (input: MenuDto) => apiService.fetchData( { method: 'POST', url: '/api/app/menu', data: input, }, { apiName: this.apiName }, ) delete = (id: string) => apiService.fetchData( { method: 'DELETE', url: `/api/app/menu/${id}`, }, { apiName: this.apiName }, ) get = (id: string) => apiService.fetchData( { method: 'GET', url: `/api/app/menu/${id}`, }, { apiName: this.apiName }, ) getList = (input: PagedAndSortedResultRequestDto) => apiService.fetchData, PagedAndSortedResultRequestDto>( { method: 'GET', url: '/api/app/menu', params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount, }, }, { apiName: this.apiName }, ) updateAll = (inputs: MenuDto[]) => apiService.fetchData( { method: 'PUT', url: '/api/app/menu/all', data: inputs, }, { apiName: this.apiName }, ) } export const getMenus = async (skipCount = 0, maxResultCount = 1000, sorting = 'order') => { const menuService = new MenuService() return await menuService.getList({ sorting, skipCount, maxResultCount, }) }