Skip to content

Commit f808455

Browse files
added marketplace endpoints
1 parent 5c1ef4d commit f808455

File tree

6 files changed

+60
-1
lines changed

6 files changed

+60
-1
lines changed

client/packages/lowcoder/src/api/applicationApi.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class ApplicationApi extends Api {
7878
static newURLPrefix = "/applications";
7979
static fetchHomeDataURL = "/v1/applications/home";
8080
static createApplicationURL = "/v1/applications";
81+
static fetchAllMarketplaceAppsURL = "/v1/applications/marketplace-apps";
8182
static deleteApplicationURL = (applicationId: string) => `/v1/applications/${applicationId}`;
8283
static getAppPublishInfoURL = (applicationId: string) => `/v1/applications/${applicationId}/view`;
8384
static getAppEditingInfoURL = (applicationId: string) => `/v1/applications/${applicationId}`;
@@ -92,6 +93,9 @@ class ApplicationApi extends Api {
9293
`/v1/applications/${applicationId}/permissions/${permissionId}`;
9394
static createFromTemplateURL = `/v1/applications/createFromTemplate`;
9495
static publicToAllURL = (applicationId: string) => `/applications/${applicationId}/public-to-all`;
96+
static publicToMarketplaceURL = (applicationId: string) => `/v1/applications/${applicationId}/public-to-marketplace`;
97+
static getMarketplaceAppURL = (applicationId: string) => `/v1/applications/${applicationId}/view_marketplace`;
98+
9599

96100
static fetchHomeData(request: HomeDataPayload): AxiosPromise<HomeDataResponse> {
97101
return Api.get(ApplicationApi.fetchHomeDataURL, request);
@@ -167,7 +171,9 @@ class ApplicationApi extends Api {
167171
const url =
168172
type === "published"
169173
? ApplicationApi.getAppPublishInfoURL(applicationId)
170-
: ApplicationApi.getAppEditingInfoURL(applicationId);
174+
: type === "view_marketplace"
175+
? ApplicationApi.getMarketplaceAppURL(applicationId)
176+
: ApplicationApi.getAppEditingInfoURL(applicationId);
171177
return Api.get(url);
172178
}
173179

@@ -211,6 +217,20 @@ class ApplicationApi extends Api {
211217
publicToAll: publicToAll,
212218
});
213219
}
220+
221+
static publicToMarketplace(appId: string, publicToMarketplace: boolean) {
222+
return Api.put(ApplicationApi.publicToMarketplaceURL(appId), {
223+
publicToMarketplace,
224+
});
225+
}
226+
227+
static fetchAllMarketplaceApps() {
228+
return Api.get(ApplicationApi.fetchAllMarketplaceAppsURL);
229+
}
230+
231+
static getMarketplaceApp(appId: string) {
232+
return Api.get(ApplicationApi.getMarketplaceAppURL(appId));
233+
}
214234
}
215235

216236
export default ApplicationApi;

