Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Next Next commit
Change request to fetch
  • Loading branch information
hkmoon committed Sep 26, 2019
commit c93b49da320e89fe9e6db140add769f91a7226c1
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@
"progress": "^2.0.0",
"prompt": "^1.0.0",
"read-yaml": "^1.1.0",
"request": "^2.87.0",
"request-promise-native": "^1.0.4",
"shelljs": "^0.8.3",
"tempfile": "^2.0.0",
"underscore": "^1.9.1",
Expand Down
35 changes: 19 additions & 16 deletions src/models/base.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
const request = require('request-promise-native');
const url = require('url');
const async = require('async');
const crypto = require('crypto');

Expand Down Expand Up @@ -36,9 +34,10 @@ class base {
data.private_token = this.token;

return new Promise((resolve, reject) => {
request.post(`${this.url}${path}`, {
fetch(`${this.url}${path}`, {
method: 'POST',
json: true,
body: data,
body: JSON.stringify(data),
insecure: this._insecure,
proxy: this._proxy,
resolveWithFullResponse: true,
Expand Down Expand Up @@ -67,7 +66,7 @@ class base {
path += `&page=${page}&per_page=${perPage}`;

return new Promise((resolve, reject) => {
request(`${this.url}${path}`, {
fetch(`${this.url}${path}`, {
json: true,
insecure: this._insecure,
proxy: this._proxy,
Expand Down Expand Up @@ -95,15 +94,17 @@ class base {
let collect = [];

this.get(path, 1, perPage).then(response => {
response.body.forEach(item => collect.push(item));
let pages = parseInt(response.headers['x-total-pages']);

if (pages === 1) return resolve(collect);

let tasks = base.createGetTasks(path, pages, 2, perPage);
this.getParallel(tasks, collect, runners).then(() => {
resolve(collect);
}).catch(error => reject(error));
response.json().then(data => {
data.forEach(item => collect.push(item));
let pages = parseInt(response.headers['x-total-pages']);

if (pages === 1) return resolve(collect);

let tasks = base.createGetTasks(path, pages, 2, perPage);
this.getParallel(tasks, collect, runners).then(() => {
resolve(collect);
}).catch(error => reject(error));
})
}).catch(err => reject(err));
});
}
Expand Down Expand Up @@ -134,8 +135,10 @@ class base {
*/
getParallel(tasks, collect = [], runners = this._parallel) {
return this.parallel(tasks, (task, done) => {
this.get(task.path, task.page, task.perPage).then((response) => {
response.body.forEach(item => collect.push(item));
this.get(task.path, task.page, task.perPage)
.then(response => response.json())
.then(items => {
items.forEach(item => collect.push(item));
done();
}).catch(error => done(error));
}, runners);
Expand Down
2 changes: 1 addition & 1 deletion src/models/hasTimes.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class hasTimes extends Base {
*/
getStats() {
let promise = this.get(`projects/${this.data.project_id}/${this._type}/${this.iid}/time_stats`);
promise.then(response => this.stats = response.body);
promise.then(response => response.json()).then(response => this.stats = response);

return promise;
}
Expand Down
4 changes: 2 additions & 2 deletions src/models/issue.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ class issue extends hasTimes {
promise = this.get(`projects/${encodeURIComponent(project)}/issues/${id}`);
}

promise.then(issue => {
this.data = issue.body;
promise.then(response => response.json()).then(issue => {
this.data = issue;
return promise;
});

Expand Down
4 changes: 2 additions & 2 deletions src/models/mergeRequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ class mergeRequest extends hasTimes {
promise = this.get(`projects/${encodeURIComponent(project)}/merge_requests/${id}`);
}

promise.then(issue => {
this.data = issue.body;
promise.then(response => response.json()).then(issue => {
this.data = issue;
return promise;
});

Expand Down
3 changes: 3 additions & 0 deletions src/models/owner.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class owner extends Base {
getGroup() {
return new Promise((resolve, reject) => {
this.get(`groups`)
.then(response => response.json())
.then(groups => {
if (groups.body.length === 0) return reject('Group not found');
groups = groups.body;
Expand All @@ -57,6 +58,7 @@ class owner extends Base {
getSubGroups() {
return new Promise((resolve, reject) => {
this.get(`groups`)
.then(response => response.json())
.then(groups => {
if (groups.body.length === 0) return resolve();

Expand Down Expand Up @@ -122,6 +124,7 @@ class owner extends Base {
getProjectsByGroup() {
return this.parallel(this.groups, (group, done) => {
this.get(`groups/${group.id}/projects`)
.then(response => response.json())
.then(projects => {
this.projects = this.projects.concat(projects.body);
done();
Expand Down
8 changes: 5 additions & 3 deletions src/models/project.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class project extends Base {
*/
make(name) {
let promise = this.get(`projects/${encodeURIComponent(name)}`);
promise.then(project => this.data = project.body);
promise.then(response => response.json()).then(project => this.data = project);

return promise;
}
Expand All @@ -33,16 +33,18 @@ class project extends Base {
members() {
return new Promise((resolve, reject) => {
this.get(`projects/${this.id}/members`)
.then(response => response.json())
.then(response => {
this.projectMembers = this.projectMembers.concat(response.body);
this.projectMembers = this.projectMembers.concat(response);
return new Promise(r => r());
})
.then(() => {
if (!this.data.namespace || !this.data.namespace.kind || this.data.namespace.kind !== "group") return resolve();

this.get(`groups/${this.data.namespace.id}/members`)
.then(response => response.json())
.then(response => {
this.projectMembers = this.projectMembers.concat(response.body);
this.projectMembers = this.projectMembers.concat(response);
resolve();
})
.catch(e => reject(e));
Expand Down
2 changes: 1 addition & 1 deletion src/models/report.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class report extends Base {
*/
getProject() {
let promise = this.get(`projects/${encodeURIComponent(this.config.get('project'))}`);
promise.then(project => this.setProject(project.body));
promise.then(response => response.json()).then(project => this.setProject(project));

return promise;
}
Expand Down