diff --git a/src/api/index.js b/src/api/index.js index 6d0f50258..06d09ec93 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -158,138 +158,7 @@ export const v3 = { }, }; -export const fetchAuthUser = accessToken => v3.getJson('/user', accessToken); - -export const fetchAuthUserOrgs = accessToken => - v3.getJson('/user/orgs', accessToken); - -export const fetchUser = (user, accessToken) => - v3.getJson(`/users/${user}`, accessToken); - -export const fetchUserOrgs = (user, accessToken) => - v3.getJson(`/users/${user}/orgs`, accessToken); - -export const fetchUserEvents = (user, accessToken) => - v3.getJson(`/users/${user}/received_events?per_page=100`, accessToken); - -export const fetchReadMe = (user, repository, accessToken) => - v3.getHtml(`/repos/${user}/${repository}/readme?ref=master`, accessToken); - -export const fetchOrg = (orgName, accessToken) => - v3.getJson(`/orgs/${orgName}`, accessToken); - -export const fetchOrgMembers = (orgName, accessToken) => - v3.getJson(`/orgs/${orgName}/members`, accessToken); - -export const fetchPostIssueComment = ( - body, - owner, - repoName, - issueNum, - accessToken -) => - v3.postJson( - `/repos/${owner}/${repoName}/issues/${issueNum}/comments`, - accessToken, - { body } - ); - -export const fetchEditIssue = ( - owner, - repoName, - issueNum, - editParams, - updateParams, - accessToken -) => - v3.patch( - `/repos/${owner}/${repoName}/issues/${issueNum}`, - accessToken, - editParams - ); - -export const fetchChangeIssueLockStatus = ( - owner, - repoName, - issueNum, - currentStatus, - accessToken -) => - v3[currentStatus ? 'delete' : 'put']( - `/repos/${owner}/${repoName}/issues/${issueNum}/lock`, - accessToken - ); - -export const fetchSearch = (type, query, accessToken, params = '') => - v3.getJson(`/search/${type}?q=${query}${params}`, accessToken); - -export const fetchNotifications = (participating, all, accessToken) => - v3.getJson( - `/notifications?participating=${participating}&all=${all}`, - accessToken - ); - -export const fetchMarkNotificationAsRead = (notificationID, accessToken) => - v3.patch(`/notifications/threads/${notificationID}`, accessToken); - -export const fetchMarkRepoNotificationAsRead = (repoFullName, accessToken) => - v3.put(`/repos/${repoFullName}/notifications`, accessToken); - -export const fetchChangeStarStatusRepo = (owner, repo, starred, accessToken) => - v3[starred ? 'delete' : 'put'](`/user/starred/${owner}/${repo}`, accessToken); - -export const fetchForkRepo = (owner, repo, accessToken) => - v3.post(`/repos/${owner}/${repo}/forks`, accessToken); - -export const fetchStarCount = (owner, accessToken) => - v3.count(`/users/${owner}/starred`, accessToken); - -export const isWatchingRepo = (url, accessToken) => v3.head(url, accessToken); - -export const watchRepo = (owner, repo, accessToken) => - v3.put(`/repos/${owner}/${repo}/subscription`, accessToken, { - subscribed: true, - }); - -export const unWatchRepo = (owner, repo, accessToken) => - v3.delete(`/repos/${owner}/${repo}/subscription`, accessToken); - -export const fetchChangeFollowStatus = (user, isFollowing, accessToken) => - v3[isFollowing ? 'delete' : 'put'](`/user/following/${user}`, accessToken); - -export const fetchDiff = (url, accessToken) => v3.getDiff(url, accessToken); - -export const fetchMergeStatus = (repo, issueNum, accessToken) => - v3.get(`/repos/${repo}/pulls/${issueNum}/merge`, accessToken); - -export const fetchMergePullRequest = ( - repo, - issueNum, - commitTitle, - commitMessage, - mergeMethod, - accessToken -) => - v3.put(`/repos/${repo}/pulls/${issueNum}/merge`, accessToken, { - commit_title: commitTitle, - commit_message: commitMessage, - merge_method: mergeMethod, - }); - -export const fetchSubmitNewIssue = ( - owner, - repo, - issueTitle, - issueComment, - accessToken -) => - v3.postJson(`/repos/${owner}/${repo}/issues`, accessToken, { - title: issueTitle, - body: issueComment, - }); - -// Auth -const authParameters = (code, state) => ({ +export const authParameters = (code, state) => ({ method: METHOD.POST, headers: { Accept: 'application/json', @@ -302,13 +171,3 @@ const authParameters = (code, state) => ({ state, }), }); - -export async function fetchAccessToken(code, state) { - const GITHUB_OAUTH_ENDPOINT = 'https://github.com/login/oauth/access_token'; - const response = await fetch( - GITHUB_OAUTH_ENDPOINT, - authParameters(code, state) - ); - - return response.json(); -} diff --git a/src/auth/auth.action.js b/src/auth/auth.action.js index 7bc2b94f0..87fd70cbb 100644 --- a/src/auth/auth.action.js +++ b/src/auth/auth.action.js @@ -4,14 +4,8 @@ import uniqby from 'lodash.uniqby'; import { delay, resetNavigationTo, configureLocale } from 'utils'; import { saveLanguage } from 'locale'; -import { - fetchAccessToken, - fetchAuthUser, - fetchAuthUserOrgs, - fetchUserOrgs, - fetchUserEvents, - fetchStarCount, -} from 'api'; +import { fetchUserOrgs, fetchUserEvents, fetchStarCount } from 'user/user.api'; +import { fetchAccessToken, fetchAuthUser, fetchAuthUserOrgs } from './auth.api'; import { LOGIN, LOGOUT, diff --git a/src/auth/auth.api.js b/src/auth/auth.api.js new file mode 100644 index 000000000..782492327 --- /dev/null +++ b/src/auth/auth.api.js @@ -0,0 +1,6 @@ +import { v3 } from 'api'; + +export const fetchAuthUser = accessToken => v3.getJson('/user', accessToken); + +export const fetchAuthUserOrgs = accessToken => + v3.getJson('/user/orgs', accessToken); diff --git a/src/issue/issue.action.js b/src/issue/issue.action.js index 974d2d9b8..971ba5279 100644 --- a/src/issue/issue.action.js +++ b/src/issue/issue.action.js @@ -1,3 +1,4 @@ +import { v3 } from 'api'; import { fetchMergeStatus, fetchPostIssueComment, @@ -5,8 +6,7 @@ import { fetchChangeIssueLockStatus, fetchMergePullRequest, fetchSubmitNewIssue, - v3, -} from 'api'; +} from './issue.api'; import { GET_ISSUE_COMMENTS, POST_ISSUE_COMMENT, diff --git a/src/issue/issue.api.js b/src/issue/issue.api.js new file mode 100644 index 000000000..94f3a8c9b --- /dev/null +++ b/src/issue/issue.api.js @@ -0,0 +1,71 @@ +import { v3 } from 'api'; + +export const fetchDiff = (url, accessToken) => v3.getDiff(url, accessToken); + +export const fetchMergeStatus = (repo, issueNum, accessToken) => + v3.get(`/repos/${repo}/pulls/${issueNum}/merge`, accessToken); + +export const fetchMergePullRequest = ( + repo, + issueNum, + commitTitle, + commitMessage, + mergeMethod, + accessToken +) => + v3.put(`/repos/${repo}/pulls/${issueNum}/merge`, accessToken, { + commit_title: commitTitle, + commit_message: commitMessage, + merge_method: mergeMethod, + }); + +export const fetchSubmitNewIssue = ( + owner, + repo, + issueTitle, + issueComment, + accessToken +) => + v3.postJson(`/repos/${owner}/${repo}/issues`, accessToken, { + title: issueTitle, + body: issueComment, + }); + +export const fetchPostIssueComment = ( + body, + owner, + repoName, + issueNum, + accessToken +) => + v3.postJson( + `/repos/${owner}/${repoName}/issues/${issueNum}/comments`, + accessToken, + { body } + ); + +export const fetchEditIssue = ( + owner, + repoName, + issueNum, + editParams, + updateParams, + accessToken +) => + v3.patch( + `/repos/${owner}/${repoName}/issues/${issueNum}`, + accessToken, + editParams + ); + +export const fetchChangeIssueLockStatus = ( + owner, + repoName, + issueNum, + currentStatus, + accessToken +) => + v3[currentStatus ? 'delete' : 'put']( + `/repos/${owner}/${repoName}/issues/${issueNum}/lock`, + accessToken + ); diff --git a/src/notifications/notifications.action.js b/src/notifications/notifications.action.js index 5474ae9fa..ae4c55e24 100644 --- a/src/notifications/notifications.action.js +++ b/src/notifications/notifications.action.js @@ -2,7 +2,7 @@ import { fetchNotifications, fetchMarkNotificationAsRead, fetchMarkRepoNotificationAsRead, -} from 'api'; +} from './notifications.api'; import { GET_UNREAD_NOTIFICATIONS, GET_PARTICIPATING_NOTIFICATIONS, diff --git a/src/notifications/notifications.api.js b/src/notifications/notifications.api.js new file mode 100644 index 000000000..542eb9139 --- /dev/null +++ b/src/notifications/notifications.api.js @@ -0,0 +1,13 @@ +import { v3 } from 'api'; + +export const fetchNotifications = (participating, all, accessToken) => + v3.getJson( + `/notifications?participating=${participating}&all=${all}`, + accessToken + ); + +export const fetchMarkNotificationAsRead = (notificationID, accessToken) => + v3.patch(`/notifications/threads/${notificationID}`, accessToken); + +export const fetchMarkRepoNotificationAsRead = (repoFullName, accessToken) => + v3.put(`/repos/${repoFullName}/notifications`, accessToken); diff --git a/src/organization/organization.action.js b/src/organization/organization.action.js index 19bd0eaae..e89ba7aae 100644 --- a/src/organization/organization.action.js +++ b/src/organization/organization.action.js @@ -1,6 +1,7 @@ import { createAction } from 'redux-actions'; -import { fetchOrg, fetchOrgMembers, v3 } from 'api'; +import { v3 } from 'api'; +import { fetchOrg, fetchOrgMembers } from './organization.api'; import { GET_ORG, GET_ORG_LOADING, diff --git a/src/organization/organization.api.js b/src/organization/organization.api.js new file mode 100644 index 000000000..a7bf57fff --- /dev/null +++ b/src/organization/organization.api.js @@ -0,0 +1,7 @@ +import { v3 } from 'api'; + +export const fetchOrg = (orgName, accessToken) => + v3.getJson(`/orgs/${orgName}`, accessToken); + +export const fetchOrgMembers = (orgName, accessToken) => + v3.getJson(`/orgs/${orgName}/members`, accessToken); diff --git a/src/repository/repository.action.js b/src/repository/repository.action.js index b6534e025..15ef58145 100644 --- a/src/repository/repository.action.js +++ b/src/repository/repository.action.js @@ -1,13 +1,13 @@ +import { v3 } from 'api'; +import { fetchSearch } from 'search/search.api'; import { fetchReadMe, - fetchSearch, fetchChangeStarStatusRepo, fetchForkRepo, watchRepo, unWatchRepo, isWatchingRepo, - v3, -} from 'api'; +} from './repository.api'; import { GET_REPOSITORY, GET_REPOSITORY_CONTRIBUTORS, diff --git a/src/repository/repository.api.js b/src/repository/repository.api.js new file mode 100644 index 000000000..5dd349d38 --- /dev/null +++ b/src/repository/repository.api.js @@ -0,0 +1,20 @@ +import { v3 } from 'api'; + +export const fetchReadMe = (user, repository, accessToken) => + v3.getHtml(`/repos/${user}/${repository}/readme?ref=master`, accessToken); + +export const fetchForkRepo = (owner, repo, accessToken) => + v3.post(`/repos/${owner}/${repo}/forks`, accessToken); + +export const isWatchingRepo = (url, accessToken) => v3.head(url, accessToken); + +export const watchRepo = (owner, repo, accessToken) => + v3.put(`/repos/${owner}/${repo}/subscription`, accessToken, { + subscribed: true, + }); + +export const unWatchRepo = (owner, repo, accessToken) => + v3.delete(`/repos/${owner}/${repo}/subscription`, accessToken); + +export const fetchChangeStarStatusRepo = (owner, repo, starred, accessToken) => + v3[starred ? 'delete' : 'put'](`/user/starred/${owner}/${repo}`, accessToken); diff --git a/src/search/search.action.js b/src/search/search.action.js index 2885f1690..71ea7e19c 100644 --- a/src/search/search.action.js +++ b/src/search/search.action.js @@ -1,4 +1,4 @@ -import { fetchSearch } from 'api'; +import { fetchSearch } from './search.api'; import { SEARCH_REPOS, SEARCH_USERS } from './search.type'; export const searchRepos = query => { diff --git a/src/search/search.api.js b/src/search/search.api.js new file mode 100644 index 000000000..48303eb6b --- /dev/null +++ b/src/search/search.api.js @@ -0,0 +1,4 @@ +import { v3 } from 'api'; + +export const fetchSearch = (type, query, accessToken, params = '') => + v3.getJson(`/search/${type}?q=${query}${params}`, accessToken); diff --git a/src/user/user.action.js b/src/user/user.action.js index 5fd732f89..34450730b 100644 --- a/src/user/user.action.js +++ b/src/user/user.action.js @@ -1,11 +1,11 @@ +import { v3 } from 'api'; +import { fetchSearch } from 'search/search.api'; import { fetchUser, fetchUserOrgs, - fetchSearch, fetchChangeFollowStatus, fetchStarCount, - v3, -} from 'api'; +} from './user.api'; import { GET_USER, GET_ORGS, diff --git a/src/user/user.api.js b/src/user/user.api.js new file mode 100644 index 000000000..baa9787ef --- /dev/null +++ b/src/user/user.api.js @@ -0,0 +1,16 @@ +import { v3 } from 'api'; + +export const fetchUser = (user, accessToken) => + v3.getJson(`/users/${user}`, accessToken); + +export const fetchUserOrgs = (user, accessToken) => + v3.getJson(`/users/${user}/orgs`, accessToken); + +export const fetchStarCount = (owner, accessToken) => + v3.count(`/users/${owner}/starred`, accessToken); + +export const fetchChangeFollowStatus = (user, isFollowing, accessToken) => + v3[isFollowing ? 'delete' : 'put'](`/user/following/${user}`, accessToken); + +export const fetchUserEvents = (user, accessToken) => + v3.getJson(`/users/${user}/received_events?per_page=100`, accessToken);