function profileGen(username, container) {
queryAPIByUser("", username, (user) => {
parseOrgs(user.login).then( (orgsReturn) => {
let html =
"
\
\
\
"+user.name+" \
"+user.login+" \
\
\
\
"+user.html_url+"
"+
(user.blog != null ? ""+user.blog+"
" : "")+" \
\
\
\
- Followers: "+user.followers+"
\
- Following: "+user.following+"
\
- Repositories: "+user.public_repos+"
" +
(user.bio != null ? "- Bio: "+user.bio+"
" : "")+
(user.location != null ? "- Location: "+user.location+"
" : "")+
(user.email != null ? "- Email: "+user.email+"
" : "")+
(user.company != null ? "- Company: "+user.company+"
" : "")+
(orgsReturn != [] ? "- "+orgsReturn+"
" : "")+ " \
\
"
$("#"+container).html(html);
})
}, () => {
console.error("error getting user info");
});
}
function parseOrgs(name) {
return new Promise( (resolve, reject) => {
let urlpath = `api/users/${name}/orgs`;
let orgs_final = [];
queryUrl(urlpath, (orgs) => {
var prom= [];
for(var i = 0;i < orgs.length; i++) {
prom.push( new Promise( (res, rej) => {
url = orgs[i].url;
queryUrl(url, (orgData) => {
orgs_final.push("");
res();
}, (error) => {
console.log(error);
rej(error);
console.error("error getting org info");
});
})
)
}
Promise.all(prom).then(function() {
resolve(orgs_final.join(" "));
})
}, (error) => {
console.error("error getting orgs");
reject(error);
});
})
}
function queryUrl(url, successCallBack, errorCallBack) {
url = url.split("https://api.github.com/").join("api/");
$.ajax({
type:'GET',
url: url,
crossDomain: true,
dataType: "json",
success: successCallBack,
error:errorCallBack,
timeout: 3000
});
}