Partition.service.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import BaseModel from './BaseModel';
  2. import type { PartitionData } from '@server/types';
  3. import type {
  4. PartitionManageParam,
  5. PartitionParam,
  6. } from '@/pages/databases/collections/partitions/Types';
  7. export class PartitionService extends BaseModel {
  8. static getPartitions(collectionName: string) {
  9. const path = `/partitions`;
  10. return super.findAll<PartitionData[]>({
  11. path,
  12. params: { collection_name: collectionName },
  13. });
  14. }
  15. static managePartition(param: PartitionManageParam) {
  16. const { collectionName, partitionName, type } = param;
  17. return super.create({
  18. path: `/partitions`,
  19. data: {
  20. collection_name: collectionName,
  21. partition_name: partitionName,
  22. type,
  23. },
  24. });
  25. }
  26. static loadPartition(param: PartitionParam) {
  27. const { collectionName, partitionNames } = param;
  28. const path = `/partitions/load`;
  29. return super.update({
  30. path,
  31. data: {
  32. collection_name: collectionName,
  33. partition_names: partitionNames,
  34. },
  35. });
  36. }
  37. static releasePartition(param: PartitionParam) {
  38. const { collectionName, partitionNames } = param;
  39. const path = `/partitions/release`;
  40. return super.update({
  41. path,
  42. data: {
  43. collection_name: collectionName,
  44. partition_names: partitionNames,
  45. },
  46. });
  47. }
  48. }