21 lines
661 B
JavaScript
21 lines
661 B
JavaScript
function createReviewController({ fetchJson }) {
|
|
function endpoint(item) {
|
|
const [owner, repo] = String(item.repository || '').split('/');
|
|
if (!owner || !repo || !Number.isInteger(Number(item.number))) {
|
|
throw new Error('This review link is invalid.');
|
|
}
|
|
return 'api/v1/repos/' + encodeURIComponent(owner) + '/' + encodeURIComponent(repo) +
|
|
'/pulls/' + Number(item.number) + '/review';
|
|
}
|
|
|
|
async function load(item) {
|
|
return fetchJson(endpoint(item), { headers: { Accept: 'application/json' } });
|
|
}
|
|
|
|
return { load };
|
|
}
|
|
|
|
if (typeof module !== 'undefined' && module.exports) {
|
|
module.exports = createReviewController;
|
|
}
|