Movatterモバイル変換


[0]ホーム

URL:


Gist.js

/** * @file * @copyright  2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc. * @license    Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}. *             Github.js is freely distributable. */import Requestable from './Requestable';/** * A Gist can retrieve and modify gists. */class Gist extends Requestable {   /**    * Create a Gist.    * @param {string} id - the id of the gist (not required when creating a gist)    * @param {Requestable.auth} [auth] - information required to authenticate to Github    * @param {string} [apiBase=https://api.github.com] - the base Github API URL    */   constructor(id, auth, apiBase) {      super(auth, apiBase);      this.__id = id;   }   /**    * Fetch a gist.    * @see https://developer.github.com/v3/gists/#get-a-single-gist    * @param {Requestable.callback} [cb] - will receive the gist    * @return {Promise} - the Promise for the http request    */   read(cb) {      return this._request('GET', `/gists/${this.__id}`, null, cb);   }   /**    * Create a new gist.    * @see https://developer.github.com/v3/gists/#create-a-gist    * @param {Object} gist - the data for the new gist    * @param {Requestable.callback} [cb] - will receive the new gist upon creation    * @return {Promise} - the Promise for the http request    */   create(gist, cb) {      return this._request('POST', '/gists', gist, cb)         .then((response) => {            this.__id = response.data.id;            return response;         });   }   /**    * Delete a gist.    * @see https://developer.github.com/v3/gists/#delete-a-gist    * @param {Requestable.callback} [cb] - will receive true if the request succeeds    * @return {Promise} - the Promise for the http request    */   delete(cb) {      return this._request('DELETE', `/gists/${this.__id}`, null, cb);   }   /**    * Fork a gist.    * @see https://developer.github.com/v3/gists/#fork-a-gist    * @param {Requestable.callback} [cb] - the function that will receive the gist    * @return {Promise} - the Promise for the http request    */   fork(cb) {      return this._request('POST', `/gists/${this.__id}/forks`, null, cb);   }   /**    * Update a gist.    * @see https://developer.github.com/v3/gists/#edit-a-gist    * @param {Object} gist - the new data for the gist    * @param {Requestable.callback} [cb] - the function that receives the API result    * @return {Promise} - the Promise for the http request    */   update(gist, cb) {      return this._request('PATCH', `/gists/${this.__id}`, gist, cb);   }   /**    * Star a gist.    * @see https://developer.github.com/v3/gists/#star-a-gist    * @param {Requestable.callback} [cb] - will receive true if the request is successful    * @return {Promise} - the Promise for the http request    */   star(cb) {      return this._request('PUT', `/gists/${this.__id}/star`, null, cb);   }   /**    * Unstar a gist.    * @see https://developer.github.com/v3/gists/#unstar-a-gist    * @param {Requestable.callback} [cb] - will receive true if the request is successful    * @return {Promise} - the Promise for the http request    */   unstar(cb) {      return this._request('DELETE', `/gists/${this.__id}/star`, null, cb);   }   /**    * Check if a gist is starred by the user.    * @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred    * @param {Requestable.callback} [cb] - will receive true if the gist is starred and false if the gist is not starred    * @return {Promise} - the Promise for the http request    */   isStarred(cb) {      return this._request204or404(`/gists/${this.__id}/star`, null, cb);   }   /**    * List the gist's commits    * @see https://developer.github.com/v3/gists/#list-gist-commits    * @param {Requestable.callback} [cb] - will receive the array of commits    * @return {Promise} - the Promise for the http request    */   listCommits(cb) {      return this._requestAllPages(`/gists/${this.__id}/commits`, null, cb);   }   /**    * Fetch one of the gist's revision.    * @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist    * @param {string} revision - the id of the revision    * @param {Requestable.callback} [cb] - will receive the revision    * @return {Promise} - the Promise for the http request    */   getRevision(revision, cb) {      return this._request('GET', `/gists/${this.__id}/${revision}`, null, cb);   }   /**    * List the gist's comments    * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist    * @param {Requestable.callback} [cb] - will receive the array of comments    * @return {Promise} - the promise for the http request    */   listComments(cb) {      return this._requestAllPages(`/gists/${this.__id}/comments`, null, cb);   }   /**    * Fetch one of the gist's comments    * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment    * @param {number} comment - the id of the comment    * @param {Requestable.callback} [cb] - will receive the comment    * @return {Promise} - the Promise for the http request    */   getComment(comment, cb) {      return this._request('GET', `/gists/${this.__id}/comments/${comment}`, null, cb);   }   /**    * Comment on a gist    * @see https://developer.github.com/v3/gists/comments/#create-a-comment    * @param {string} comment - the comment to add    * @param {Requestable.callback} [cb] - the function that receives the API result    * @return {Promise} - the Promise for the http request    */   createComment(comment, cb) {      return this._request('POST', `/gists/${this.__id}/comments`, {body: comment}, cb);   }   /**    * Edit a comment on the gist    * @see https://developer.github.com/v3/gists/comments/#edit-a-comment    * @param {number} comment - the id of the comment    * @param {string} body - the new comment    * @param {Requestable.callback} [cb] - will receive the modified comment    * @return {Promise} - the promise for the http request    */   editComment(comment, body, cb) {      return this._request('PATCH', `/gists/${this.__id}/comments/${comment}`, {body: body}, cb);   }   /**    * Delete a comment on the gist.    * @see https://developer.github.com/v3/gists/comments/#delete-a-comment    * @param {number} comment - the id of the comment    * @param {Requestable.callback} [cb] - will receive true if the request succeeds    * @return {Promise} - the Promise for the http request    */   deleteComment(comment, cb) {      return this._request('DELETE', `/gists/${this.__id}/comments/${comment}`, null, cb);   }}module.exports = Gist;


[8]ページ先頭

©2009-2025 Movatter.jp