Skip to content

feat(project): merge to develop for release QA #5773

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 102 commits into from
Apr 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
4c2be0a
Merge remote-tracking branch 'origin/develop' into feature-project-la…
WANZARGEN Apr 8, 2025
7735de8
Merge branch 'feature-project-landing' into feature-integration-proje…
WANZARGEN Apr 8, 2025
135d5d1
feat: move dashboard shared components to correct dir
WANZARGEN Apr 8, 2025
854c52a
fix(tab): update handleSelectTabMenu to include index parameter
WANZARGEN Apr 8, 2025
d6626ec
feat: update ProjectDashboard and ProjectDetailTab components to impr…
WANZARGEN Apr 8, 2025
dee4c26
fix: update ProjectMainPage and ProjectDetailTab components for impro…
WANZARGEN Apr 8, 2025
fc2ebe0
refactor: update import paths for useDashboardWidgetListQuery to shar…
WANZARGEN Apr 8, 2025
9027c68
fix: update ProjectDetailTab component to include unique keys for dyn…
WANZARGEN Apr 8, 2025
c45a020
feat: add cost report and data source APIs with necessary methods
WANZARGEN Apr 8, 2025
3595b5a
feat: enhance workspace home components with new summaries and cost a…
WANZARGEN Apr 9, 2025
618e341
Merge branch 'feature-project-landing' into feature-integration-proje…
WANZARGEN Apr 9, 2025
bfcd24b
feat(project-route): add project dashboard create route & apply route…
piggggggggy Apr 9, 2025
2c13d52
fix(dashboard-shared): separate shared dashboard form dashboards serv…
piggggggggy Apr 9, 2025
bfe8d58
fix(dashboard-create-page): apply dashboard-shared
piggggggggy Apr 9, 2025
40f9590
chore: apply change model to dashboard schema
piggggggggy Apr 9, 2025
ae031dd
fix(dashboard-shared): apply project entry context to create step2
piggggggggy Apr 9, 2025
5e93382
feat(dashboard-shared): separate dashboard detail from dashboard deta…
piggggggggy Apr 9, 2025
3aa9648
feat(dashboard-shared): remove dashboards service context from dashbo…
piggggggggy Apr 9, 2025
df84c90
feat(dashboard-shared): separate dashboard shared component from dash…
piggggggggy Apr 9, 2025
df37d4e
feat(project-dashboard-create): create page & project dashboard query…
piggggggggy Apr 9, 2025
77d52a5
feat(project-dashboard-tab): create dashboard create button & apply p…
piggggggggy Apr 9, 2025
730bdcd
feat(project-dashboard): create project detail/create components
piggggggggy Apr 9, 2025
7edd0df
chore: small fix
piggggggggy Apr 9, 2025
7fd1c5e
chore: fix wrong query (dashboard list)
piggggggggy Apr 9, 2025
a8aacef
fix(dashboard-manageable): refactoring with changed sharing policy
piggggggggy Apr 9, 2025
2a78f12
chore: small fix
piggggggggy Apr 9, 2025
aafb52e
chore: solve lint error
piggggggggy Apr 10, 2025
1340045
chore: add optional chaining
piggggggggy Apr 10, 2025
9433adf
chore: solve widget load bug
piggggggggy Apr 10, 2025
289df54
Merge pull request #5756 from cloudforet-io/feature-project-dashboards
piggggggggy Apr 10, 2025
0aadbf2
fix(dashboard-create): apply changed create field policy
piggggggggy Apr 10, 2025
a25fccb
feat(dashboard-shared): separate dashboard header from dashboard service
piggggggggy Apr 10, 2025
1f48609
feat(dashboard-shared-actions): create dashboard shared actions
piggggggggy Apr 10, 2025
af7b63b
chore: add missing field to dashboard list verb schema
piggggggggy Apr 10, 2025
19b6c19
fix(dashboard-actions-modal): apply dashboard-shared actions to dashb…
piggggggggy Apr 10, 2025
d5be6db
refactor(dashboard-control-menu): refactor dashboard control menu gen…
piggggggggy Apr 10, 2025
5862358
feat: enhance ProjectOverview and summary components
WANZARGEN Apr 10, 2025
344afdc
Merge commit '586235818942c5c211c7848b93ffd3d61f4f11a5' into feature-…
WANZARGEN Apr 10, 2025
3062107
chore: edit dashboard-shared path
piggggggggy Apr 10, 2025
fe5d337
chore: small fix
piggggggggy Apr 10, 2025
f7e0594
chore: apply review (typo)
piggggggggy Apr 10, 2025
1d966e6
chore: solve lint error
piggggggggy Apr 10, 2025
e1569f5
Merge pull request #5759 from cloudforet-io/feature-project-dashboards
piggggggggy Apr 10, 2025
3211ef9
feat(project-folder): create project-dashboard form modal (create, up…
piggggggggy Apr 10, 2025
ff58b51
feat(project-dashboard): create project-dashboard action modals
piggggggggy Apr 10, 2025
61e9e18
feat(project-dashboard): apply action modal
piggggggggy Apr 10, 2025
0e2110b
feat(project-dashboard): create project-dashboard action client state
piggggggggy Apr 10, 2025
741c4d9
chore: small fix
piggggggggy Apr 10, 2025
6d7f1d3
refactor(dashboard-tree-data): optimize dashboard tree data generatio…
piggggggggy Apr 10, 2025
36e1991
feat(folder-delete): create folder delete actions
piggggggggy Apr 10, 2025
47e6732
feat(project-dashboard-clone): create project-dashboard clone action
piggggggggy Apr 10, 2025
e423160
chore: small fix
piggggggggy Apr 10, 2025
9c39a19
feat: implement unified cost API and enhance CostSummary component
WANZARGEN Apr 10, 2025
d0277ab
refactor(workspace-home): remove daily updates handling and related t…
WANZARGEN Apr 10, 2025
a94ee89
refactor: improve layout and styling of summary components
WANZARGEN Apr 10, 2025
0c1a68a
Merge pull request #5760 from cloudforet-io/feature-project-dashboards
piggggggggy Apr 10, 2025
69d7c1e
fix(ProjectMainPage): update condition for rendering project-detail-t…
WANZARGEN Apr 10, 2025
d2d7049
Merge commit '69d7c1e373f764787f4f9defbb92f0d805ca57f5' into feature-…
WANZARGEN Apr 10, 2025
806f3ca
fix(ProjectDetailTab): update handleCreateProjectDashboard to accept …
WANZARGEN Apr 10, 2025
f0080c3
feat(ProjectDetailTab): integrate i18n for tab labels and update Proj…
WANZARGEN Apr 10, 2025
b738dcd
refactor(ProjectMainPage): simplify rendering logic
WANZARGEN Apr 10, 2025
b6f0543
style(ProjectMainPage): add margin-top to project-detail-tab for impr…
WANZARGEN Apr 10, 2025
f99c227
fix(dashboard-vars): create refinedVars composable
piggggggggy Apr 10, 2025
f30723f
refactor(widget-load): optimize widget load query
piggggggggy Apr 10, 2025
ae12887
chore: edit usage of dashboard temp vars
piggggggggy Apr 10, 2025
5620c84
chore: refactor query key composable
piggggggggy Apr 10, 2025
575655d
feat(project-page-context): create project-page-context composable
piggggggggy Apr 10, 2025
0b396f7
fix(p-tab): add missing spec & solve bug
piggggggggy Apr 10, 2025
de8b352
chore: small fix
piggggggggy Apr 10, 2025
a2dfbba
feat(api-client-templates): add new API client generation rules and t…
WANZARGEN Apr 11, 2025
abf707a
Merge remote-tracking branch 'origin/develop' into feature-integratio…
WANZARGEN Apr 11, 2025
2077b3c
fix(dashboard-control-menu): create control menu composable
piggggggggy Apr 11, 2025
ef1b237
refactor(dashboard-manageable): refactor and remove query concern
piggggggggy Apr 11, 2025
c6786a6
fix: apply changed composables
piggggggggy Apr 11, 2025
ad2a121
feat(link): add type import for Location from vue-router
WANZARGEN Apr 11, 2025
9808b99
feat(widget-mode): add WidgetMode type and update components to suppo…
WANZARGEN Apr 11, 2025
2c52c38
fix(link): import Location type from vue-router
WANZARGEN Apr 11, 2025
a8b439e
refactor(dashboard): refactor dashboard composables and helpers
piggggggggy Apr 11, 2025
c71eb05
chore: edit path
piggggggggy Apr 11, 2025
b8dcf04
Merge remote-tracking branch 'cloudforet-io/develop' into feature-int…
skdud4659 Apr 11, 2025
9e3246a
feat(dashboard-shared): create dashboard contet-entry inject layer
piggggggggy Apr 11, 2025
ee8f86f
fix(dashboard-entry-context): apply entry-context
piggggggggy Apr 11, 2025
031245a
chore: edit helper name more clearly
piggggggggy Apr 11, 2025
4b1fc61
fix(dashboards-lsb): remove dashboard-shared context
piggggggggy Apr 11, 2025
9f7b440
chore: small fix
piggggggggy Apr 11, 2025
be7c104
chore: fix wrong route name
piggggggggy Apr 11, 2025
864beb9
chore: remove unused route
piggggggggy Apr 11, 2025
cee2746
chore: edit dashboard-shared path and naming
piggggggggy Apr 12, 2025
b8c31b1
chore: apply changed path
piggggggggy Apr 12, 2025
d0e2f6f
chore: small fix
piggggggggy Apr 12, 2025
a87c8a4
fix(dashboard-variable): apply changed store vars policy
piggggggggy Apr 14, 2025
00684aa
chore: separate vars concern from dashboard detail
piggggggggy Apr 14, 2025
6ccd6be
chore: add translation
piggggggggy Apr 14, 2025
aedfe5c
chore: remove log
piggggggggy Apr 14, 2025
a457329
Merge remote-tracking branch 'cloudforet-io/develop' into feature-int…
piggggggggy Apr 14, 2025
7aefa01
chore: solve conflicts
piggggggggy Apr 14, 2025
da99b18
chore: remove shared dashboard concern from common widget modules
piggggggggy Apr 14, 2025
f5f4779
chore(dashboard-manage-variables): separate portal target
piggggggggy Apr 14, 2025
e1aa1b4
chore: refactor dashboard api composables
piggggggggy Apr 14, 2025
a80a177
fix(git-ignore): add cursor gitignore rule (cursor exception rules)
piggggggggy Apr 14, 2025
c608c22
Merge remote-tracking branch 'cloudforet-io/develop' into feature-int…
piggggggggy Apr 15, 2025
1be7088
chore(project-landing): solve lint error (typescript)
piggggggggy Apr 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
140 changes: 140 additions & 0 deletions .cursor/rules/generate-new-api-clients.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
description:
globs:
alwaysApply: false
---


## Directory Structure
```
api-clients/
├── _common/
│ ├── composables/
│ │ └── use-api-query-key.ts
│ └── schema/
│ ├── api-verbs/
│ └── model.ts
└── {service-name}/
├── {resource}/
│ ├── composables/
│ │ └── use-{resource}-api.ts
│ └── schema/
│ ├── api-verbs/
│ │ ├── {verb}.ts
│ └── model.ts
└── index.ts
```

## API Client Composable Template
```typescript
// use-{resource}-api.ts template
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import { useAPIQueryKey } from '@/api-clients/_common/composables/use-api-query-key';
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { {Resource}CreateParameters } from '@/api-clients/{service}/{resource}/schema/api-verbs/create';
import type { {Resource}Model } from '@/api-clients/{service}/{resource}/schema/model';

export const use{Resource}Api = () => {
// Define API actions
const actions = {
create: SpaceConnector.clientV2.{service}.{resource}.create<{Resource}CreateParameters, {Resource}Model>,
list: SpaceConnector.clientV2.{service}.{resource}.list<{Resource}ListParameters, ListResponse<{Resource}Model>>,
// ... other actions
};

return {
{resource}QueryKey,
{resource}ListQueryKey,
{resource}API: actions,
};
};
```

## Schema Templates

### Model Definition
```typescript
// model.ts template
export interface {Resource}Model {
// Define resource properties
resource_id: string;
name: string;
// ... other properties
}
```

### API Verb Parameters
```typescript
// create.ts template
export interface {Resource}CreateParameters {
// Define create operation parameters
name: string;
// ... other parameters
}

// list.ts template
export interface {Resource}ListParameters {
query?: {
filter?: Array<{
k: string;
v: any;
o: string;
}>;
// ... other query parameters
};
}
```

## Usage Rules

1. **Naming Conventions**
- Use PascalCase for interface names: `{Resource}Model`, `{Resource}{Verb}Parameters`
- Use camelCase for variables and functions: `use{Resource}Api`
- Follow existing naming patterns in the codebase

2. **Type Safety**
- Always define proper TypeScript interfaces for all parameters and responses
- Use generics with SpaceConnector client methods
- Define all possible API parameters in schema files

3. **Query Key Management**
- Use `useAPIQueryKey` for generating consistent query keys
- Create separate query keys for different operations
- Include contextual information in query keys when needed

4. **Code Organization**
- Keep schema definitions separate from API logic
- Group related files in appropriate directories
- Follow the established directory structure

5. **Documentation**
- Add JSDoc comments for public interfaces and functions
- Document any special behaviors or requirements
- Include examples for complex parameter structures

## Example Usage in Components
```typescript
const { {resource}API } = use{Resource}Api();

const { key, params } = useServiceKey(service, resource, verb, {
params: ...
})

// In composables
const query = useScopedQuery({
queryKey: {resource}QueryKey.value,
queryFn: () => {resource}API.{verb}(params.value),
// ... other options
}, ['WORKSPACE', 'ADMIN']);
```

## Notes
- Always check existing API clients for consistent patterns
- Consider reusability and maintainability
- Follow the service's API documentation for accurate parameter definitions
- Use appropriate error handling and loading states
- Consider implementing proper caching strategies
- Add comments only when it is really complex. (English only)


4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ node_modules.nosync/
*.swp
*.bak

## Cursor rules : Ignore all files in .cursor directory except specific file (rules)
.cursor/*
!.cursor/generate-new-api-clients.mdc

# Turborepo
.turbo
out/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,11 @@ export const API_DOC = {
'list',
],
},
inventory: {
'metric-data': [
'analyze',
],
},
opsflow: {
comment: [
'create',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { CostReportConfigListParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/list';
import type { CostReportConfigUpdateParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update';
import type { CostReportConfigModel } from '@/api-clients/cost-analysis/cost-report-config/schema/model';


interface UseCostReportConfigApiReturn {
costReportConfigAPI: {
update: (params: CostReportConfigUpdateParameters) => Promise<CostReportConfigModel>;
list: (params: CostReportConfigListParameters) => Promise<ListResponse<CostReportConfigModel>>;
}
}

export const useCostReportConfigApi = (): UseCostReportConfigApiReturn => {
const actions = {
async update(params: CostReportConfigUpdateParameters) {
return SpaceConnector.clientV2.costAnalysis.costReportConfig.update<CostReportConfigUpdateParameters, CostReportConfigModel>(params);
},
async list(params: CostReportConfigListParameters) {
return SpaceConnector.clientV2.costAnalysis.costReportConfig.list<CostReportConfigListParameters, ListResponse<CostReportConfigModel>>(params);
},
};

return {
costReportConfigAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { CostDataSourceGetParameters } from '@/api-clients/cost-analysis/data-source/schema/api-verbs/get';
import type { CostDataSourceListParameters } from '@/api-clients/cost-analysis/data-source/schema/api-verbs/list';
import type { CostDataSourceSyncParameters } from '@/api-clients/cost-analysis/data-source/schema/api-verbs/sync';
import type { CostDataSourceUpdatePermissionsParameters } from '@/api-clients/cost-analysis/data-source/schema/api-verbs/update-permissions';
import type { CostDataSourceModel } from '@/api-clients/cost-analysis/data-source/schema/model';

interface UseDataSourceApiReturn {
dataSourceAPI: {
get: (params: CostDataSourceGetParameters) => Promise<CostDataSourceModel>;
list: (params: CostDataSourceListParameters) => Promise<ListResponse<CostDataSourceModel>>;
sync: (params: CostDataSourceSyncParameters) => Promise<void>;
updatePermissions: (params: CostDataSourceUpdatePermissionsParameters) => Promise<CostDataSourceModel>;
}
}

export const useDataSourceApi = (): UseDataSourceApiReturn => {
const actions = {
async get(params: CostDataSourceGetParameters) {
return SpaceConnector.clientV2.costAnalysis.dataSource.get<CostDataSourceGetParameters, CostDataSourceModel>(params);
},
async list(params: CostDataSourceListParameters) {
return SpaceConnector.clientV2.costAnalysis.dataSource.list<CostDataSourceListParameters, ListResponse<CostDataSourceModel>>(params);
},
async sync(params: CostDataSourceSyncParameters) {
return SpaceConnector.clientV2.costAnalysis.dataSource.sync<CostDataSourceSyncParameters>(params);
},
async updatePermissions(params: CostDataSourceUpdatePermissionsParameters) {
return SpaceConnector.clientV2.costAnalysis.dataSource.updatePermissions<CostDataSourceUpdatePermissionsParameters, CostDataSourceModel>(params);
},
};

return {
dataSourceAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { SpaceConnector } from '@cloudforet/core-lib/space-connector';

import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze';
import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list';
import type { UnifiedCostAnalyzeParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/analyze';
import type { UnifiedCostListParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/list';
import type { UnifiedCostStatParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat';
import type { UnifiedCostModel } from '@/api-clients/cost-analysis/unified-cost/schema/model';

export const useUnifiedCostApi = () => {
const actions = {
analyze: SpaceConnector.clientV2.costAnalysis.unifiedCost.analyze<UnifiedCostAnalyzeParameters, AnalyzeResponse<any>>,
list: SpaceConnector.clientV2.costAnalysis.unifiedCost.list<UnifiedCostListParameters, ListResponse<UnifiedCostModel>>,
stat: SpaceConnector.clientV2.costAnalysis.unifiedCost.stat<UnifiedCostStatParameters, any>,
};

return {
unifiedCostAPI: actions,
};
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
// Base Model
import type { GLOBAL_VARIABLE_FILTER_TYPE_MAP } from '@/services/dashboards/constants/dashboard-global-variable';

interface DashboardGlobalVariableBase {
key: string; // new_variable
name: string; // New Variable
Expand Down Expand Up @@ -79,4 +77,3 @@ export type DashboardGlobalVariable =



export type GlobalVariableFilterType = keyof typeof GLOBAL_VARIABLE_FILTER_TYPE_MAP;
4 changes: 4 additions & 0 deletions apps/web/src/api-clients/dashboard/_types/dashboard-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,27 @@ import type { PrivateDashboardGetParameters } from '@/api-clients/dashboard/priv
import type { PrivateDashboardListParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/list';
import type { PrivateDashboardUpdateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/update';
import type { PrivateDashboardModel } from '@/api-clients/dashboard/private-dashboard/schema/model';
import type { PrivateFolderModel } from '@/api-clients/dashboard/private-folder/schema/model';
import type { PublicDashboardChangeFolderParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/change-folder';
import type { PublicDashboardCreateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/create';
import type { PublicDashboardDeleteParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/delete';
import type { PublicDashboardGetParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/get';
import type { PublicDashboardListParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/list';
import type { PublicDashboardUpdateParameters } from '@/api-clients/dashboard/public-dashboard/schema/api-verbs/update';
import type { PublicDashboardModel } from '@/api-clients/dashboard/public-dashboard/schema/model';
import type { PublicFolderModel } from '@/api-clients/dashboard/public-folder/schema/model';

import type { VariableModelType } from '@/lib/variable-models';
import type { Value } from '@/lib/variable-models/_base/types';


export type DashboardType = typeof DASHBOARD_TYPE[keyof typeof DASHBOARD_TYPE];
export type DashboardFolderType = 'PUBLIC'|'PRIVATE';

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
export type DashboardModel = PublicDashboardModel | PrivateDashboardModel;
export type DashboardFolderModel = PublicFolderModel | PrivateFolderModel;
export type DashboardCreateParams = PublicDashboardCreateParameters | PrivateDashboardCreateParameters;
export type DashboardChangeFolderParams = PublicDashboardChangeFolderParameters | PrivateDashboardChangeFolderParameters;
export type DashboardListParams = PublicDashboardListParameters | PrivateDashboardListParameters;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,15 @@ import type { PrivateDashboardListParameters } from '@/api-clients/dashboard/pri
import type { PrivateDashboardUpdateParameters } from '@/api-clients/dashboard/private-dashboard/schema/api-verbs/update';
import type { PrivateDashboardModel } from '@/api-clients/dashboard/private-dashboard/schema/model';

interface UsePrivateDashboardApiReturn {
privateDashboardAPI: {
create: (params: PrivateDashboardCreateParameters) => Promise<PrivateDashboardModel>;
update: (params: PrivateDashboardUpdateParameters) => Promise<PrivateDashboardModel>;
changeFolder: (params: PrivateDashboardChangeFolderParameters) => Promise<PrivateDashboardModel>;
delete: (params: PrivateDashboardDeleteParameters) => Promise<void>;
get: (params: PrivateDashboardGetParameters) => Promise<PrivateDashboardModel>;
list: (params: PrivateDashboardListParameters) => Promise<ListResponse<PrivateDashboardModel>>;
}
}

export const usePrivateDashboardApi = (): UsePrivateDashboardApiReturn => {
export const usePrivateDashboardApi = () => {
const actions = {
async create(params: PrivateDashboardCreateParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.create<PrivateDashboardCreateParameters, PrivateDashboardModel>(params);
},
async update(params: PrivateDashboardUpdateParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.update<PrivateDashboardUpdateParameters, PrivateDashboardModel>(params);
},
async changeFolder(params: PrivateDashboardChangeFolderParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.changeFolder<PrivateDashboardChangeFolderParameters, PrivateDashboardModel>(params);
},
async delete(params: PrivateDashboardDeleteParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.delete<PrivateDashboardDeleteParameters>(params);
},
async get(params: PrivateDashboardGetParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.get<PrivateDashboardGetParameters, PrivateDashboardModel>(params);
},
async list(params: PrivateDashboardListParameters) {
return SpaceConnector.clientV2.dashboard.privateDashboard.list<PrivateDashboardListParameters, ListResponse<PrivateDashboardModel>>(params);
},
create: SpaceConnector.clientV2.dashboard.privateDashboard.create<PrivateDashboardCreateParameters, PrivateDashboardModel>,
update: SpaceConnector.clientV2.dashboard.privateDashboard.update<PrivateDashboardUpdateParameters, PrivateDashboardModel>,
changeFolder: SpaceConnector.clientV2.dashboard.privateDashboard.changeFolder<PrivateDashboardChangeFolderParameters, PrivateDashboardModel>,
delete: SpaceConnector.clientV2.dashboard.privateDashboard.delete<PrivateDashboardDeleteParameters>,
get: SpaceConnector.clientV2.dashboard.privateDashboard.get<PrivateDashboardGetParameters, PrivateDashboardModel>,
list: SpaceConnector.clientV2.dashboard.privateDashboard.list<PrivateDashboardListParameters, ListResponse<PrivateDashboardModel>>,
};

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ export interface PrivateDashboardListParameters {
query?: Query;
dashboard_id?: string;
name?: string;
folder_id?: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,15 @@ import type { DataTableLoadParameters } from '@/api-clients/dashboard/public-dat
import type { DataTableTransformParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/transform';
import type { DataTableUpdateParameters } from '@/api-clients/dashboard/public-data-table/schema/api-verbs/update';

interface UsePrivateDataTableApiReturn {
privateDataTableAPI: {
add: (params: DataTableAddParameters) => Promise<PrivateDataTableModel>;
transform: (params: DataTableTransformParameters) => Promise<PrivateDataTableModel>;
update: (params: DataTableUpdateParameters) => Promise<PrivateDataTableModel>;
delete: (params: DataTableDeleteParameters) => Promise<void>;
load: (params: DataTableLoadParameters) => Promise<DataTableLoadResponse>;
get: (params: DataTableGetParameters) => Promise<PrivateDataTableModel>;
list: (params: DataTableListParameters) => Promise<ListResponse<PrivateDataTableModel>>;
}
}

export const usePrivateDataTableApi = (): UsePrivateDataTableApiReturn => {
export const usePrivateDataTableApi = () => {
const action = {
async add(params: DataTableAddParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.add<DataTableAddParameters, PrivateDataTableModel>(params);
},
async transform(params: DataTableTransformParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.transform<DataTableTransformParameters, PrivateDataTableModel>(params);
},
async update(params: DataTableUpdateParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.update<DataTableUpdateParameters, PrivateDataTableModel>(params);
},
async delete(params: DataTableDeleteParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.delete<DataTableDeleteParameters>(params);
},
async load(params: DataTableLoadParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.load<DataTableLoadParameters, DataTableLoadResponse>(params);
},
async get(params: DataTableGetParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.get<DataTableGetParameters, PrivateDataTableModel>(params);
},
async list(params: DataTableListParameters) {
return SpaceConnector.clientV2.dashboard.privateDataTable.list<DataTableListParameters, ListResponse<PrivateDataTableModel>>(params);
},
add: SpaceConnector.clientV2.dashboard.privateDataTable.add<DataTableAddParameters, PrivateDataTableModel>,
transform: SpaceConnector.clientV2.dashboard.privateDataTable.transform<DataTableTransformParameters, PrivateDataTableModel>,
update: SpaceConnector.clientV2.dashboard.privateDataTable.update<DataTableUpdateParameters, PrivateDataTableModel>,
delete: SpaceConnector.clientV2.dashboard.privateDataTable.delete<DataTableDeleteParameters>,
load: SpaceConnector.clientV2.dashboard.privateDataTable.load<DataTableLoadParameters, DataTableLoadResponse>,
get: SpaceConnector.clientV2.dashboard.privateDataTable.get<DataTableGetParameters, PrivateDataTableModel>,
list: SpaceConnector.clientV2.dashboard.privateDataTable.list<DataTableListParameters, ListResponse<PrivateDataTableModel>>,
};

return {
Expand Down
Loading
Loading