googleapis
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -49,4 +49,6 @@ /** | ||
* @param {string} params.userKey - The email or immutable id of the user | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -58,9 +60,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/email/v2/users/' + params.userKey + '/mail', | ||
url: 'https://www.googleapis.com/email/v2/users/' + params.userKey + '/mail', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/email/v2/users/' + params.userKey + '/mail', | ||
requiredParams: ['userKey'], | ||
pathParams: ['userKey'], | ||
isMedia: true, | ||
context: self | ||
@@ -67,0 +69,0 @@ }; |
@@ -294,4 +294,6 @@ /** | ||
* @param {string} params.projectId - Project ID of the project that will be billed for the job | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -303,9 +305,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/bigquery/v2/projects/' + params.projectId + '/jobs', | ||
url: 'https://www.googleapis.com/bigquery/v2/projects/' + params.projectId + '/jobs', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/bigquery/v2/projects/' + params.projectId + '/jobs', | ||
requiredParams: ['projectId'], | ||
pathParams: ['projectId'], | ||
isMedia: true, | ||
context: self | ||
@@ -312,0 +314,0 @@ }; |
@@ -78,4 +78,6 @@ /** | ||
* @param {object} params - Parameters for request | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -87,7 +89,7 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/drive/v1/files', | ||
url: 'https://www.googleapis.com/drive/v1/files', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
isMedia: true, | ||
mediaUrl: 'https://www.googleapis.com/upload/drive/v1/files', | ||
context: self | ||
@@ -144,4 +146,6 @@ }; | ||
* @param {boolean=} params.updateViewedDate - Whether to update the view date after successfully updating the file. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -153,9 +157,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/drive/v1/files/' + params.id, | ||
url: 'https://www.googleapis.com/drive/v1/files/' + params.id, | ||
method: 'PUT' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/drive/v1/files/' + params.id, | ||
requiredParams: ['id'], | ||
pathParams: ['id'], | ||
isMedia: true, | ||
context: self | ||
@@ -162,0 +166,0 @@ }; |
@@ -563,4 +563,5 @@ /** | ||
* @param {string} params.tableId - The table into which new rows are being imported. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -572,9 +573,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/fusiontables/v1/tables/' + params.tableId + '/import', | ||
url: 'https://www.googleapis.com/fusiontables/v1/tables/' + params.tableId + '/import', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/fusiontables/v1/tables/' + params.tableId + '/import', | ||
requiredParams: ['tableId'], | ||
pathParams: ['tableId'], | ||
isMedia: true, | ||
context: self | ||
@@ -598,4 +599,5 @@ }; | ||
* @param {string} params.name - The name to be assigned to the new table. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -607,8 +609,8 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/fusiontables/v1/tables/import', | ||
url: 'https://www.googleapis.com/fusiontables/v1/tables/import', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/fusiontables/v1/tables/import', | ||
requiredParams: ['name'], | ||
isMedia: true, | ||
context: self | ||
@@ -615,0 +617,0 @@ }; |
@@ -384,2 +384,30 @@ /** | ||
/** | ||
* genomics.datasets.undelete | ||
* | ||
* @desc Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred. | ||
* | ||
* @alias genomics.datasets.undelete | ||
* @memberOf! genomics(v1beta) | ||
* | ||
* @param {object} params - Parameters for request | ||
* @param {string} params.datasetId - The ID of the dataset to be undeleted. | ||
* @param {callback} callback - The callback that handles the response. | ||
* @return {object} Request object | ||
*/ | ||
undelete: function(params, callback) { | ||
var parameters = { | ||
options: { | ||
url: 'https://www.googleapis.com/genomics/v1beta/datasets/' + params.datasetId + '/undelete', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
requiredParams: ['datasetId'], | ||
pathParams: ['datasetId'], | ||
context: self | ||
}; | ||
return createAPIRequest(parameters, callback); | ||
}, | ||
/** | ||
* genomics.datasets.update | ||
@@ -450,2 +478,30 @@ * | ||
/** | ||
* genomics.jobs.cancel | ||
* | ||
* @desc Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs. | ||
* | ||
* @alias genomics.jobs.cancel | ||
* @memberOf! genomics(v1beta) | ||
* | ||
* @param {object} params - Parameters for request | ||
* @param {string} params.jobId - Required. The ID of the job. | ||
* @param {callback} callback - The callback that handles the response. | ||
* @return {object} Request object | ||
*/ | ||
cancel: function(params, callback) { | ||
var parameters = { | ||
options: { | ||
url: 'https://www.googleapis.com/genomics/v1beta/jobs/' + params.jobId + '/cancel', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
requiredParams: ['jobId'], | ||
pathParams: ['jobId'], | ||
context: self | ||
}; | ||
return createAPIRequest(parameters, callback); | ||
}, | ||
/** | ||
* genomics.jobs.get | ||
@@ -459,3 +515,3 @@ * | ||
* @param {object} params - Parameters for request | ||
* @param {string} params.jobId - The ID of the job. | ||
* @param {string} params.jobId - Required. The ID of the job. | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -462,0 +518,0 @@ * @return {object} Request object |
@@ -51,4 +51,6 @@ /** | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -60,9 +62,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts', | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts', | ||
requiredParams: ['userId'], | ||
pathParams: ['userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -173,4 +175,6 @@ }; | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -182,9 +186,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/send', | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts/send', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/send', | ||
requiredParams: ['userId'], | ||
pathParams: ['userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -207,4 +211,6 @@ }; | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -216,9 +222,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/' + params.id, | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts/' + params.id, | ||
method: 'PUT' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/' + params.id, | ||
requiredParams: ['userId', 'id'], | ||
pathParams: ['id', 'userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -515,4 +521,6 @@ }; | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -524,9 +532,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/import', | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages/import', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/import', | ||
requiredParams: ['userId'], | ||
pathParams: ['userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -548,4 +556,6 @@ }; | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -557,9 +567,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages', | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages', | ||
requiredParams: ['userId'], | ||
pathParams: ['userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -644,4 +654,6 @@ }; | ||
* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -653,9 +665,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/send', | ||
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages/send', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/send', | ||
requiredParams: ['userId'], | ||
pathParams: ['userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -662,0 +674,0 @@ }; |
@@ -49,4 +49,5 @@ /** | ||
* @param {string} params.groupId - The group ID | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -58,9 +59,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/groups/v1/groups/' + params.groupId + '/archive', | ||
url: 'https://www.googleapis.com/groups/v1/groups/' + params.groupId + '/archive', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/groups/v1/groups/' + params.groupId + '/archive', | ||
requiredParams: ['groupId'], | ||
pathParams: ['groupId'], | ||
isMedia: true, | ||
context: self | ||
@@ -67,0 +68,0 @@ }; |
@@ -1131,4 +1131,5 @@ /** | ||
* @param {string} params.id - The ID of the raster asset. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -1140,9 +1141,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/mapsengine/v1/rasters/' + params.id + '/files', | ||
url: 'https://www.googleapis.com/mapsengine/v1/rasters/' + params.id + '/files', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/mapsengine/v1/rasters/' + params.id + '/files', | ||
requiredParams: ['id', 'filename'], | ||
pathParams: ['id'], | ||
isMedia: true, | ||
context: self | ||
@@ -1535,4 +1536,5 @@ }; | ||
* @param {string} params.id - The ID of the table asset. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -1544,9 +1546,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/mapsengine/v1/tables/' + params.id + '/files', | ||
url: 'https://www.googleapis.com/mapsengine/v1/tables/' + params.id + '/files', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/mapsengine/v1/tables/' + params.id + '/files', | ||
requiredParams: ['id', 'filename'], | ||
pathParams: ['id'], | ||
isMedia: true, | ||
context: self | ||
@@ -1553,0 +1555,0 @@ }; |
@@ -509,4 +509,6 @@ /** | ||
* @param {object} params - Parameters for request | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -518,7 +520,7 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/mirror/v1/timeline', | ||
url: 'https://www.googleapis.com/mirror/v1/timeline', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
isMedia: true, | ||
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline', | ||
context: self | ||
@@ -601,4 +603,6 @@ }; | ||
* @param {string} params.id - The ID of the timeline item. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -610,9 +614,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.id, | ||
url: 'https://www.googleapis.com/mirror/v1/timeline/' + params.id, | ||
method: 'PUT' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.id, | ||
requiredParams: ['id'], | ||
pathParams: ['id'], | ||
isMedia: true, | ||
context: self | ||
@@ -694,4 +698,5 @@ }; | ||
* @param {string} params.itemId - The ID of the timeline item the attachment belongs to. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -703,9 +708,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.itemId + '/attachments', | ||
url: 'https://www.googleapis.com/mirror/v1/timeline/' + params.itemId + '/attachments', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.itemId + '/attachments', | ||
requiredParams: ['itemId'], | ||
pathParams: ['itemId'], | ||
isMedia: true, | ||
context: self | ||
@@ -712,0 +717,0 @@ }; |
@@ -506,4 +506,6 @@ /** | ||
* @param {string} params.userId - The ID of the user to create the activity on behalf of. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -515,9 +517,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/plusDomains/v1/people/' + params.userId + '/media/' + params.collection, | ||
url: 'https://www.googleapis.com/plusDomains/v1/people/' + params.userId + '/media/' + params.collection, | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/plusDomains/v1/people/' + params.userId + '/media/' + params.collection, | ||
requiredParams: ['userId', 'collection'], | ||
pathParams: ['collection', 'userId'], | ||
isMedia: true, | ||
context: self | ||
@@ -524,0 +526,0 @@ }; |
@@ -974,4 +974,6 @@ /** | ||
* @param {string=} params.projection - Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -983,9 +985,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/storage/v1/b/' + params.bucket + '/o', | ||
url: 'https://www.googleapis.com/storage/v1/b/' + params.bucket + '/o', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/storage/v1/b/' + params.bucket + '/o', | ||
requiredParams: ['bucket'], | ||
pathParams: ['bucket'], | ||
isMedia: true, | ||
context: self | ||
@@ -992,0 +994,0 @@ }; |
@@ -652,4 +652,6 @@ /** | ||
* @param {string=} params.projection - Set of properties to return. Defaults to no_acl, unless the object resource specifies the acl property, when it defaults to full. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -661,9 +663,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/storage/v1beta1/b/' + params.bucket + '/o', | ||
url: 'https://www.googleapis.com/storage/v1beta1/b/' + params.bucket + '/o', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/storage/v1beta1/b/' + params.bucket + '/o', | ||
requiredParams: ['bucket'], | ||
pathParams: ['bucket'], | ||
isMedia: true, | ||
context: self | ||
@@ -670,0 +672,0 @@ }; |
@@ -967,4 +967,6 @@ /** | ||
* @param {string=} params.projection - Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full. | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
* @param {callback} callback - The callback that handles the response. | ||
@@ -976,9 +978,9 @@ * @return {object} Request object | ||
options: { | ||
url: 'https://www.googleapis.com/upload/storage/v1beta2/b/' + params.bucket + '/o', | ||
url: 'https://www.googleapis.com/storage/v1beta2/b/' + params.bucket + '/o', | ||
method: 'POST' | ||
}, | ||
params: params, | ||
mediaUrl: 'https://www.googleapis.com/upload/storage/v1beta2/b/' + params.bucket + '/o', | ||
requiredParams: ['bucket'], | ||
pathParams: ['bucket'], | ||
isMedia: true, | ||
context: self | ||
@@ -985,0 +987,0 @@ }; |
@@ -23,3 +23,8 @@ /** | ||
var transporter = new DefaultTransporter(); | ||
var stream = require('stream'); | ||
function isReadableStream(obj) { | ||
return obj instanceof stream.Stream && typeof obj._read == 'function' && | ||
typeof obj._readableState == 'object'; | ||
} | ||
@@ -37,6 +42,5 @@ function logErrorOnly(err) { | ||
function isValidParams(params, keys, callback) { | ||
var key; | ||
for (key in keys) { | ||
if (!params[keys[key]]) { | ||
callback(new Error('Missing required parameter: ' + keys[key]), null); | ||
for (var i = 0, len = keys.length; i < len; i++) { | ||
if (!params[keys[i]]) { | ||
callback(new Error('Missing required parameter: ' + keys[i]), null); | ||
return false; | ||
@@ -55,7 +59,7 @@ } | ||
function createAPIRequest(parameters, callback) { | ||
var req; | ||
var req, body; | ||
var mediaUrl = parameters.mediaUrl; | ||
var context = parameters.context; | ||
var params = parameters.params; | ||
var options = parameters.options || {}; | ||
var isMedia = parameters.isMedia || false; | ||
var requiredParams = parameters.requiredParams || []; | ||
@@ -82,5 +86,6 @@ var pathParams = parameters.pathParams || []; | ||
var method = options.method; | ||
var media = params.media; | ||
var media = params.media || {}; | ||
var resource = params.resource; | ||
var authClient = params.auth || context._options.auth || context.google._options.auth; | ||
var defaultMime = typeof media.body === 'string' ? 'text/plain' : 'application/octet-stream'; | ||
delete params.media; | ||
@@ -91,3 +96,3 @@ delete params.resource; | ||
// delete required parameters | ||
for (var i in pathParams) { | ||
for (var i = 0, len = pathParams.length; i < len; i++) { | ||
delete params[pathParams[i]]; | ||
@@ -102,17 +107,18 @@ } | ||
if (isMedia) { | ||
// Create a boundary identifier and multipart read stream | ||
var boundary = Math.random().toString(36).slice(2); | ||
var mp = new Multipart(boundary); | ||
if (mediaUrl && media && media.body) { | ||
options.url = mediaUrl; | ||
if (resource) { | ||
// Create a boundary identifier and multipart read stream | ||
var boundary = Math.random().toString(36).slice(2); | ||
body = new Multipart(boundary); | ||
// Always a multipart upload | ||
params.uploadType = 'multipart'; | ||
// Use multipart upload | ||
params.uploadType = 'multipart'; | ||
options.headers = { | ||
'Content-Type': 'multipart/related; boundary="' + boundary + '"' | ||
}; | ||
options.headers = { | ||
'Content-Type': 'multipart/related; boundary="' + boundary + '"' | ||
}; | ||
// Add parts to multipart request | ||
if (resource) { | ||
mp.addPart({ | ||
// Add parts to multipart request | ||
body.addPart({ | ||
headers: { | ||
@@ -123,12 +129,22 @@ 'Content-Type': 'application/json' | ||
}); | ||
body.addPart({ | ||
headers: { | ||
'Content-Type': media.mimeType || resource && resource.mimeType || defaultMime | ||
}, | ||
body: media.body // can be a readable stream or raw string! | ||
}); | ||
} else { | ||
params.uploadType = 'media'; | ||
options.headers = { | ||
'Content-Type': media.mimeType || defaultMime | ||
}; | ||
if (isReadableStream(media.body)) { | ||
body = media.body; | ||
} else { | ||
options.body = media.body; | ||
} | ||
} | ||
mp.addPart({ | ||
headers: { | ||
'Content-Type': resource && resource.mimeType || 'application/octet-stream' | ||
}, | ||
body: media // can be a readable stream or raw string! | ||
}); | ||
} | ||
else { | ||
} else { | ||
options.json = resource || ((method === 'GET' || method === 'DELETE') ? true : {}); | ||
@@ -148,3 +164,3 @@ } | ||
if (mp) mp.pipe(req); | ||
if (body) body.pipe(req); | ||
return req; | ||
@@ -151,0 +167,0 @@ } |
@@ -73,3 +73,9 @@ /** | ||
json: true | ||
}, opt_callback); | ||
}, function(err, tokens) { | ||
if (!err && tokens && tokens.expires_in) { | ||
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000)); | ||
delete tokens.expires_in; | ||
} | ||
opt_callback && opt_callback(err, tokens); | ||
}); | ||
}; | ||
@@ -76,0 +82,0 @@ |
@@ -89,3 +89,3 @@ /** | ||
token_type: 'Bearer', | ||
expires_in: that.gapi.token_expires | ||
expiry_date: ((new Date()).getTime() + (that.gapi.token_expires * 1000)) | ||
}); | ||
@@ -92,0 +92,0 @@ }); |
@@ -35,3 +35,3 @@ /** | ||
this.opts = opt_opts || {}; | ||
this.credentials = null; | ||
this.credentials = {}; | ||
} | ||
@@ -139,3 +139,9 @@ | ||
json: true | ||
}, opt_callback); | ||
}, function(err, tokens) { | ||
if (!err && tokens && tokens.expires_in) { | ||
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000)); | ||
delete tokens.expires_in; | ||
} | ||
opt_callback && opt_callback(err, tokens); | ||
}); | ||
}; | ||
@@ -164,3 +170,9 @@ | ||
json: true | ||
}, opt_callback); | ||
}, function(err, tokens) { | ||
if (!err && tokens && tokens.expires_in) { | ||
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000)); | ||
delete tokens.expires_in; | ||
} | ||
opt_callback && opt_callback(err, tokens); | ||
}); | ||
}; | ||
@@ -170,3 +182,3 @@ | ||
* Retrieves access token using refresh token | ||
* @param {function=} callback callback | ||
* @param {function} callback callback | ||
*/ | ||
@@ -177,3 +189,4 @@ OAuth2Client.prototype.refreshAccessToken = function(callback) { | ||
if (! this.credentials.refresh_token) { | ||
throw new Error('No refresh token is set'); | ||
callback(new Error('No refresh token is set.'), null); | ||
return; | ||
} | ||
@@ -207,2 +220,16 @@ | ||
/** | ||
* Revokes access token and clears the credentials object | ||
* @param {Function=} callback callback | ||
*/ | ||
OAuth2Client.prototype.revokeCredentials = function(callback) { | ||
var token = this.credentials.access_token; | ||
this.credentials = {}; | ||
if (token) { | ||
this.revokeToken(token, callback); | ||
} else { | ||
callback(new Error('No access token to revoke.'), null); | ||
} | ||
}; | ||
/** | ||
* Provides a request implementation with OAuth 2.0 flow. | ||
@@ -213,16 +240,45 @@ * If credentials have a refresh_token, in cases of HTTP | ||
* @param {object} opts Request options. | ||
* @param {function=} opt_callback Optional callback. | ||
* @param {boolean=} opt_dontForceRefresh If set, don't ask for a new token | ||
* with refresh_token. | ||
* @param {function} callback callback. | ||
* @return {Request} Request object | ||
*/ | ||
OAuth2Client.prototype.request = function(opts, opt_callback, opt_dontForceRefresh) { | ||
OAuth2Client.prototype.request = function(opts, callback) { | ||
var that = this; | ||
var credentials = this.credentials; | ||
var expiryDate = credentials.expiry_date; | ||
// if no expiry time, assume it's not expired | ||
var isTokenExpired = expiryDate ? expiryDate <= (new Date()).getTime() : false; | ||
if (!credentials.access_token && !credentials.refresh_token) { | ||
throw new Error('No access or refresh token is set.'); | ||
callback(new Error('No access or refresh token is set.'), null); | ||
return; | ||
} | ||
var shouldRefresh = !credentials.access_token || isTokenExpired; | ||
if (shouldRefresh && credentials.refresh_token) { | ||
this.refreshAccessToken(function(err, tokens) { | ||
if (err) { | ||
callback(err, null); | ||
} else if (!tokens || (tokens && !tokens.access_token)) { | ||
callback(new Error('Could not refresh access token.'), null); | ||
} else { | ||
return that._makeRequest(opts, callback); | ||
} | ||
}); | ||
} else { | ||
return this._makeRequest(opts, callback); | ||
} | ||
}; | ||
/** | ||
* Makes a request without paying attention to refreshing or anything | ||
* Assumes that all credentials are set correctly. | ||
* @param {object} opts Options for request | ||
* @param {Function} callback callback function | ||
* @return {Request} The request object created | ||
*/ | ||
OAuth2Client.prototype._makeRequest = function(opts, callback) { | ||
var that = this; | ||
var credentials = this.credentials; | ||
credentials.token_type = credentials.token_type || 'Bearer'; | ||
@@ -232,23 +288,3 @@ opts.headers = opts.headers || {}; | ||
return this.transporter.request(opts, function(err, body, res) { | ||
// TODO: Check if it's not userRateLimitExceeded | ||
var hasAuthError = res && (res.statusCode === 401 || res.statusCode === 403); | ||
// if there is an auth error, refresh the token | ||
// and make the request again | ||
if (!opt_dontForceRefresh && hasAuthError && credentials.refresh_token) { | ||
// refresh access token and re-request | ||
that.refreshAccessToken(function(err, result) { | ||
if (err || (result && !result.access_token)) { | ||
opt_callback && opt_callback(err, result, res); | ||
} else { | ||
var tokens = result; | ||
tokens.refresh_token = credentials.refresh_token; | ||
that.credentials = tokens; | ||
that.request(opts, opt_callback, true); | ||
} | ||
}); | ||
} else { | ||
opt_callback && opt_callback(err, body, res); | ||
} | ||
}); | ||
return this.transporter.request(opts, callback); | ||
}; | ||
@@ -255,0 +291,0 @@ |
@@ -83,4 +83,2 @@ # Migrating from version `0.x.x` to `1.0` | ||
Media data is now specified in a `media` parameter instead of in `withMedia()`. | ||
The mime-type is taken from the `resource` object, so there's no need to specify | ||
it twice. | ||
@@ -103,3 +101,6 @@ The old `0.x.x` way of uploading media: | ||
}, | ||
media: 'Hello World' | ||
media: { | ||
mimeType: 'text/plain', | ||
body: 'Hello World' | ||
} | ||
}, callback); | ||
@@ -119,3 +120,6 @@ ``` | ||
}, | ||
media: fs.createReadStream('hello.txt') | ||
media: { | ||
mimeType: 'text/plain', | ||
body: fs.createReadStream('hello.txt') | ||
} | ||
}, callback); | ||
@@ -135,2 +139,9 @@ ``` | ||
``` js | ||
var googleapis = require('googleapis'); | ||
var OAuth2Client = googleapis.OAuth2Client; | ||
var oauth2Client = new OAuth2Client(/* .. */); | ||
// ... discover plus api and get client object here ... | ||
client | ||
@@ -142,5 +153,11 @@ .plus.people.get({ userId: 'me' }) | ||
In `1.0`, just put it in the `auth` parameter. It's as easy as: | ||
In `1.0`, OAuth2Client is now available at `google.auth.OAuth2` and now you can | ||
just put your `oauth2Client` right in the `auth` parameter. It's as easy as: | ||
``` js | ||
var google = require('googleapis'); | ||
var OAuth2 = google.auth.OAuth2; // changed from google.OAuth2Client | ||
var plus = google.plus('v1'); | ||
var oauth2Client = new OAuth2(/* .. */); // initialized the same way | ||
plus.people.get({ userId: 'me', auth: oauth2Client }, callback); | ||
@@ -147,0 +164,0 @@ ``` |
{ | ||
"name": "googleapis", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"author": "Google Inc.", | ||
@@ -5,0 +5,0 @@ "description": "Google APIs Client Library for Node.js", |
@@ -16,2 +16,8 @@ # Google APIs NodeJS Client [![Build Status][travisimg]][travis] | ||
### Working with Google Cloud APIs? | ||
If you're working with [Google Cloud Platform][cloudplatform] APIs such as | ||
Datastore, Cloud Storage or Pub/Sub, consider using [`gcloud`][gcloud], a | ||
Node idiomatic client for Google Cloud services. | ||
## Installation | ||
@@ -146,4 +152,4 @@ | ||
requests to Google APIs with the retrieved tokens. If you provide a | ||
`refresh_token`, the `access_token` is automatically refreshed and the | ||
request is replayed in case the `access_token` has expired. | ||
`refresh_token` and the `access_token` has expired, the `access_token` will be | ||
automatically refreshed and the request is replayed. | ||
@@ -168,2 +174,15 @@ Following sample retrieves Google+ profile of the authenticated user. | ||
#### Manually refreshing access token | ||
If you need to manually refresh the `access_token` associated with your OAuth2 | ||
client, make sure you have a `refresh_token` set in your credentials first and | ||
then call: | ||
``` js | ||
oauth2Client.refreshAccessToken(function(err, tokens) { | ||
// your access_token is now refreshed and stored in oauth2Client | ||
// store these new tokens in a safe place (e.g. database) | ||
}); | ||
``` | ||
#### Using API keys | ||
@@ -199,4 +218,4 @@ | ||
This client supports multipart media uploads. The resource parameters are | ||
specified in the `resource` parameter object, and the media body itself is | ||
specified in the `media` parameter. | ||
specified in the `resource` parameter object, and the media itself is | ||
specified in the `media.body` parameter with mime-type specified in `media.mimeType`. | ||
@@ -214,7 +233,10 @@ Example: Upload a plain text file to Google Drive with the title "Test" and | ||
}, | ||
media: 'Hello World' | ||
media: { | ||
mimeType: 'text/plain', | ||
body: 'Hello World' | ||
} | ||
}, callback); | ||
``` | ||
You can also upload media by specifying `media` as a [Readable stream][stream]. | ||
You can also upload media by specifying `media.body` as a [Readable stream][stream]. | ||
This can allow you to upload very large files that cannot fit into memory. | ||
@@ -235,3 +257,6 @@ | ||
}, | ||
media: fs.createReadStream('awesome.png') // read streams are awesome! | ||
media: { | ||
mimeType: 'image/png', | ||
body: fs.createReadStream('awesome.png') // read streams are awesome! | ||
} | ||
}, callback); | ||
@@ -335,1 +360,3 @@ ``` | ||
[options]: https://github.com/google/google-api-nodejs-client/tree/master#options | ||
[gcloud]: https://github.com/GoogleCloudPlatform/gcloud-node | ||
[cloudplatform]: https://developers.google.com/cloud/ |
@@ -17,4 +17,8 @@ {% set lb = "{" %} | ||
{% if m.supportsMediaUpload -%} | ||
* @param {object} params.resource - Media resource metadata | ||
* @param {string|object} params.media - Media body data to upload | ||
{% if m.request -%} | ||
* @param {object} params.resource - Media resource metadata | ||
{% endif -%} | ||
* @param {object} params.media - Media object | ||
* @param {string} params.media.mimeType - Media mime-type | ||
* @param {string|object} params.media.body - Media body contents | ||
{% elif m.request -%} | ||
@@ -29,9 +33,9 @@ * @param {object} params.resource - Request body data | ||
options: { | ||
url: {{ m.mediaUpload.protocols.simple.path|default(basePath + m.path)|buildurl }}, | ||
url: {{ (basePath + m.path)|buildurl }}, | ||
method: '{{ m.httpMethod }}' | ||
}, | ||
params: params, | ||
{%- if m.mediaUpload.protocols.simple.path -%}mediaUrl: {{ m.mediaUpload.protocols.simple.path|buildurl }},{%- endif -%} | ||
{%- if m.parameterOrder.length -%}requiredParams: ['{{ m.parameterOrder|join("', '")|safe }}'],{%- endif -%} | ||
{%- if pathParams.length -%}pathParams: ['{{ pathParams|join("', '")|safe }}'],{%- endif -%} | ||
{%- if m.supportsMediaUpload -%}isMedia: true,{%- endif -%} | ||
context: self | ||
@@ -38,0 +42,0 @@ }; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
356
3
0
2037238
119
48731