Skip to content

Commit e3ee75b

Browse files
fix: handle config param api in commons-ui (app specific) (#838)
Signed-off-by: Joris Mancini <[email protected]>
1 parent 3506f29 commit e3ee75b

File tree

3 files changed

+34
-8
lines changed

3 files changed

+34
-8
lines changed

src/components/directoryItemSelector/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
import { UUID } from 'crypto';
9-
import { ElementAttributes, ElementType, LAST_SELECTED_DIRECTORY } from '../../utils';
9+
import { COMMON_APP_NAME, ElementAttributes, ElementType, LAST_SELECTED_DIRECTORY } from '../../utils';
1010
import { fetchDirectoryElementPath, updateConfigParameter } from '../../services';
1111

1212
/**
@@ -30,7 +30,7 @@ export async function clearLastSelectedDirectory(): Promise<void> {
3030
localStorage.removeItem(LAST_SELECTED_DIRECTORY);
3131

3232
try {
33-
await updateConfigParameter(LAST_SELECTED_DIRECTORY, 'null');
33+
await updateConfigParameter(COMMON_APP_NAME, LAST_SELECTED_DIRECTORY, 'null');
3434
} catch (error) {
3535
console.error('Failed to clear last selected directory:', error);
3636
}
@@ -42,7 +42,7 @@ export async function clearLastSelectedDirectory(): Promise<void> {
4242
*/
4343
export async function saveLastSelectedDirectory(directoryId: UUID): Promise<void> {
4444
try {
45-
await updateConfigParameter(LAST_SELECTED_DIRECTORY, directoryId);
45+
await updateConfigParameter(COMMON_APP_NAME, LAST_SELECTED_DIRECTORY, directoryId);
4646
} catch (error) {
4747
console.error('Failed to save last selected directory:', error);
4848
}

src/services/directory.ts

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,35 @@
77

88
import { UUID } from 'crypto';
99
import { backendFetch, backendFetchJson, getRequestParamFromList } from './utils';
10-
import { ElementAttributes } from '../utils';
10+
import { COMMON_APP_NAME, COMMON_CONFIG_PARAMS_NAMES, ElementAttributes } from '../utils';
1111

1212
const PREFIX_EXPLORE_SERVER_QUERIES = `${import.meta.env.VITE_API_GATEWAY}/explore`;
1313
const PREFIX_CONFIG_QUERIES = `${import.meta.env.VITE_API_GATEWAY}/config`;
1414

15-
export function updateConfigParameter(name: string, value: string) {
16-
const appName = 'common';
17-
console.info("Updating config parameter '%s=%s' for app '%s' ", name, value, appName);
18-
const updateParams = `${PREFIX_CONFIG_QUERIES}/v1/applications/${appName}/parameters/${name}?value=${encodeURIComponent(value)}`;
15+
export function getAppName(appName: string, name: string) {
16+
return COMMON_CONFIG_PARAMS_NAMES.has(name) ? COMMON_APP_NAME : appName;
17+
}
18+
19+
export function updateConfigParameter(appName: string, name: string, value: string) {
20+
const targetAppName = getAppName(appName, name);
21+
console.info(`Updating config parameter '${name}=${value}' for app '${targetAppName}'`);
22+
const updateParams = `${PREFIX_CONFIG_QUERIES}/v1/applications/${targetAppName}/parameters/${name}?value=${encodeURIComponent(value)}`;
1923
return backendFetch(updateParams, { method: 'put' });
2024
}
2125

26+
export function fetchConfigParameters(appName: string) {
27+
console.info(`Fetching UI configuration params for app : ${appName}`);
28+
const fetchParams = `${PREFIX_CONFIG_QUERIES}/v1/applications/${appName}/parameters`;
29+
return backendFetchJson(fetchParams);
30+
}
31+
32+
export function fetchConfigParameter(appName: string, name: string) {
33+
const targetAppName = getAppName(appName, name);
34+
console.info(`Fetching UI config parameter '${name}' for app '${targetAppName}'`);
35+
const fetchParams = `${PREFIX_CONFIG_QUERIES}/v1/applications/${targetAppName}/parameters/${name}`;
36+
return backendFetchJson(fetchParams);
37+
}
38+
2239
export function fetchRootFolders(types: string[]): Promise<ElementAttributes[]> {
2340
console.info('Fetching Root Directories');
2441

src/utils/constants/configConstants.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,12 @@ export const PARAM_THEME = 'theme';
99
export const PARAM_LANGUAGE = 'language';
1010
export const PARAM_DEVELOPER_MODE = 'enableDeveloperMode';
1111
export const LAST_SELECTED_DIRECTORY = 'lastSelectedDirectory';
12+
13+
export const COMMON_CONFIG_PARAMS_NAMES = new Set([
14+
PARAM_THEME,
15+
PARAM_LANGUAGE,
16+
LAST_SELECTED_DIRECTORY,
17+
PARAM_DEVELOPER_MODE,
18+
]);
19+
20+
export const COMMON_APP_NAME = 'common';

0 commit comments

Comments
 (0)