client/packages/lowcoder/src/constants/reduxActionConstants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ export const ReduxActionTypes = {
137137
FETCH_ALL_APPLICATIONS_SUCCESS: "FETCH_ALL_APPLICATIONS_SUCCESS",
138138
FETCH_ALL_MODULES_INIT: "FETCH_ALL_MODULES_INIT",
139139
FETCH_ALL_MODULES_SUCCESS: "FETCH_ALL_MODULES_SUCCESS",
140+
FETCH_ALL_MARKETPLACE_APPS: "FETCH_ALL_MARKETPLACE_APPS",
141+
FETCH_ALL_MARKETPLACE_APPS_SUCCESS: "FETCH_ALL_MARKETPLACE_APPS_SUCCESS",
140142

141143
/* user profile */
142144
SET_USER_PROFILE_SETTING_MODAL_VISIBLE: "SET_USER_PROFILE_SETTING_MODAL_VISIBLE",

client/packages/lowcoder/src/redux/reducers/uiReducers/applicationReducer.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const initialState: ApplicationReduxState = {
2424
applicationList: [],
2525
modules: [],
2626
recycleList: [],
27+
marketplace: [],
2728
loadingStatus: {
2829
isFetchingHomeData: false,
2930
fetchHomeDataFinished: false,
@@ -98,6 +99,13 @@ const usersReducer = createReducer(initialState, {
9899
...state,
99100
recycleList: action.payload,
100101
}),
102+
[ReduxActionTypes.FETCH_ALL_MARKETPLACE_APPS_SUCCESS]: (
103+
state: ApplicationReduxState,
104+
action: ReduxAction<ApplicationMeta[]>
105+
): ApplicationReduxState => ({
106+
...state,
107+
marketplace: action.payload,
108+
}),
101109
[ReduxActionTypes.CREATE_APPLICATION_INIT]: (
102110
state: ApplicationReduxState
103111
): ApplicationReduxState => ({
@@ -336,6 +344,7 @@ export interface ApplicationReduxState {
336344
applicationList: ApplicationMeta[];
337345
modules: ApplicationMeta[];
338346
recycleList: ApplicationMeta[];
347+
marketplace: ApplicationMeta[];
339348
appPermissionInfo?: AppPermissionInfo;
340349
currentApplication?: ApplicationMeta;
341350
templateId?: string;

client/packages/lowcoder/src/redux/reduxActions/applicationActions.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ export const fetchApplicationRecycleList = () => ({
3232
type: ReduxActionTypes.FETCH_APPLICATION_RECYCLE_LIST_INIT,
3333
});
3434

35+
export const fetchAllMarketplaceApps = () => ({
36+
type: ReduxActionTypes.FETCH_ALL_MARKETPLACE_APPS,
37+
});
38+
3539
export type CreateApplicationPayload = {
3640
applicationName: string;
3741
applicationType: AppTypeEnum;

client/packages/lowcoder/src/redux/sagas/applicationSagas.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,24 @@ function* fetchApplicationRecycleListSaga() {
372372
}
373373
}
374374

375+
function* fetchAllMarketplaceAppsSaga() {
376+
try {
377+
const response: AxiosResponse<GenericApiResponse<ApplicationMeta[]>> = yield call(
378+
ApplicationApi.fetchAllMarketplaceApps
379+
);
380+
const isValidResponse: boolean = validateResponse(response);
381+
if (isValidResponse) {
382+
yield put({
383+
type: ReduxActionTypes.FETCH_ALL_MARKETPLACE_APPS_SUCCESS,
384+
payload: response.data.data,
385+
});
386+
}
387+
} catch (error: any) {
388+
messageInstance.error(error.message);
389+
log.debug("fetch marketplace apps error: ", error);
390+
}
391+
}
392+
375393
export default function* applicationSagas() {
376394
yield all([
377395
takeLatest(ReduxActionTypes.FETCH_HOME_DATA, fetchHomeDataSaga),
@@ -393,5 +411,9 @@ export default function* applicationSagas() {
393411
ReduxActionTypes.FETCH_APPLICATION_RECYCLE_LIST_INIT,
394412
fetchApplicationRecycleListSaga
395413
),
414+
takeLatest(
415+
ReduxActionTypes.FETCH_ALL_MARKETPLACE_APPS,
416+
fetchAllMarketplaceAppsSaga,
417+
),
396418
]);
397419
}

client/packages/lowcoder/src/redux/selectors/applicationSelector.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const modulesSelector = (state: AppState): ApplicationMeta[] => state.ui.
88

99
export const recycleListSelector = (state: AppState) => state.ui.application.recycleList;
1010

11+
export const marketplaceSelector = (state: AppState) => state.ui.application.marketplace;
12+
1113
export const getHomeOrg = (state: AppState) => state.ui.application.homeOrg;
1214

1315
export const isFetchingHomeData = (state: AppState) =>

0 commit comments

Comments
 (0)