Prise en compte de la pagination sur la récupération des projets #44
|
@ -3,10 +3,18 @@ import { FETCH_PROJECTS_SUCCESS, FETCH_PROJECTS_FAILURE } from '../actions/proje
|
||||||
import { gitea } from '../../util/gitea';
|
import { gitea } from '../../util/gitea';
|
||||||
|
|
||||||
export function* fetchProjectsSaga() {
|
export function* fetchProjectsSaga() {
|
||||||
|
let projects = [];
|
||||||
let projects;
|
|
||||||
try {
|
try {
|
||||||
projects = yield call(gitea.fetchUserProjects.bind(gitea))
|
let page = 1;
|
||||||
|
while(true) {
|
||||||
|
let pageProjects = yield call(gitea.fetchUserProjects.bind(gitea), page);
|
||||||
|
if (pageProjects.length === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
projects.push(...pageProjects);
|
||||||
|
page++;
|
||||||
|
}
|
||||||
|
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
yield put({ type: FETCH_PROJECTS_FAILURE, error });
|
yield put({ type: FETCH_PROJECTS_FAILURE, error });
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -16,8 +16,8 @@ export class GiteaClient {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchUserProjects() {
|
fetchUserProjects(page = 1) {
|
||||||
return fetch(`/gitea/api/v1/user/repos`)
|
return fetch(`/gitea/api/v1/user/repos?page=${page}`)
|
||||||
.then(this.assertAuthorization)
|
.then(this.assertAuthorization)
|
||||||
.then(this.assertOk)
|
.then(this.assertOk)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
|
|
Loading…
Reference in New Issue