| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 'use strict';
- // Qiita API v2 documant https://qiita.com/api/v2/docs
- module.exports = function(qiitaTeam, qiitaToken) {
- var restQiitaAPI = {};
- const team = qiitaTeam;
- const token = qiitaToken;
- const axiosBase = require('axios');
- const axios = axiosBase.create({
- baseURL: `https://${team}.qiita.com/api/v2`,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Requested-With': 'XMLHttpRequest',
- 'authorization': `Bearer ${token}`
- },
- responseType: 'json'
- });
- function restAPI(path) {
- return new Promise((resolve, reject) => {
- axios.get(path)
- .then(function(res) {
- const data = res.data;
- const total = res.headers['total-count'];
- resolve([data, total]);
- })
- .catch(function(err) {
- reject(err);
- });
- });
- };
- restQiitaAPI.getQiitaUser = function() {
- return new Promise((resolve, reject) => {
- restAPI('/users')
- .then(function(res) {
- const user = res[0];
- if(user.length > 0) {
- resolve(user);
- }
- else {
- reject('Incorrect team name or access token.');
- }
- })
- .catch(function(err){
- reject(err);
- })
- });
- };
- restQiitaAPI.getQiitaPages = function(pageNum, per_page) {
- return new Promise((resolve, reject) => {
- restAPI(`/items?page=${pageNum}&per_page=${per_page}`)
- .then(function(res) {
- const pages = res[0];
- const total = res[1];
- if(pages.length > 0) {
- resolve([pages, total]);
- }
- else {
- reject('page not find.');
- }
- })
- .catch(function(err){
- reject(err);
- })
- });
- };
- return restQiitaAPI;
- }
|