UNPKG

@candriajs/git-neko-kit

Version:

Github, Gitee, GitCode API封装库

1 lines 3.47 kB
import{GitHubClient as e,MissingAccessTokenMsg as t,MissingUserIdParamMsg as n,MissingUserNameParamMsg as r,OrgNotSupportedMsg as i,OrgOrUserNotFoundMsg as a,PermissionDeniedMsg as o,ProxyType as s,UserNotFoundMsg as c,get_base_url as l,get_contribution_data as u}from"./client-sGV7POG-.mjs";import{capitalize as d}from"radash";var f=class extends e{constructor(e){super(e),this.userToken=e.userToken,this.base_url=e.base_url,this.api_url=e.api_url}async get_user_info(e){if(!e.username)throw Error(a);try{this.setRequestConfig({token:this.userToken});let t=await this.get(`/users/${e.username}`);if(t.statusCode===401)throw Error(o);if(t.statusCode===404)throw Error(a);if(t.data){let e={id:t.data.id,login:t.data.login,name:t.data.name||null,type:d(t.data.type.toLowerCase()),html_url:t.data.html_url,avatar_url:t.data.avatar_url,email:t.data.email||null,bio:t.data.bio||null,blog:t.data.blog||null,public_repos:t.data.public_repos,followers:t.data.followers,following:t.data.following};t.data=e}return t}catch(e){throw Error(`[GitHub] 获取用户织信息失败: ${e.message}`)}}async get_user_info_by_user_id(e){if(!e.user_id)throw Error(n);try{this.setRequestConfig({token:this.userToken});let t=await this.get(`/user/${e.user_id}`);if(t.statusCode===401)throw Error(o);if(t.statusCode===404)throw Error(c);if(t.data){let e={id:t.data.id,login:t.data.login,name:t.data.name||null,type:d(t.data.type.toLowerCase()),html_url:t.data.html_url,avatar_url:t.data.avatar_url,email:t.data.email||null,bio:t.data.bio||null,blog:t.data.blog||null,public_repos:t.data.public_repos,followers:t.data.followers,following:t.data.following};t.data=e}return t}catch(e){throw Error(`[GitHub] 通过用户id获取用户信息失败: ${e.message}`)}}async get_user_info_by_auth(){if(!this.userToken)throw Error(t);try{this.setRequestConfig({token:this.userToken});let e=await this.get(`/user`);switch(e.statusCode){case 401:throw Error(o);case 404:throw Error(c)}if(e.data){let t={id:e.data.id,login:e.data.login,name:e.data.name||null,type:d(e.data.type.toLowerCase()),html_url:e.data.html_url,avatar_url:e.data.avatar_url,email:e.data.email||null,bio:e.data.bio||null,blog:e.data.blog||null,public_repos:e.data.public_repos,followers:e.data.followers,following:e.data.following};e.data=t}return e}catch(e){throw Error(`[GitHub] 获取授权用户信息失败: ${e.message}`)}}async get_user_info_by_token(){return this.get_user_info_by_auth()}async get_user_contribution(e){try{if(!e.username)throw Error(r);let t=await this.get_user_info({username:e.username});if(t.data.type===`Organization`)throw Error(`${i}获取贡献日历`);this.setRequestConfig({url:l(this.type,{proxyType:s.Original})});let n=await this.get(`/${e.username}`,{action:`show`,controller:`profiles`,tab:`contributions`,user_id:e.username},{"X-Requested-With":`XMLHttpRequest`});if(!n.success)throw Error(`获取用户贡献数据失败`);if(n.statusCode===404)throw Error(r);let a=await u(n.data);return{...n,data:a}}catch(e){throw Error(`[GitHub] 获取用户贡献信息失败: ${e.message}`)}}async get_user_id(){return(await this.get_user_info_by_auth()).data.id}async get_username(){return(await this.get_user_info_by_auth()).data.login}async get_nickname(){return(await this.get_user_info_by_auth()).data.name||null}async get_user_email(){return(await this.get_user_info_by_auth()).data.email||null}async get_avatar_url(){return(await this.get_user_info_by_auth()).data.avatar_url}};export{f as User};