Skip to content

Commit ab655b9

Browse files
committed
fix(project): Show backend conflict message with modified date when creating duplicate project
Signed-off-by: suhas-SHS <[email protected]>
1 parent 2d5ce37 commit ab655b9

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed

src/app/[locale]/projects/add/page.tsx

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ function AddProjects(): JSX.Element {
103103
])
104104

105105
useEffect(() => {
106-
;(async () => {
106+
; (async () => {
107107
try {
108108
const session = await getSession()
109109
if (CommonUtils.isNullOrUndefined(session)) {
@@ -152,21 +152,38 @@ function AddProjects(): JSX.Element {
152152
}
153153

154154
const createProject = async () => {
155+
const session = await getSession()
156+
if (CommonUtils.isNullOrUndefined(session)) return signOut()
157+
const createUrl = isDependencyNetworkFeatureEnabled === true ? `projects/network` : 'projects'
155158
try {
156-
const session = await getSession()
157-
if (CommonUtils.isNullOrUndefined(session)) return signOut()
158-
const createUrl = isDependencyNetworkFeatureEnabled === true ? `projects/network` : 'projects'
159159
const response = await ApiUtils.POST(createUrl, projectPayload, session.user.access_token)
160160

161161
if (response.status == StatusCodes.CREATED) {
162162
const data = (await response.json()) as Project
163163
MessageService.success(t('Your project is created'))
164164
router.push(`/projects/detail/${data._links.self.href.split('/').at(-1)}`)
165-
} else {
166-
MessageService.error(t('There are some errors while creating project'))
165+
return
167166
}
168-
} catch (e) {
169-
console.error(e)
167+
if (response.status === StatusCodes.CONFLICT) {
168+
const body = await response.json().catch(() => ({}))
169+
const msg = body?.message || 'SW360 project already exists'
170+
MessageService.error(`${msg}`)
171+
return
172+
}
173+
MessageService.error(t('There are some errors while creating project'))
174+
} catch (err: unknown) {
175+
const res = (err as Response) ?? {}
176+
if ('status' in res && res.status === StatusCodes.CONFLICT) {
177+
let msg = 'SW360 project already exists'
178+
try {
179+
const body = await res.json()
180+
msg = body?.message ?? msg
181+
} catch { }
182+
MessageService.error(`${msg}`)
183+
return
184+
}
185+
186+
MessageService.error(t('There are some errors while creating project'))
170187
}
171188
}
172189

src/app/[locale]/projects/duplicate/[id]/components/DuplicateProject.tsx

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -379,13 +379,32 @@ function DuplicateProject({ projectId, isDependencyNetworkFeatureEnabled }: Prop
379379
isDependencyNetworkFeatureEnabled === true
380380
? `projects/network/duplicate/${projectId}`
381381
: `projects/duplicate/${projectId}`
382-
const response = await ApiUtils.POST(createProjectUrl, projectPayload, session.user.access_token)
383-
384-
if (response.status == StatusCodes.CREATED) {
385-
const data = (await response.json()) as Project
386-
MessageService.success(t('Your project is created'))
387-
router.push(`/projects/detail/${data._links.self.href.split('/').at(-1)}`)
388-
} else {
382+
try {
383+
const response = await ApiUtils.POST(createProjectUrl, projectPayload, session.user.access_token)
384+
385+
if (response.status == StatusCodes.CREATED) {
386+
const data = (await response.json()) as Project
387+
MessageService.success(t('Your project is created'))
388+
router.push(`/projects/detail/${data._links.self.href.split('/').at(-1)}`)
389+
return
390+
} if (response.status === StatusCodes.CONFLICT) {
391+
const body = await response.json().catch(() => ({}))
392+
const msg = body?.message || 'SW360 project already exists'
393+
MessageService.error(`${msg}`)
394+
return
395+
}
396+
MessageService.error(t('There are some errors while creating project'))
397+
} catch (err: unknown) {
398+
const res = (err as Response) ?? {}
399+
if ('status' in res && res.status === StatusCodes.CONFLICT) {
400+
let msg = 'SW360 project already exists'
401+
try {
402+
const body = await res.json()
403+
msg = body?.message ?? msg
404+
} catch { }
405+
MessageService.error(`${msg}`)
406+
return
407+
}
389408
MessageService.error(t('There are some errors while creating project'))
390409
}
391410
}

0 commit comments

Comments
 (0)