azure-storage-legacy
Version:
Microsoft Azure Storage Client Library for node for back compat with older versions of node sdk
72 lines (59 loc) • 2.53 kB
JavaScript
//
// Copyright (c) Microsoft and contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Module dependencies.
var azureCommon = require('azure-common');
var azureutil = azureCommon.util;
var Constants = azureCommon.Constants;
var TableConstants = Constants.TableConstants;
function QueryEntitiesResultContinuation(tableService, tableQuery, nextPartitionKey, nextRowKey) {
if (tableService) {
this.tableService = tableService;
}
if (tableQuery) {
this.tableQuery = tableQuery;
}
if (nextPartitionKey) {
this.nextPartitionKey = nextPartitionKey;
}
if (nextRowKey) {
this.nextRowKey = nextRowKey;
}
}
QueryEntitiesResultContinuation.parse = function (tableService, tableQuery, response) {
var queryEntitiesResultContinuation = new QueryEntitiesResultContinuation(tableService, tableQuery);
if (response.headers[TableConstants.CONTINUATION_NEXT_PARTITION] &&
!azureutil.objectIsEmpty(response.headers[TableConstants.CONTINUATION_NEXT_PARTITION])) {
queryEntitiesResultContinuation.nextPartitionKey = response.headers[TableConstants.CONTINUATION_NEXT_PARTITION];
}
if (response.headers[TableConstants.CONTINUATION_NEXT_ROW_KEY] &&
!azureutil.objectIsEmpty(response.headers[TableConstants.CONTINUATION_NEXT_ROW_KEY])) {
queryEntitiesResultContinuation.nextRowKey = response.headers[TableConstants.CONTINUATION_NEXT_ROW_KEY];
}
return queryEntitiesResultContinuation;
};
QueryEntitiesResultContinuation.prototype.getNextPage = function (callback) {
if (!azureutil.objectIsNull(this.nextPartitionKey)) {
var nextTableQuery = this.tableQuery
.whereNextKeys(this.nextPartitionKey, this.nextRowKey);
this.tableService.queryEntities(nextTableQuery, callback);
} else {
callback(new Error('No next page'));
}
};
QueryEntitiesResultContinuation.prototype.hasNextPage = function () {
return !azureutil.objectIsNull(this.nextPartitionKey);
};
module.exports = QueryEntitiesResultContinuation;