Skip to content

Commit 079cdeb

Browse files
datastore: default ordering to ascending. fixes googleapis#134.
1 parent bcba835 commit 079cdeb

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

lib/datastore/query.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -119,32 +119,32 @@ Query.prototype.hasAncestor = function(key) {
119119
};
120120

121121
/**
122-
* Sort the results by a property name ascendingly or descendingly.
122+
* Sort the results by a property name ascendingly or descendingly. By default,
123+
* an ascending sort order will be used.
123124
*
124125
* *Reference: {@link http://goo.gl/mfegFR}*
125126
*
126-
* @param {string} order - Operator (+, -) + property to order by.
127+
* @param {string} property - Optional operator (+, -) and property to order by.
127128
* @return {module:datastore/query}
128129
*
129130
* @example
130131
* ```js
131132
* // Sort by size ascendingly.
132-
* var companiesAscending = companyQuery.order('+size');
133+
* var companiesAscending = companyQuery.order('size');
133134
*
134135
* // Sort by size descendingly.
135136
* var companiesDescending = companyQuery.order('-size');
136137
* ```
137138
*/
138-
Query.prototype.order = function(order) {
139+
Query.prototype.order = function(property) {
139140
var q = util.extend(this, new Query());
140-
var sign = order[0];
141-
var fieldName = order.substr(1);
142-
if (sign !== '-' && sign !== '+' ) {
143-
throw new Error(
144-
'Invalid order pattern. Expected "+fieldName" or "-fieldName".');
141+
var sign = '+';
142+
if (property[0] === '-' || property[0] === '+') {
143+
sign = property[0];
144+
property = property.substr(1);
145145
}
146146
q.orders = q.orders || [];
147-
q.orders.push({ name: fieldName, sign: sign });
147+
q.orders.push({ name: property, sign: sign });
148148
return q;
149149
};
150150

test/datastore/query.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ describe('Query', function() {
101101
assert.equal(query.orders[1].sign, '-');
102102
});
103103

104-
it('should throw error is invalid sort sign is provided', function() {
105-
assert.throws(function() {
106-
new Query(['kind1']).order('*name');
107-
}, /Invalid order pattern/);
104+
it('should default ordering to ascending', function() {
105+
var query = new Query(['kind1']).order('name');
106+
assert.equal(query.orders[0].name, 'name');
107+
assert.equal(query.orders[0].sign, '+');
108108
});
109109

110110
it('should provide pagination with offset and limit', function() {

0 commit comments

Comments
 (0)