47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
// admin-api.service.ts
|
|
|
|
import type { DeepPartial } from "react-hook-form";
|
|
import { BaseApiService } from "./core-api-service";
|
|
import { mapTableStateToPaginationQueryDSL } from "~/features/table";
|
|
import axios from "~/lib/axios";
|
|
|
|
class ResourceApiService extends BaseApiService<IResource> {
|
|
constructor() {
|
|
super("resources");
|
|
}
|
|
|
|
async resourceByRole(
|
|
role_id: IRole["id"],
|
|
values?: DeepPartial<TableState<IResource>> | undefined
|
|
) {
|
|
const params = values
|
|
? mapTableStateToPaginationQueryDSL(values as TableState<IResource>)
|
|
: {};
|
|
|
|
const response = await axios({
|
|
url: `${this.resourceUrl}/role/${role_id}`,
|
|
params: { ...params },
|
|
withCredentials: true,
|
|
method: "GET",
|
|
});
|
|
|
|
return response.data;
|
|
}
|
|
|
|
async updateResourceRoles(role_id: IRole["id"], values: number[]) {
|
|
const response = await axios({
|
|
url: `${this.resourceUrl}/role/${role_id}`,
|
|
withCredentials: true,
|
|
data: {
|
|
resource_ids: values,
|
|
role_id,
|
|
},
|
|
method: "PUT",
|
|
});
|
|
|
|
return response.data;
|
|
}
|
|
}
|
|
|
|
export const resourceApi = new ResourceApiService();
|