-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathaping-plugin-github.min.js
More file actions
8 lines (8 loc) · 6.62 KB
/
Copy pathaping-plugin-github.min.js
File metadata and controls
8 lines (8 loc) · 6.62 KB
1
2
3
4
5
6
7
8
/**
@name: aping-plugin-github
@version: 0.8.0 (31-08-2018)
@author: Jonathan Hornung
@url: https://github.com/JohnnyTheTank/apiNG-plugin-github
@license: MIT
*/
"use strict";angular.module("jtt_aping_github",["jtt_github"]).directive("apingGithub",["apingGithubHelper","apingUtilityHelper","githubFactory",function(a,b,c){return{require:"?aping",restrict:"A",replace:"false",link:function(d,e,f,g){var h=g.getAppSettings(),i=b.parseJsonFromAttributes(f.apingGithub,a.getThisPlatformString(),h);i.forEach(function(d){var e={model:h.model};angular.isDefined(h.getNativeData)?e.getNativeData=h.getNativeData:e.getNativeData=!1;var f={access_token:b.getApiCredentials(a.getThisPlatformString(),"access_token")||void 0};if(angular.isDefined(d.items)?f.per_page=d.items:f.per_page=h.items,0===f.per_page||"0"===f.per_page)return!1;if((f.per_page<0||isNaN(f.per_page))&&(f.per_page=void 0),f.per_page>100&&(f.per_page=100),d.user)switch(f.user=d.user,h.model){case"repo":d.repo?(f.repo=d.repo,c.getRepoByUserAndName(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))})):c.getReposByUser(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))});break;case"activity":c.getEventsByUser(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))});break;case"user":c.getUser(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))})}else if(d.search)switch(f.q=d.search,angular.isDefined(d.sort)&&(f.sort=d.sort),angular.isDefined(d.order)&&(f.order=d.order),h.model){case"repo":c.getReposByName(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))});break;case"user":c.getUsers(f).then(function(b){g.concatToResults(a.getObjectByJsonData(b,e))})}})}}}]),angular.module("jtt_aping_github").service("apingGithubHelper",["apingModels","apingTimeHelper","apingUtilityHelper",function(a,b,c){this.getThisPlatformString=function(){return"github"},this.getThisPlatformLink=function(){return"https://github.com/"},this.getObjectByJsonData=function(a,b){var c=[];if(a&&a.data){var d=this;if(a.data.constructor===Array)angular.forEach(a.data,function(a,e){var f;f=b.getNativeData===!0||"true"===b.getNativeData?a:d.getItemByJsonData(a,b.model),f&&c.push(f)});else if(a.data.items)angular.forEach(a.data.items,function(a,e){var f;f=b.getNativeData===!0||"true"===b.getNativeData?a:d.getItemByJsonData(a,b.model),f&&c.push(f)});else{var e;e=b.getNativeData===!0||"true"===b.getNativeData?a.data:d.getItemByJsonData(a.data,b.model),e&&c.push(e)}}return c},this.getItemByJsonData=function(a,b){var c={};if(a&&b)switch(b){case"repo":c=this.getRepoItemByJsonData(a);break;case"user":c=this.getUserItemByJsonData(a);break;default:return!1}return c},this.getRepoItemByJsonData=function(c){var d=a.getNew("repo",this.getThisPlatformString());return angular.extend(d,{owner_name:c.owner?c.owner.login:void 0,owner_id:c.owner?c.owner.id:void 0,owner_link:c.owner?c.owner.html_url:void 0,owner_img_url:c.owner?c.owner.avatar_url:void 0,name:c.name,id:c.id,fullname:c.full_name,description:c.description||void 0,url:c.html_url,homepage:c.homepage||void 0,language:c.language||void 0,clone_url:c.clone_url,git_url:c.git_url,ssh_url:c.ssh_url,svn_url:c.svn_url,isFork:c.fork,openIssues:c.open_issues_count,watchers:c.watchers_count,stargazers:c.stargazers_count,forks:c.forks_count,created_timestamp:b.getTimestampFromDateString(c.created_at,1e3,36e5),created_date_time:new Date(c.created_at),updated_timestamp:c.updated_at?b.getTimestampFromDateString(c.updated_at,1e3,36e5):void 0,updated_date_time:c.updated_at?new Date(c.updated_at):void 0,pushed_timestamp:c.pushed_at?b.getTimestampFromDateString(c.pushed_at,1e3,36e5):void 0,pushed_date_time:c.pushed_at?new Date(c.pushed_at):void 0}),d},this.getUserItemByJsonData=function(b){var c=a.getNew("user",this.getThisPlatformString());return angular.extend(c,{username:b.login,score:b.score,user_id:b.login,user_url:b.html_url,intern_id:b.id,thumb_url:b.avatar_url,img_url:b.avatar_url,native_url:b.avatar_url,type:b.type,bio:b.bio||void 0,blog_url:b.blog||void 0,company:b.company||void 0,email:b.email||void 0,created_at:b.created_at||void 0,updated_at:b.updated_at||void 0,followers:b.followers||void 0,following:b.following||void 0,hireable:b.hireable||void 0,location:b.location||void 0,fullname:b.name||void 0,public_gists:b.public_gists||void 0,public_repos:b.public_repos||void 0,source:b}),c}}]),angular.module("jtt_github",[]).factory("githubFactory",["$http","githubSearchDataService",function(a,b){var c={};return c.getUsers=function(c){var d=b.getNew("users",c);return a({method:"GET",url:d.url,params:d.object})},c.getUser=function(c){var d=b.getNew("user",c);return a({method:"GET",url:d.url,params:d.object})},c.getReposByUser=function(c){var d=b.getNew("reposByUser",c);return a({method:"GET",url:d.url,params:d.object})},c.getReposByName=function(c){var d=b.getNew("reposByName",c);return a({method:"GET",url:d.url,params:d.object})},c.getRepoByUserAndName=function(c){var d=b.getNew("repoByUserAndName",c);return a({method:"GET",url:d.url,params:d.object})},c.getEventsByUser=function(c){var d=b.getNew("eventsByUser",c);return a({method:"GET",url:d.url,params:d.object})},c.getEventsFromRepoByUserAndName=function(c){var d=b.getNew("eventsFromRepoByUserAndName",c);return a({method:"GET",url:d.url,params:d.object})},c}]).service("githubSearchDataService",function(){this.getApiBaseUrl=function(){return"https://api.github.com/"},this.fillDataInObjectByList=function(a,b,c){return angular.forEach(c,function(c,d){angular.isDefined(b[c])&&(a.object[c]=b[c])}),a},this.getNew=function(a,b){var c={object:{},url:""};switch(angular.isDefined(b.per_page)&&(c.object.per_page=b.per_page),angular.isDefined(b.access_token)&&(c.object.access_token=b.access_token),a){case"user":c.object.per_page=void 0,c=this.fillDataInObjectByList(c,b,[]),c.url=this.getApiBaseUrl()+"users/"+b.user;break;case"users":c=this.fillDataInObjectByList(c,b,["sort","order","page"]),c.url=this.getApiBaseUrl()+"search/users?q="+b.q;break;case"reposByUser":c=this.fillDataInObjectByList(c,b,["q","sort","order","page"]),c.url=this.getApiBaseUrl()+"users/"+b.user+"/repos";break;case"reposByName":c=this.fillDataInObjectByList(c,b,["sort","order","page"]),c.url=this.getApiBaseUrl()+"search/repositories?q="+b.q;break;case"repoByUserAndName":c.object={access_token:b.access_token},c=this.fillDataInObjectByList(c,b,[]),c.url=this.getApiBaseUrl()+"repos/"+b.user+"/"+b.repo;break;case"eventsByUser":c=this.fillDataInObjectByList(c,b,["q","sort","order","page"]),c.url=this.getApiBaseUrl()+"users/"+b.user+"/events";break;case"eventsFromRepoByUserAndName":c=this.fillDataInObjectByList(c,b,["q","sort","order","page"]),c.url=this.getApiBaseUrl()+"repos/"+b.user+"/"+b.repo+"/events"}return c}});