Website for visualizing a persons github network.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

128 lines
2.9 KiB

/**
* Simple file which uses jQuery's ajax
* calls to make it easier to get data
* from the github api.
*
* @author Jeffery Russell 2-16-19
*/
const APIROOT = "api";
const API_USER_PATH = "/users/";
const API_ORG_PATH = "/orgs/";
const API_ORG_MEMBERS = "/members";
const API_REPOS = "/repos";
const API_REPOSITORIES = "/repos";
const API_ORGANIZATIONS = "/orgs";
/**
* Builds a query for the github rest api and
* allows you to get at the data using a
* callback which gives you a json object.
*
* @param user the username to query
* @param successCallBack callback to complete when data is returned
* @param errorCallBack callback which is invoked on error
*/
function queryAPIByUser(apiPath, user, successCallBack, errorCallBack)
{
const urlpath = APIROOT + API_USER_PATH + user + apiPath;
runAjax(urlpath, successCallBack, errorCallBack);
}
/**
* Makes API calls for orgs on github
*
* @param {*} apiPath
* @param {*} org
* @param {*} successCallBack
* @param {*} errorCallBack
*/
function queryAPIByOrg(apiPath, org, successCallBack, errorCallBack)
{
const urlpath = APIROOT + API_ORG_PATH + org + apiPath;
runAjax(urlpath, successCallBack, errorCallBack);
}
/**
* Fetches a list of fiends for a user.
*
* @param {*} userName
* @param {*} suc
* @param {*} err
*/
function getFriendsAPI(userName, suc, err)
{
// api/friends/jrtechs
const urlpath = APIROOT + "/friends/" + userName;
runAjax(urlpath, suc, err);
}
function getUserRepositories(userName, suc, err)
{
//ex: http://localhost:7000/api/repositories/jwflory
const urlpath = APIROOT + "/repositories/" + userName;
runAjax(urlpath, suc, err);
}
function getOrganizationRepositories(orgName, suc, err)
{
//ex: http://localhost:7000/api/org/repositories/ComputerScienceHouse
const urlpath = APIROOT + "/org/repositories/" + orgName;
runAjax(urlpath, suc, err);
}
function getOrganizationMembers(orgName, suc, err)
{
const urlpath = APIROOT + "/org/users/" + orgName;
runAjax(urlpath, suc, err);
}
/**
* Queries github API end points with the backend
* proxy server for github graphs.
*
* @param {*} url
* @param {*} successCallBack
* @param {*} errorCallBack
*/
function queryUrl(url, successCallBack, errorCallBack)
{
url = url.split("https://api.github.com/").join("api/");
runAjax(url, successCallBack, errorCallBack);
}
/**
* Wrapper for AJAX calls so we can unify
* all of our settings.
*
* @param {*} url -- url to query
* @param {*} successCallBack -- callback with data retrieved
* @param {*} errorCallBack -- callback with error message
*/
function runAjax(url, successCallBack, errorCallBack)
{
console.log(url);
$.ajax({
type:'GET',
url: url,
crossDomain: true,
dataType: "json",
success: successCallBack,
error:errorCallBack,
timeout: 3000
});
}