You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by mi...@apache.org on 2024/03/28 22:06:50 UTC

(incubator-devlake) 01/01: fix: missed project name check

This is an automated email from the ASF dual-hosted git repository.

mintsweet pushed a commit to branch fix-project-name-check
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit a63f9ad44b6e031f613533794e1cc82aa636c307
Author: mintsweet <0x...@gmail.com>
AuthorDate: Fri Mar 29 11:06:38 2024 +1300

    fix: missed project name check
---
 config-ui/src/api/project/index.ts      |  2 ++
 config-ui/src/routes/onboard/step-1.tsx | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/config-ui/src/api/project/index.ts b/config-ui/src/api/project/index.ts
index dd6f786a0..fb8efe5e5 100644
--- a/config-ui/src/api/project/index.ts
+++ b/config-ui/src/api/project/index.ts
@@ -24,6 +24,8 @@ export const list = (data: Pagination): Promise<{ count: number; projects: IProj
 
 export const get = (name: string): Promise<IProject> => request(`/projects/${name}`);
 
+export const checkName = (name: string) => request(`/projects/${name}/check`);
+
 export const create = (data: Pick<IProject, 'name' | 'description' | 'metrics'>) =>
   request('/projects', {
     method: 'post',
diff --git a/config-ui/src/routes/onboard/step-1.tsx b/config-ui/src/routes/onboard/step-1.tsx
index 707285d9a..6d97abcc5 100644
--- a/config-ui/src/routes/onboard/step-1.tsx
+++ b/config-ui/src/routes/onboard/step-1.tsx
@@ -55,6 +55,16 @@ export const Step1 = () => {
       return;
     }
 
+    const [, res] = await operator(() => API.project.checkName(projectName), {
+      setOperating,
+      hideToast: true,
+    });
+
+    if (res.exist) {
+      message.error(`Project name "${projectName}" already exists, please try another name.`);
+      return;
+    }
+
     const [success] = await operator(() => API.store.set('onboard', { step: 2, records, done, projectName, plugin }), {
       setOperating,
       hideToast: true,