Skip to content
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

Migrate user functionality in server #65

Merged
merged 32 commits into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
723d35e
Add axios as a dependency
maximilianruesch Nov 11, 2023
b8bffe8
Add jira cloud API clients
maximilianruesch Nov 11, 2023
08f8328
Migrate trivial requests
maximilianruesch Nov 11, 2023
fe98be6
Migrate non-trivial issue functionality
maximilianruesch Nov 11, 2023
c2f73d2
Resolve issues with default axios handlers
maximilianruesch Nov 11, 2023
359f1bb
Universally handle 401 errors
maximilianruesch Nov 11, 2023
ec0abf4
Improve error handling
maximilianruesch Nov 12, 2023
e30fa9e
Universally handle 400 errors
maximilianruesch Nov 12, 2023
ead3438
Universally handle 429 errors
maximilianruesch Nov 12, 2023
cf84f14
Handle exposed resource through API client
maximilianruesch Nov 12, 2023
053ef38
Universally handle generic 403 errors
maximilianruesch Nov 12, 2023
65775f0
Add new Jira server API clients
maximilianruesch Nov 12, 2023
de7083f
Migrate trivial Jira server calls to new API clients
maximilianruesch Nov 12, 2023
f54a3e9
Migrate non-trivial issue fetching API requests
maximilianruesch Nov 12, 2023
dd9e0eb
Add implementation for current user
maximilianruesch Nov 12, 2023
2e6fce5
Add implementation for assignable users by project
maximilianruesch Nov 12, 2023
53369ef
Fix eslint
maximilianruesch Nov 12, 2023
caa0231
Fix eslint
maximilianruesch Nov 12, 2023
34c8304
Merge branch 'refactor/swap-to-axios' into refactor/migrate-jira-serv…
maximilianruesch Nov 12, 2023
e3f5ebb
Merge branch 'refactor/migrate-jira-server-to-axios' into user-story/…
maximilianruesch Nov 12, 2023
e4ad2c8
Fix eslint
maximilianruesch Nov 12, 2023
50c152d
Fix custom fields mapping
maximilianruesch Nov 12, 2023
6215abf
Merge branch 'refactor/migrate-jira-server-to-axios' into user-story/…
maximilianruesch Nov 12, 2023
daae882
Add ADR for axios
maximilianruesch Nov 18, 2023
a55492e
Merge branch 'refactor/swap-to-axios' into refactor/migrate-jira-serv…
maximilianruesch Nov 18, 2023
8b44aa0
Merge branch 'refactor/migrate-jira-server-to-axios' into user-story/…
maximilianruesch Nov 18, 2023
77b179a
Fix get projects
maximilianruesch Nov 19, 2023
ccc43bb
Merge branch 'refactor/swap-to-axios' into refactor/migrate-jira-serv…
maximilianruesch Nov 19, 2023
10e64ef
Merge branch 'refactor/migrate-jira-server-to-axios' into user-story/…
maximilianruesch Nov 19, 2023
fa8dbe4
Merge branch 'main' into user-story/migrate-user-functionality-in-server
maximilianruesch Nov 21, 2023
77b04c9
Fix create issue modal
maximilianruesch Nov 21, 2023
3f09c54
Rename variable in create issue modal
maximilianruesch Nov 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 29 additions & 6 deletions electron/providers/jira-server-provider/JiraServerProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -363,21 +363,44 @@ export class JiraServerProvider implements IProvider {
)
})
}
/* eslint-disable @typescript-eslint/no-unused-vars */

getAssignableUsersByProject(projectIdOrKey: string): Promise<User[]> {
throw new Error("Method not implemented for Jira Server")
return new Promise((resolve, reject) => {
this.getRestApiClient(2)
.get(`/user/assignable/search?project=${projectIdOrKey}`)
.then(async (response) => {
resolve(response.data as User[])
})
.catch((error) => {
if (error.response) {
if (error.response.status === 404) {
return Promise.reject(Error(`Project was not found: ${error.response.data}`))
}
}

return Promise.reject(error)
})
.catch((error) => {
reject(new Error(`Error in fetching the assignable users for the project ${projectIdOrKey}: ${error}`))
})
})
}

createIssue(issue: Issue): Promise<string> {
throw new Error("Method not implemented for Jira Server")
getCurrentUser(): Promise<User> {
return new Promise((resolve, reject) => {
this.getRestApiClient(2)
.get('/myself')
.then(async (response) => resolve(response.data as User))
.catch((error) => reject(new Error(`Error in the current user: ${error}`)))
})
}
/* eslint-disable @typescript-eslint/no-unused-vars */

getEpicsByProject(projectIdOrKey: string): Promise<Issue[]> {
createIssue(issue: Issue): Promise<string> {
throw new Error("Method not implemented for Jira Server")
}

getCurrentUser(): Promise<User> {
getEpicsByProject(projectIdOrKey: string): Promise<Issue[]> {
throw new Error("Method not implemented for Jira Server")
}

Expand Down
8 changes: 6 additions & 2 deletions src/components/CreateIssue/CreateIssueModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,12 @@ export function CreateIssueModal({

const { data: assignableUsers } = useQuery({
queryKey: ["assignableUsers", form.getInputProps("projectId").value],
queryFn: () =>
getAssignableUsersByProject(form.getInputProps("projectId").value!),
queryFn: () => {
const relevantProject = projects
.find((project) => project.id === form.getInputProps("projectId").value!)!

return getAssignableUsersByProject(relevantProject.key)
},
enabled: !!projects && !!form.getInputProps("projectId").value,
})

Expand Down