--- /dev/null
+/**
+ * mixin authorization
+ *
+ * Copyright 2012 Cloud9 IDE, Inc.
+ *
+ * This product includes software developed by
+ * Cloud9 IDE, Inc (http://c9.io).
+ *
+ * Author: Mike de Boer <info@mikedeboer.nl>
+ **/
+
+"use strict";
+
+var error = require("./../../error");
+var Util = require("./../../util");
+
+var authorization = module.exports = {
+ authorization: {}
+};
+
+(function() {
+ /** section: github
+ * authorization#getAll(msg, callback) -> null
+ * - msg (Object): Object that contains the parameters and their values to be sent to the server.
+ * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
+ *
+ * ##### Params on the `msg` object:
+ *
+ * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
+ * - page (Number): Optional. Page number of the results to fetch. Validation rule: ` ^[0-9]+$ `.
+ * - per_page (Number): Optional. A custom page size up to 100. Default is 30. Validation rule: ` ^[0-9]+$ `.
+ **/
+ this.getAll = function(msg, block, callback) {
+ var self = this;
+ this.client.httpSend(msg, block, function(err, res) {
+ if (err)
+ return self.sendError(err, null, msg, callback);
+
+ var ret;
+ try {
+ ret = res.data;
+ var contentType = res.headers["content-type"];
+ if (contentType && contentType.indexOf("application/json") !== -1)
+ ret = JSON.parse(ret);
+ }
+ catch (ex) {
+ if (callback)
+ callback(new error.InternalServerError(ex.message), res);
+ return;
+ }
+
+ if (!ret)
+ ret = {};
+ if (typeof ret == "object") {
+ if (!ret.meta)
+ ret.meta = {};
+ ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
+ if (res.headers[header])
+ ret.meta[header] = res.headers[header];
+ });
+ }
+
+ if (callback)
+ callback(null, ret);
+ });
+ };
+
+ /** section: github
+ * authorization#get(msg, callback) -> null
+ * - msg (Object): Object that contains the parameters and their values to be sent to the server.
+ * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
+ *
+ * ##### Params on the `msg` object:
+ *
+ * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
+ * - id (String): Required.
+ **/
+ this.get = function(msg, block, callback) {
+ var self = this;
+ this.client.httpSend(msg, block, function(err, res) {
+ if (err)
+ return self.sendError(err, null, msg, callback);
+
+ var ret;
+ try {
+ ret = res.data;
+ var contentType = res.headers["content-type"];
+ if (contentType && contentType.indexOf("application/json") !== -1)
+ ret = JSON.parse(ret);
+ }
+ catch (ex) {
+ if (callback)
+ callback(new error.InternalServerError(ex.message), res);
+ return;
+ }
+
+ if (!ret)
+ ret = {};
+ if (typeof ret == "object") {
+ if (!ret.meta)
+ ret.meta = {};
+ ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
+ if (res.headers[header])
+ ret.meta[header] = res.headers[header];
+ });
+ }
+
+ if (callback)
+ callback(null, ret);
+ });
+ };
+
+ /** section: github
+ * authorization#create(msg, callback) -> null
+ * - msg (Object): Object that contains the parameters and their values to be sent to the server.
+ * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
+ *
+ * ##### Params on the `msg` object:
+ *
+ * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
+ * - scopes (Array): Optional. A list of scopes that this authorization is in.
+ * - note (String): Optional. A note to remind you what the OAuth token is for.
+ * - note_url (String): Optional. A URL to remind you what app the OAuth token is for.
+ **/
+ this.create = function(msg, block, callback) {
+ var self = this;
+ this.client.httpSend(msg, block, function(err, res) {
+ if (err)
+ return self.sendError(err, null, msg, callback);
+
+ var ret;
+ try {
+ ret = res.data;
+ var contentType = res.headers["content-type"];
+ if (contentType && contentType.indexOf("application/json") !== -1)
+ ret = JSON.parse(ret);
+ }
+ catch (ex) {
+ if (callback)
+ callback(new error.InternalServerError(ex.message), res);
+ return;
+ }
+
+ if (!ret)
+ ret = {};
+ if (typeof ret == "object") {
+ if (!ret.meta)
+ ret.meta = {};
+ ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
+ if (res.headers[header])
+ ret.meta[header] = res.headers[header];
+ });
+ }
+
+ if (callback)
+ callback(null, ret);
+ });
+ };
+
+ /** section: github
+ * authorization#update(msg, callback) -> null
+ * - msg (Object): Object that contains the parameters and their values to be sent to the server.
+ * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
+ *
+ * ##### Params on the `msg` object:
+ *
+ * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
+ * - id (String): Required.
+ * - scopes (Array): Optional. A list of scopes that this authorization is in.
+ * - add_scopes (Array): Optional. A list of scopes to add to this authorization.
+ * - remove_scopes (Array): Optional. A list of scopes to remove from this authorization.
+ * - note (String): Optional. A note to remind you what the OAuth token is for.
+ * - note_url (String): Optional. A URL to remind you what app the OAuth token is for.
+ **/
+ this.update = function(msg, block, callback) {
+ var self = this;
+ this.client.httpSend(msg, block, function(err, res) {
+ if (err)
+ return self.sendError(err, null, msg, callback);
+
+ var ret;
+ try {
+ ret = res.data;
+ var contentType = res.headers["content-type"];
+ if (contentType && contentType.indexOf("application/json") !== -1)
+ ret = JSON.parse(ret);
+ }
+ catch (ex) {
+ if (callback)
+ callback(new error.InternalServerError(ex.message), res);
+ return;
+ }
+
+ if (!ret)
+ ret = {};
+ if (typeof ret == "object") {
+ if (!ret.meta)
+ ret.meta = {};
+ ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
+ if (res.headers[header])
+ ret.meta[header] = res.headers[header];
+ });
+ }
+
+ if (callback)
+ callback(null, ret);
+ });
+ };
+
+ /** section: github
+ * authorization#delete(msg, callback) -> null
+ * - msg (Object): Object that contains the parameters and their values to be sent to the server.
+ * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
+ *
+ * ##### Params on the `msg` object:
+ *
+ * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
+ * - id (String): Required.
+ **/
+ this.delete = function(msg, block, callback) {
+ var self = this;
+ this.client.httpSend(msg, block, function(err, res) {
+ if (err)
+ return self.sendError(err, null, msg, callback);
+
+ var ret;
+ try {
+ ret = res.data;
+ var contentType = res.headers["content-type"];
+ if (contentType && contentType.indexOf("application/json") !== -1)
+ ret = JSON.parse(ret);
+ }
+ catch (ex) {
+ if (callback)
+ callback(new error.InternalServerError(ex.message), res);
+ return;
+ }
+
+ if (!ret)
+ ret = {};
+ if (typeof ret == "object") {
+ if (!ret.meta)
+ ret.meta = {};
+ ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
+ if (res.headers[header])
+ ret.meta[header] = res.headers[header];
+ });
+ }
+
+ if (callback)
+ callback(null, ret);
+ });
+ };
+
+}).call(authorization.authorization);