Skip to content

Instantly share code, notes, and snippets.

@kuc-arc-f
Created March 13, 2021 23:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuc-arc-f/f05807e9f07a9dc63cedd891cf45aa9b to your computer and use it in GitHub Desktop.
Save kuc-arc-f/f05807e9f07a9dc63cedd891cf45aa9b to your computer and use it in GitHub Desktop.
Github clone数を取得する API
var csrf = require('csrf');
var tokens = new csrf();
// LibHeadless
import LibHeadless from "../../../libs/LibHeadless"
//
export default async function (req, res){
try{
if(typeof req.headers.token =='undefined'){
throw new Error('Invalid header , token');
}
console.log(req.body);
var data = req.body
var token = req.headers.token
var url =process.env.API_URL + "/api/get/find?content=repos&site_id="+ process.env.MY_SITE_ID
console.log("token=" , token);
console.log("url=" , url);
const request = await fetch( url );
const json = await request.json();
var items = json
items = await LibHeadless.get_count_items(items)
var d = await LibHeadless.add_count(items)
// console.log(items);
res.json({})
} catch (err) {
console.log(err);
res.status(500).send();
}
};
export default {
add_count: async function(items){
try{
var len = items.length
for(var i=0; i < len; i++){
var item = items[i]
//console.log(item)
var data = {
repo_id: item.id, name: item.name,
count: item.count, uniques: item.uniques,
}
var api_key = process.env.MY_API_KEY
var content = "counts"
const response = await fetch(process.env.API_URL + '/api/post/create/' + content, {
method: 'POST',
headers: {
'Content-Type': 'application/json', 'apikey': api_key
},
body: JSON.stringify(data),
});
if (response.status !== 200) {
throw new Error(await response.text());
}
}
} catch (err) {
console.log(err);
throw new Error('error, add_count');
}
},
get_count_items: async function(items){
try{
var ret = []
var len = items.length
for(var i=0; i < len; i++){
//console.log(items[i].name );
var item = items[i]
var name = items[i].name
var url = process.env.GIT_API_URL + `/repos/${process.env.GIT_OWNER}/${name}/`
url += "traffic/clones?per=week"
//console.log(url)
var response = await fetch(url, {
method: 'GET', headers: { 'Authorization': 'token ' + process.env.GIT_TOKEN },
});
var status = await response.status
if (status === 200) {
var json = await response.json()
item.count = json.count
item.uniques = json.uniques
//console.log(json );
ret.push(item)
}
}
//console.log(ret );
return ret
} catch (err) {
console.log(err);
throw new Error('error, get_count_items');
}
},
delete_count_items: async function(items){
try{
var api_key = process.env.MY_API_KEY
var content = "counts"
var len = items.length
for(var i=0; i < len; i++){
var item = items[i]
//console.log(item.id)
var delete_item = {
id: item.id,
}
const response = await fetch(process.env.API_URL + '/api/post/delete/' + content, {
method: 'POST',
headers: {
'Content-Type': 'application/json', 'apikey': api_key
},
body: JSON.stringify(delete_item),
});
if (response.status !== 200) {
throw new Error(await response.text());
}
}
} catch (err) {
console.log(err);
throw new Error('error, delete_count_items');
}
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment